summaryrefslogtreecommitdiffstats
path: root/ui/src/com/android/providers/downloads/ui/DownloadItem.java
diff options
context:
space:
mode:
authorVasu Nori <vnori@google.com>2011-02-23 16:49:09 -0800
committerVasu Nori <vnori@google.com>2011-02-25 17:10:22 -0800
commitdaed066d4dcc8873d3463ae65e16fa2e7fbcafe5 (patch)
tree2dda48eb7092f01e1cfa34e243f5000e11e0d419 /ui/src/com/android/providers/downloads/ui/DownloadItem.java
parent1d83506b9bd51fdd2332249be13019f649c19aab (diff)
downloadandroid_packages_providers_DownloadProvider-daed066d4dcc8873d3463ae65e16fa2e7fbcafe5.tar.gz
android_packages_providers_DownloadProvider-daed066d4dcc8873d3463ae65e16fa2e7fbcafe5.tar.bz2
android_packages_providers_DownloadProvider-daed066d4dcc8873d3463ae65e16fa2e7fbcafe5.zip
bug:3308769 add CAB options to downloads app
Change-Id: I9bb1374b7ca0053210274e5d6981b2f2dcf6bfca
Diffstat (limited to 'ui/src/com/android/providers/downloads/ui/DownloadItem.java')
-rw-r--r--ui/src/com/android/providers/downloads/ui/DownloadItem.java38
1 files changed, 24 insertions, 14 deletions
diff --git a/ui/src/com/android/providers/downloads/ui/DownloadItem.java b/ui/src/com/android/providers/downloads/ui/DownloadItem.java
index c462d596..86eb7f4c 100644
--- a/ui/src/com/android/providers/downloads/ui/DownloadItem.java
+++ b/ui/src/com/android/providers/downloads/ui/DownloadItem.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.CheckBox;
+import android.widget.Checkable;
import android.widget.RelativeLayout;
/**
@@ -28,18 +29,14 @@ import android.widget.RelativeLayout;
* also keeps an ID associated with the currently displayed download and notifies a listener upon
* selection changes with that ID.
*/
-public class DownloadItem extends RelativeLayout {
+public class DownloadItem extends RelativeLayout implements Checkable {
private static float CHECKMARK_AREA = -1;
private boolean mIsInDownEvent = false;
private CheckBox mCheckBox;
private long mDownloadId;
- private DownloadSelectListener mListener;
-
- static interface DownloadSelectListener {
- public void onDownloadSelectionChanged(long downloadId, boolean isSelected);
- public boolean isDownloadSelected(long id);
- }
+ private DownloadList mDownloadList;
+ private int mPosition;
public DownloadItem(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
@@ -68,12 +65,13 @@ public class DownloadItem extends RelativeLayout {
mCheckBox = (CheckBox) findViewById(R.id.download_checkbox);
}
- public void setDownloadId(long downloadId) {
+ public void setData(long downloadId, int position) {
mDownloadId = downloadId;
+ mPosition = position;
}
- public void setSelectListener(DownloadSelectListener listener) {
- mListener = listener;
+ public void setDownloadListObj(DownloadList downloadList) {
+ mDownloadList = downloadList;
}
@Override
@@ -93,7 +91,7 @@ public class DownloadItem extends RelativeLayout {
case MotionEvent.ACTION_UP:
if (mIsInDownEvent && event.getX() < CHECKMARK_AREA) {
- toggleCheckMark();
+ toggle();
handled = true;
}
mIsInDownEvent = false;
@@ -109,8 +107,20 @@ public class DownloadItem extends RelativeLayout {
return handled;
}
- private void toggleCheckMark() {
- mCheckBox.toggle();
- mListener.onDownloadSelectionChanged(mDownloadId, mCheckBox.isChecked());
+ @Override
+ public boolean isChecked() {
+ return mCheckBox.isChecked();
+ }
+
+ @Override
+ public void setChecked(boolean checked) {
+ mCheckBox.setChecked(checked);
+ mDownloadList.onDownloadSelectionChanged(mDownloadId, mCheckBox.isChecked());
+ mDownloadList.getCurrentView().setItemChecked(mPosition, mCheckBox.isChecked());
+ }
+
+ @Override
+ public void toggle() {
+ setChecked(!isChecked());
}
}