summaryrefslogtreecommitdiffstats
path: root/ui/src/com/android/providers/downloads
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/com/android/providers/downloads')
-rw-r--r--ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java8
-rw-r--r--ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java13
-rw-r--r--ui/src/com/android/providers/downloads/ui/DownloadList.java26
3 files changed, 30 insertions, 17 deletions
diff --git a/ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java b/ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java
index 8e93eab6..b69fb8b8 100644
--- a/ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java
+++ b/ui/src/com/android/providers/downloads/ui/DateSortedDownloadAdapter.java
@@ -21,6 +21,7 @@ import android.app.DownloadManager;
import android.database.Cursor;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ExpandableListView;
import android.widget.RelativeLayout;
/**
@@ -28,12 +29,14 @@ import android.widget.RelativeLayout;
* {@link DownloadAdapter}.
*/
public class DateSortedDownloadAdapter extends DateSortedExpandableListAdapter {
- private DownloadAdapter mDelegate;
+ private final DownloadAdapter mDelegate;
+ private final DownloadList mDownloadList;
public DateSortedDownloadAdapter(DownloadList downloadList, Cursor cursor) {
super(downloadList, cursor,
cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP));
mDelegate = new DownloadAdapter(downloadList, cursor);
+ mDownloadList = downloadList;
}
@Override
@@ -49,7 +52,8 @@ public class DateSortedDownloadAdapter extends DateSortedExpandableListAdapter {
return convertView;
}
- int pos = getAbsolutePositionForGroupAndChildPositions(groupPosition, childPosition);
+ int pos = mDownloadList.getExpandableListView().getFlatListPosition(
+ ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
mDelegate.bindView(convertView, pos);
return convertView;
}
diff --git a/ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java b/ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java
index 73c51aef..19132a11 100644
--- a/ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java
+++ b/ui/src/com/android/providers/downloads/ui/DateSortedExpandableListAdapter.java
@@ -226,19 +226,6 @@ public class DateSortedExpandableListAdapter implements ExpandableListAdapter {
return arrayPosition;
}
- int getAbsolutePositionForGroupAndChildPositions(int groupPosition,
- int childPosition) {
- int bin = groupPositionToBin(groupPosition);
- int absolutePosition = 0;
- for (int j = 0; j < bin; j++) {
- if (mItemMap[j] > 0) {
- absolutePosition += mItemMap[j] + 1;
- }
- }
- absolutePosition += childPosition + 1;
- return absolutePosition;
- }
-
/**
* Move the cursor to the position indicated.
* @param packedPosition Position in packed position representation.
diff --git a/ui/src/com/android/providers/downloads/ui/DownloadList.java b/ui/src/com/android/providers/downloads/ui/DownloadList.java
index 4c8c36bb..810e93e6 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;
/**
@@ -323,6 +324,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);
}
}
@@ -428,17 +440,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();