Loading src/com/android/deskclock/AlarmClock.java +41 −5 Original line number Original line Diff line number Diff line Loading @@ -18,10 +18,12 @@ package com.android.deskclock; import android.app.ActionBar; import android.app.ActionBar; import android.app.Activity; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.app.Fragment; import android.app.FragmentTransaction; import android.app.FragmentTransaction; import android.app.LoaderManager; import android.app.LoaderManager; import android.content.Context; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.Intent; import android.content.Loader; import android.content.Loader; import android.content.res.Resources; import android.content.res.Resources; Loading Loading @@ -65,7 +67,7 @@ import java.util.HashSet; public class AlarmClock extends Activity implements LoaderManager.LoaderCallbacks<Cursor>, public class AlarmClock extends Activity implements LoaderManager.LoaderCallbacks<Cursor>, AlarmTimePickerDialogFragment.AlarmTimePickerDialogHandler, AlarmTimePickerDialogFragment.AlarmTimePickerDialogHandler, LabelDialogFragment.AlarmLabelDialogHandler, LabelDialogFragment.AlarmLabelDialogHandler, OnLongClickListener, Callback { OnLongClickListener, Callback, DialogInterface.OnClickListener { private static final String KEY_EXPANDED_IDS = "expandedIds"; private static final String KEY_EXPANDED_IDS = "expandedIds"; private static final String KEY_REPEAT_CHECKED_IDS = "repeatCheckedIds"; private static final String KEY_REPEAT_CHECKED_IDS = "repeatCheckedIds"; Loading @@ -75,6 +77,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback private static final String KEY_UNDO_SHOWING = "undoShowing"; private static final String KEY_UNDO_SHOWING = "undoShowing"; private static final String KEY_PREVIOUS_DAY_MAP = "previousDayMap"; private static final String KEY_PREVIOUS_DAY_MAP = "previousDayMap"; private static final String KEY_SELECTED_ALARM = "selectedAlarm"; private static final String KEY_SELECTED_ALARM = "selectedAlarm"; private static final String KEY_DELETE_CONFIRMATION = "deleteConfirmation"; private static final int REQUEST_CODE_RINGTONE = 1; private static final int REQUEST_CODE_RINGTONE = 1; Loading @@ -86,6 +89,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback private Alarm mSelectedAlarm; private Alarm mSelectedAlarm; private int mScrollToAlarmId = -1; private int mScrollToAlarmId = -1; private boolean mInDeleteConfirmation = false; // This flag relies on the activity having a "standard" launchMode and a new instance of this // This flag relies on the activity having a "standard" launchMode and a new instance of this // activity being created when launched. // activity being created when launched. Loading Loading @@ -118,6 +122,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback selectedAlarms = savedState.getIntArray(KEY_SELECTED_ALARMS); selectedAlarms = savedState.getIntArray(KEY_SELECTED_ALARMS); previousDayMap = savedState.getBundle(KEY_PREVIOUS_DAY_MAP); previousDayMap = savedState.getBundle(KEY_PREVIOUS_DAY_MAP); mSelectedAlarm = savedState.getParcelable(KEY_SELECTED_ALARM); mSelectedAlarm = savedState.getParcelable(KEY_SELECTED_ALARM); mInDeleteConfirmation = savedState.getBoolean(KEY_DELETE_CONFIRMATION, false); } } mAlarmsList = (SwipeableListView) findViewById(R.id.alarms_list); mAlarmsList = (SwipeableListView) findViewById(R.id.alarms_list); Loading Loading @@ -174,6 +179,13 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback } } @Override public void onResume() { super.onResume(); if (mInDeleteConfirmation) { showConfirmationDialog(); } } private void hideUndoBar(boolean animate, MotionEvent event) { private void hideUndoBar(boolean animate, MotionEvent event) { if (mUndoBar != null) { if (mUndoBar != null) { if (event != null && mUndoBar.isEventInToastBar(event)) { if (event != null && mUndoBar.isEventInToastBar(event)) { Loading @@ -197,6 +209,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback outState.putBoolean(KEY_UNDO_SHOWING, mUndoShowing); outState.putBoolean(KEY_UNDO_SHOWING, mUndoShowing); outState.putBundle(KEY_PREVIOUS_DAY_MAP, mAdapter.getPreviousDaysOfWeekMap()); outState.putBundle(KEY_PREVIOUS_DAY_MAP, mAdapter.getPreviousDaysOfWeekMap()); outState.putParcelable(KEY_SELECTED_ALARM, mSelectedAlarm); outState.putParcelable(KEY_SELECTED_ALARM, mSelectedAlarm); outState.putBoolean(KEY_DELETE_CONFIRMATION, mInDeleteConfirmation); } } private void updateLayout() { private void updateLayout() { Loading Loading @@ -1217,10 +1230,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback switch (item.getItemId()) { switch (item.getItemId()) { // Delete selected items and close CAB. // Delete selected items and close CAB. case R.id.menu_item_delete_alarm: case R.id.menu_item_delete_alarm: if (mAdapter != null) { showConfirmationDialog(); mAdapter.deleteSelectedAlarms(); mode.finish(); } break; break; default: default: break; break; Loading @@ -1247,4 +1257,30 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback return false; return false; } } /*** * Handle the delete alarms confirmation dialog */ private void showConfirmationDialog() { AlertDialog.Builder b = new AlertDialog.Builder(this); Resources res = getResources(); String msg = String.format(res.getQuantityText(R.plurals.alarm_delete_confirmation, mAdapter.getSelectedItemsNum()).toString()); b.setCancelable(true).setMessage(msg) .setNegativeButton(res.getString(android.R.string.cancel), this) .setPositiveButton(res.getString(android.R.string.ok), this).show(); mInDeleteConfirmation = true; } @Override public void onClick(DialogInterface dialog, int which) { if (which == -1) { if (mAdapter != null) { mAdapter.deleteSelectedAlarms(); mActionMode.finish(); } } dialog.dismiss(); mInDeleteConfirmation = false; } } } Loading
src/com/android/deskclock/AlarmClock.java +41 −5 Original line number Original line Diff line number Diff line Loading @@ -18,10 +18,12 @@ package com.android.deskclock; import android.app.ActionBar; import android.app.ActionBar; import android.app.Activity; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.app.Fragment; import android.app.FragmentTransaction; import android.app.FragmentTransaction; import android.app.LoaderManager; import android.app.LoaderManager; import android.content.Context; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.Intent; import android.content.Loader; import android.content.Loader; import android.content.res.Resources; import android.content.res.Resources; Loading Loading @@ -65,7 +67,7 @@ import java.util.HashSet; public class AlarmClock extends Activity implements LoaderManager.LoaderCallbacks<Cursor>, public class AlarmClock extends Activity implements LoaderManager.LoaderCallbacks<Cursor>, AlarmTimePickerDialogFragment.AlarmTimePickerDialogHandler, AlarmTimePickerDialogFragment.AlarmTimePickerDialogHandler, LabelDialogFragment.AlarmLabelDialogHandler, LabelDialogFragment.AlarmLabelDialogHandler, OnLongClickListener, Callback { OnLongClickListener, Callback, DialogInterface.OnClickListener { private static final String KEY_EXPANDED_IDS = "expandedIds"; private static final String KEY_EXPANDED_IDS = "expandedIds"; private static final String KEY_REPEAT_CHECKED_IDS = "repeatCheckedIds"; private static final String KEY_REPEAT_CHECKED_IDS = "repeatCheckedIds"; Loading @@ -75,6 +77,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback private static final String KEY_UNDO_SHOWING = "undoShowing"; private static final String KEY_UNDO_SHOWING = "undoShowing"; private static final String KEY_PREVIOUS_DAY_MAP = "previousDayMap"; private static final String KEY_PREVIOUS_DAY_MAP = "previousDayMap"; private static final String KEY_SELECTED_ALARM = "selectedAlarm"; private static final String KEY_SELECTED_ALARM = "selectedAlarm"; private static final String KEY_DELETE_CONFIRMATION = "deleteConfirmation"; private static final int REQUEST_CODE_RINGTONE = 1; private static final int REQUEST_CODE_RINGTONE = 1; Loading @@ -86,6 +89,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback private Alarm mSelectedAlarm; private Alarm mSelectedAlarm; private int mScrollToAlarmId = -1; private int mScrollToAlarmId = -1; private boolean mInDeleteConfirmation = false; // This flag relies on the activity having a "standard" launchMode and a new instance of this // This flag relies on the activity having a "standard" launchMode and a new instance of this // activity being created when launched. // activity being created when launched. Loading Loading @@ -118,6 +122,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback selectedAlarms = savedState.getIntArray(KEY_SELECTED_ALARMS); selectedAlarms = savedState.getIntArray(KEY_SELECTED_ALARMS); previousDayMap = savedState.getBundle(KEY_PREVIOUS_DAY_MAP); previousDayMap = savedState.getBundle(KEY_PREVIOUS_DAY_MAP); mSelectedAlarm = savedState.getParcelable(KEY_SELECTED_ALARM); mSelectedAlarm = savedState.getParcelable(KEY_SELECTED_ALARM); mInDeleteConfirmation = savedState.getBoolean(KEY_DELETE_CONFIRMATION, false); } } mAlarmsList = (SwipeableListView) findViewById(R.id.alarms_list); mAlarmsList = (SwipeableListView) findViewById(R.id.alarms_list); Loading Loading @@ -174,6 +179,13 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback } } @Override public void onResume() { super.onResume(); if (mInDeleteConfirmation) { showConfirmationDialog(); } } private void hideUndoBar(boolean animate, MotionEvent event) { private void hideUndoBar(boolean animate, MotionEvent event) { if (mUndoBar != null) { if (mUndoBar != null) { if (event != null && mUndoBar.isEventInToastBar(event)) { if (event != null && mUndoBar.isEventInToastBar(event)) { Loading @@ -197,6 +209,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback outState.putBoolean(KEY_UNDO_SHOWING, mUndoShowing); outState.putBoolean(KEY_UNDO_SHOWING, mUndoShowing); outState.putBundle(KEY_PREVIOUS_DAY_MAP, mAdapter.getPreviousDaysOfWeekMap()); outState.putBundle(KEY_PREVIOUS_DAY_MAP, mAdapter.getPreviousDaysOfWeekMap()); outState.putParcelable(KEY_SELECTED_ALARM, mSelectedAlarm); outState.putParcelable(KEY_SELECTED_ALARM, mSelectedAlarm); outState.putBoolean(KEY_DELETE_CONFIRMATION, mInDeleteConfirmation); } } private void updateLayout() { private void updateLayout() { Loading Loading @@ -1217,10 +1230,7 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback switch (item.getItemId()) { switch (item.getItemId()) { // Delete selected items and close CAB. // Delete selected items and close CAB. case R.id.menu_item_delete_alarm: case R.id.menu_item_delete_alarm: if (mAdapter != null) { showConfirmationDialog(); mAdapter.deleteSelectedAlarms(); mode.finish(); } break; break; default: default: break; break; Loading @@ -1247,4 +1257,30 @@ public class AlarmClock extends Activity implements LoaderManager.LoaderCallback return false; return false; } } /*** * Handle the delete alarms confirmation dialog */ private void showConfirmationDialog() { AlertDialog.Builder b = new AlertDialog.Builder(this); Resources res = getResources(); String msg = String.format(res.getQuantityText(R.plurals.alarm_delete_confirmation, mAdapter.getSelectedItemsNum()).toString()); b.setCancelable(true).setMessage(msg) .setNegativeButton(res.getString(android.R.string.cancel), this) .setPositiveButton(res.getString(android.R.string.ok), this).show(); mInDeleteConfirmation = true; } @Override public void onClick(DialogInterface dialog, int which) { if (which == -1) { if (mAdapter != null) { mAdapter.deleteSelectedAlarms(); mActionMode.finish(); } } dialog.dismiss(); mInDeleteConfirmation = false; } } }