diff options
author | Raj Yengisetty <rajesh@cyngn.com> | 2015-03-11 18:04:08 -0700 |
---|---|---|
committer | Rajesh Yengisetty <rajesh@cyngn.com> | 2015-03-12 01:06:00 +0000 |
commit | e0a097b5c04567eb7914614a69638fa5e324f21d (patch) | |
tree | 46283b581a4bc5282f64d53afe0de4e4f399a7a4 | |
parent | 0b00a7e3dfc28e4c80a1c61b4d8fd0e11f84de89 (diff) | |
download | android_packages_apps_Calendar-e0a097b5c04567eb7914614a69638fa5e324f21d.tar.gz android_packages_apps_Calendar-e0a097b5c04567eb7914614a69638fa5e324f21d.tar.bz2 android_packages_apps_Calendar-e0a097b5c04567eb7914614a69638fa5e324f21d.zip |
Calendar: add feature to select/deselect all events in delete view
Change-Id: I1301d921474d848d6c877eb904bd7a00df13c48a
-rw-r--r-- | res/menu/delete_events_title_bar.xml | 4 | ||||
-rw-r--r-- | src/com/android/calendar/DeleteEventsActivity.java | 20 |
2 files changed, 23 insertions, 1 deletions
diff --git a/res/menu/delete_events_title_bar.xml b/res/menu/delete_events_title_bar.xml index 4ab869fb..49907de0 100644 --- a/res/menu/delete_events_title_bar.xml +++ b/res/menu/delete_events_title_bar.xml @@ -37,5 +37,9 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. android:title="@string/action_delete" android:visible="true"> </item> + <item android:id="@+id/select_all_check" + android:title="@string/action_select_all" + android:showAsAction="never" + android:checkable="true" /> </menu> diff --git a/src/com/android/calendar/DeleteEventsActivity.java b/src/com/android/calendar/DeleteEventsActivity.java index da2b6bc5..fbab524d 100644 --- a/src/com/android/calendar/DeleteEventsActivity.java +++ b/src/com/android/calendar/DeleteEventsActivity.java @@ -108,6 +108,8 @@ public class DeleteEventsActivity extends ListActivity private AsyncQueryService mService; private TextView mHeaderTextView; + private boolean mIgnoreSelections = false; + private Map<Long, Long> mSelectedMap = new HashMap<Long, Long>(); private Map<Long, String> mCalendarsMap = new HashMap<Long, String>(); private List<Long> mEventList = new ArrayList<Long>(); @@ -255,6 +257,10 @@ public class DeleteEventsActivity extends ListActivity @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { + // We're updating selections manually ignore changes + if (mIgnoreSelections) { + return; + } int firstVisiblePosition = mListView.getFirstVisiblePosition(); int actualPosition = position - firstVisiblePosition; @@ -301,6 +307,16 @@ public class DeleteEventsActivity extends ListActivity : R.string.no_events, Toast.LENGTH_SHORT).show(); } return true; + case R.id.select_all_check: + mIgnoreSelections = true; + if (item.isChecked()) { + selectNone(); + } else { + selectAll(); + } + mIgnoreSelections = false; + invalidateOptionsMenu(); + return true; } return false; } @@ -316,7 +332,9 @@ public class DeleteEventsActivity extends ListActivity public boolean onPrepareActionMode(ActionMode mode, Menu menu) { // Here you can perform updates to the CAB due to // an invalidate() request - return false; + MenuItem selectAllItem = menu.findItem(R.id.select_all_check); + selectAllItem.setChecked(mSelectedMap.size() == mEventList.size()); + return true; } }; |