diff options
author | Bobby Georgescu <georgescu@google.com> | 2013-01-29 21:38:34 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-01-29 21:38:34 +0000 |
commit | a2577e066f195d6f3ec8d92c8941797976501ea2 (patch) | |
tree | 59008bfb7d956a89298def6a977e98e217a36d59 | |
parent | b5317406b1f43f39e5c5847a04b21a1c38a1830e (diff) | |
parent | ddbff6fd78d2b3286a81fad125818443a6907ccf (diff) | |
download | android_packages_apps_Snap-a2577e066f195d6f3ec8d92c8941797976501ea2.tar.gz android_packages_apps_Snap-a2577e066f195d6f3ec8d92c8941797976501ea2.tar.bz2 android_packages_apps_Snap-a2577e066f195d6f3ec8d92c8941797976501ea2.zip |
Merge "Importer: when view is reused for same image, don't reload" into gb-ub-photos-bryce
-rw-r--r-- | src/com/android/gallery3d/ingest/adapter/MtpAdapter.java | 15 | ||||
-rw-r--r-- | src/com/android/gallery3d/ingest/ui/MtpThumbnailTileView.java | 12 |
2 files changed, 24 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/ingest/adapter/MtpAdapter.java b/src/com/android/gallery3d/ingest/adapter/MtpAdapter.java index 3cf0df2cf..611d880db 100644 --- a/src/com/android/gallery3d/ingest/adapter/MtpAdapter.java +++ b/src/com/android/gallery3d/ingest/adapter/MtpAdapter.java @@ -40,6 +40,7 @@ public class MtpAdapter extends BaseAdapter implements SectionIndexer { private MtpDeviceIndex mModel; private SortOrder mSortOrder = SortOrder.Descending; private LayoutInflater mInflater; + private int mGeneration = 0; public MtpAdapter(Activity context) { super(); @@ -53,6 +54,18 @@ public class MtpAdapter extends BaseAdapter implements SectionIndexer { notifyDataSetChanged(); } + @Override + public void notifyDataSetChanged() { + mGeneration++; + super.notifyDataSetChanged(); + } + + @Override + public void notifyDataSetInvalidated() { + mGeneration++; + super.notifyDataSetInvalidated(); + } + public boolean deviceConnected() { return (mModel != null) && (mModel.getDevice() != null); } @@ -121,7 +134,7 @@ public class MtpAdapter extends BaseAdapter implements SectionIndexer { } else { imageView = (MtpThumbnailTileView) convertView; } - imageView.setMtpDeviceAndObjectInfo(mModel.getDevice(), (MtpObjectInfo)getItem(position)); + imageView.setMtpDeviceAndObjectInfo(mModel.getDevice(), (MtpObjectInfo)getItem(position), mGeneration); return imageView; } else { DateTileView dateTile; diff --git a/src/com/android/gallery3d/ingest/ui/MtpThumbnailTileView.java b/src/com/android/gallery3d/ingest/ui/MtpThumbnailTileView.java index ddba6af91..2aeda73db 100644 --- a/src/com/android/gallery3d/ingest/ui/MtpThumbnailTileView.java +++ b/src/com/android/gallery3d/ingest/ui/MtpThumbnailTileView.java @@ -35,6 +35,8 @@ public class MtpThumbnailTileView extends ImageView implements Checkable { private Paint mForegroundPaint; private boolean mIsChecked; + private int mObjectHandle; + private int mGeneration; private void init() { mForegroundPaint = new Paint(); @@ -92,13 +94,19 @@ public class MtpThumbnailTileView extends ImageView implements Checkable { private LoadThumbnailTask mTask; - public void setMtpDeviceAndObjectInfo(MtpDevice device, MtpObjectInfo object) { + public void setMtpDeviceAndObjectInfo(MtpDevice device, MtpObjectInfo object, int gen) { + int handle = object.getObjectHandle(); + if (handle == mObjectHandle && gen == mGeneration) { + return; + } animate().cancel(); if (mTask != null) { mTask.cancel(true); } + mGeneration = gen; + mObjectHandle = handle; Bitmap thumbnail = MtpBitmapCache.getInstanceForDevice(device) - .get(object.getObjectHandle()); + .get(handle); if (thumbnail != null) { setAlpha(1f); setImageBitmap(thumbnail); |