From 5e912dbf645a355f8a72949c1c8b69e193688e52 Mon Sep 17 00:00:00 2001 From: Rohit Yengisetty Date: Tue, 20 Jan 2015 10:35:20 -0800 Subject: Calendar - Bug fixes in DeleteEvents activity > stop checkboxes from stealing touch events > correct listview's getChildAt usage > fix onDestroyActionMode from inadvertently triggering onItemCheckedStateChanged with wrong parameters Change-Id: Ibd151c4de4b373733a9ae6e0b982c088de7bd5ad --- src/com/android/calendar/DeleteEventsActivity.java | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/com/android/calendar/DeleteEventsActivity.java b/src/com/android/calendar/DeleteEventsActivity.java index abeb4718..da2b6bc5 100644 --- a/src/com/android/calendar/DeleteEventsActivity.java +++ b/src/com/android/calendar/DeleteEventsActivity.java @@ -255,7 +255,15 @@ public class DeleteEventsActivity extends ListActivity @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { - View v = mListView.getChildAt(position); + int firstVisiblePosition = mListView.getFirstVisiblePosition(); + int actualPosition = position - firstVisiblePosition; + + if (DEBUG) { + Log.i(TAG, "position , firstVisiblePosition, actualPosition : " + + position + " " + firstVisiblePosition + " " + actualPosition); + } + + View v = mListView.getChildAt(actualPosition); CheckBox checkbox = (CheckBox) v.findViewById(R.id.checkbox); checkbox.toggle(); @@ -300,7 +308,6 @@ public class DeleteEventsActivity extends ListActivity @Override public void onDestroyActionMode(ActionMode mode) { mListView.clearChoices(); - deselectAll(); mSelectedMap.clear(); mActionMode = null; } @@ -470,16 +477,6 @@ public class DeleteEventsActivity extends ListActivity } } - private void deselectAll() { - for (int i = 0; i < mListView.getCount(); i ++) { - if (mSelectedMap.containsKey(mListView.getItemIdAtPosition(i))) { - mListView.setItemChecked(i, false); - } - } - mAdapter.notifyDataSetChanged(); - updateTitle(); - } - private void selectAll() { mSelectedMap.clear(); for (Long event : mEventList){ -- cgit v1.2.3