diff options
author | Vasu Nori <vnori@google.com> | 2011-03-09 10:43:28 -0800 |
---|---|---|
committer | Vasu Nori <vnori@google.com> | 2011-03-09 15:32:11 -0800 |
commit | 81101942f55ae76824d244ef0cbf579fb84922fe (patch) | |
tree | 3dbba4c283be8304e6cb8e94ea0caad1115f3304 /ui/src/com/android/providers/downloads/ui/DownloadList.java | |
parent | 58b8f6709503c70f30497a38fd10b6e2b12bf808 (diff) | |
download | android_packages_providers_DownloadProvider-81101942f55ae76824d244ef0cbf579fb84922fe.tar.gz android_packages_providers_DownloadProvider-81101942f55ae76824d244ef0cbf579fb84922fe.tar.bz2 android_packages_providers_DownloadProvider-81101942f55ae76824d244ef0cbf579fb84922fe.zip |
multiple bug fixes when handling ExpandableListView
bug:3511180 can't select items from non-adjacent groups
bug:3510769 Long-pressing on section headers causes strange behavior
bug:4065226 Downloads list switch sorting button has wrong width
Change-Id: If7dd36078224766555f1d2cf18ec364812dcdeb9
Diffstat (limited to 'ui/src/com/android/providers/downloads/ui/DownloadList.java')
-rw-r--r-- | ui/src/com/android/providers/downloads/ui/DownloadList.java | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/ui/src/com/android/providers/downloads/ui/DownloadList.java b/ui/src/com/android/providers/downloads/ui/DownloadList.java index 978416c7..c6bd219b 100644 --- a/ui/src/com/android/providers/downloads/ui/DownloadList.java +++ b/ui/src/com/android/providers/downloads/ui/DownloadList.java @@ -103,8 +103,9 @@ public class DownloadList extends Activity { return mMimeType; } } - ListView mCurrentView; - Cursor mCurrentCursor; + private ListView mCurrentView; + private Cursor mCurrentCursor; + private boolean mCurrentViewIsExpandableListView = false; private boolean mIsSortedBySize = false; /** @@ -315,6 +316,17 @@ public class DownloadList extends Activity { @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { + // ignore long clicks on groups + if (mDownloadList.isCurrentViewExpandableListView()) { + ExpandableListView ev = mDownloadList.getExpandableListView(); + long pos = ev.getExpandableListPosition(position); + if (checked && (ExpandableListView.getPackedPositionType(pos) == + ExpandableListView.PACKED_POSITION_TYPE_GROUP)) { + // ignore this click + ev.setItemChecked(position, false); + return; + } + } mDownloadList.setActionModeTitle(mode); } } @@ -420,17 +432,27 @@ public class DownloadList extends Activity { return mCurrentView; } + ExpandableListView getExpandableListView() { + return mDateOrderedListView; + } + + boolean isCurrentViewExpandableListView() { + return mCurrentViewIsExpandableListView; + } + private ListView activeListView() { if (mIsSortedBySize) { mCurrentCursor = mSizeSortedCursor; mCurrentView = mSizeOrderedListView; setTitle(R.string.download_title_sorted_by_size); mSortOption.setText(R.string.button_sort_by_date); + mCurrentViewIsExpandableListView = false; } else { mCurrentCursor = mDateSortedCursor; mCurrentView = mDateOrderedListView; setTitle(R.string.download_title_sorted_by_date); mSortOption.setText(R.string.button_sort_by_size); + mCurrentViewIsExpandableListView = true; } if (mActionMode != null) { mActionMode.finish(); |