diff options
author | Vasu Nori <vnori@google.com> | 2011-02-23 16:49:09 -0800 |
---|---|---|
committer | Vasu Nori <vnori@google.com> | 2011-02-25 17:10:22 -0800 |
commit | daed066d4dcc8873d3463ae65e16fa2e7fbcafe5 (patch) | |
tree | 2dda48eb7092f01e1cfa34e243f5000e11e0d419 /ui/src/com/android/providers/downloads/ui/DownloadItem.java | |
parent | 1d83506b9bd51fdd2332249be13019f649c19aab (diff) | |
download | android_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.java | 38 |
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()); } } |