diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java b/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java index b2c2589..90194c4 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java @@ -80,6 +80,7 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi @Override public boolean onPrepareOptionsMenu(Menu menu) { + // TODO: Snooze menu item when alarm is ringing. mPresenter.onPrepareOptionsMenu(); return super.onPrepareOptionsMenu(menu); } @@ -89,9 +90,12 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi switch (item.getItemId()) { case R.id.action_dismiss_now: mPresenter.dismissNow(); + item.setVisible(false); return true; case R.id.action_done_snoozing: mPresenter.stopSnoozing(); + item.setVisible(false); + getSupportActionBar().setDisplayShowTitleEnabled(false); // TODO: Move to presenter? return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmPresenter.java b/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmPresenter.java index 2b71d20..636add3 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmPresenter.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmPresenter.java @@ -102,12 +102,13 @@ public class EditAlarmPresenter implements EditAlarmContract.Presenter { @Override public void dismissNow() { mAlarmUtilsHelper.cancelAlarm(checkNotNull(mAlarm)); + // cancelAlarm() should have turned off this alarm if appropriate + mView.showEnabled(mAlarm.isEnabled()); } @Override public void stopSnoozing() { dismissNow(); // MUST be first, see AlarmUtils.notifyUpcomingAlarmIntent() - // AlarmUtils.cancelAlarm() does this for you if snoozed /* mAlarm.stopSnoozing(); // TOneverDO: before dismissNow() @@ -140,6 +141,9 @@ public class EditAlarmPresenter implements EditAlarmContract.Presenter { public void onPrepareOptionsMenu() { if (mAlarm != null && mAlarm.isEnabled()) { int hoursBeforeUpcoming = mSharedPreferencesHelper.getInt(R.string.key_notify_me_of_upcoming_alarms, 2); + // TODO: Schedule task with handler to show the menu item when it is time. Handler is fine because + // the task only needs to be done if the activity is being viewed. (I think) if the process of this + // app is killed, then the handler is also killed. if ((mAlarm.ringsWithinHours(hoursBeforeUpcoming))) { mView.showCanDismissNow(); } else if (mAlarm.isSnoozed()) { @@ -178,9 +182,6 @@ public class EditAlarmPresenter implements EditAlarmContract.Presenter { mView.showLabel(mAlarm.label()); mView.showRingtone(mAlarm.ringtone()); mView.showVibrates(mAlarm.vibrates()); - if (mAlarm.isSnoozed()) { - mView.showSnoozed(new Date(mAlarm.snoozingUntil())); - } // Editing so don't show mView.showNumpad(false); mView.showTimeTextFocused(false); diff --git a/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java b/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java index abcd9cf..20d6cc7 100644 --- a/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java +++ b/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java @@ -92,8 +92,8 @@ public final class AlarmUtils { save(c); } - if (a.ringsIn() <= HOURS.toMillis(hoursBeforeUpcoming(c))) { - String time = formatTime(c, a.ringsAt()); + if (a.ringsIn() <= HOURS.toMillis(hoursBeforeUpcoming(c)) || a.isSnoozed()) { + String time = formatTime(c, a.isSnoozed() ? a.snoozingUntil() : a.ringsAt()); String text = c.getString(R.string.upcoming_alarm_dismissed, time); Toast.makeText(c, text, Toast.LENGTH_LONG).show(); }