Android Open Source - WearPomodoro Pomodoro Alarm Receiver






From Project

Back to project page WearPomodoro.

License

The source code is released under:

GNU General Public License

If you think the Android project WearPomodoro listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2014 Alex Korovyansky./*from   ww w. j  a  v a 2 s  .c o  m*/
 */
package com.alexkorovyansky.wearpomodoro.app.receivers;

import android.app.ActivityOptions;
import android.content.Context;
import android.content.Intent;

import com.alexkorovyansky.wearpomodoro.BuildConfig;
import com.alexkorovyansky.wearpomodoro.app.PomodoroConstants;
import com.alexkorovyansky.wearpomodoro.app.ui.PomodoroTransitionActivity;
import com.alexkorovyansky.wearpomodoro.helpers.PomodoroMaster;
import com.alexkorovyansky.wearpomodoro.helpers.ServiceProvider;
import com.alexkorovyansky.wearpomodoro.helpers.WakefulBroadcastReceiver;
import com.alexkorovyansky.wearpomodoro.model.ActivityType;

import hugo.weaving.DebugLog;

public class PomodoroAlarmReceiver extends WakefulBroadcastReceiver {

    public static final String ACTION = BuildConfig.APPLICATION_ID + ".action.ALARM";

    @DebugLog
    public PomodoroAlarmReceiver() {
    }

    @DebugLog
    @Override
    public void onReceive(Context context, Intent intent) {
        PomodoroMaster pomodoroMaster = ServiceProvider.getInstance().getPomodoroMaster(context);
        ActivityType justStoppedActivityType = pomodoroMaster.stop(); // order may be important, else we can get race conditions
        Intent transitionIntent = intentForAlarm(context, justStoppedActivityType, pomodoroMaster.getEatenPomodoros());
        ActivityOptions activityOptions = ActivityOptions.makeCustomAnimation(context, 0, 0);
        startWakefullActity(context, transitionIntent, activityOptions);
    }

    private static Intent intentForAlarm(Context context, ActivityType justStoppedActivityType, int eatenPomdoros) {
        Intent result = new Intent(context, PomodoroTransitionActivity.class);
        result.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (justStoppedActivityType.isPomodoro()) {
            if ((eatenPomdoros + 1) % PomodoroConstants.POMODORO_NUMBER_FOR_LONG_BREAK == 0) {
                result.putExtra(PomodoroTransitionActivity.EXTRA_NEXT_ACTIVITY_TYPE, ActivityType.LONG_BREAK.value());
            } else {
                result.putExtra(PomodoroTransitionActivity.EXTRA_NEXT_ACTIVITY_TYPE, ActivityType.SHORT_BREAK.value());
            }
        } else if (justStoppedActivityType.isBreak()) {
            result.putExtra(PomodoroTransitionActivity.EXTRA_NEXT_ACTIVITY_TYPE, ActivityType.POMODORO.value());
        }
        return result;
    }
}




Java Source Code List

com.alexkorovyansky.wearpomodoro.app.MainActivity.java
com.alexkorovyansky.wearpomodoro.app.PomodoroConstants.java
com.alexkorovyansky.wearpomodoro.app.base.BasePomodoroActivity.java
com.alexkorovyansky.wearpomodoro.app.receivers.PomodoroAlarmReceiver.java
com.alexkorovyansky.wearpomodoro.app.receivers.PomodoroAlarmTickReceiver.java
com.alexkorovyansky.wearpomodoro.app.receivers.PomodoroControlReceiver.java
com.alexkorovyansky.wearpomodoro.app.services.PomodoroNotificationService.java
com.alexkorovyansky.wearpomodoro.app.ui.PomodoroEntryActivity.java
com.alexkorovyansky.wearpomodoro.app.ui.PomodoroTransitionActivity.java
com.alexkorovyansky.wearpomodoro.helpers.PersistentStorage.java
com.alexkorovyansky.wearpomodoro.helpers.PomodoroMaster.java
com.alexkorovyansky.wearpomodoro.helpers.PomodoroUtils.java
com.alexkorovyansky.wearpomodoro.helpers.ServiceProvider.java
com.alexkorovyansky.wearpomodoro.helpers.UITimer.java
com.alexkorovyansky.wearpomodoro.helpers.WakefulBroadcastReceiver.java
com.alexkorovyansky.wearpomodoro.model.ActivityType.java