/*
* Copyright (C) 2014 Alex Korovyansky.
*/
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;
}
}