summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaj Yengisetty <rajesh@cyngn.com>2015-03-11 18:04:08 -0700
committerMatt Garnes <matt@cyngn.com>2015-03-12 01:26:05 +0000
commitab2585a61f39ca02b285800a72e187832eb35641 (patch)
treecb73a677836df911be1f4716030b92012890a718
parent54ef09a1a1f212dc2d5cc713e7b0721864fabbdc (diff)
downloadandroid_packages_apps_Calendar-ab2585a61f39ca02b285800a72e187832eb35641.tar.gz
android_packages_apps_Calendar-ab2585a61f39ca02b285800a72e187832eb35641.tar.bz2
android_packages_apps_Calendar-ab2585a61f39ca02b285800a72e187832eb35641.zip
Calendar: add feature to select/deselect all events in delete view
Change-Id: I1301d921474d848d6c877eb904bd7a00df13c48a (cherry picked from commit e0a097b5c04567eb7914614a69638fa5e324f21d)
-rw-r--r--res/menu/delete_events_title_bar.xml4
-rw-r--r--src/com/android/calendar/DeleteEventsActivity.java20
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;
}
};