diff options
author | Bobby Georgescu <georgescu@google.com> | 2013-01-29 13:30:12 -0800 |
---|---|---|
committer | Bobby Georgescu <georgescu@google.com> | 2013-01-29 13:30:12 -0800 |
commit | c216dce5c35b6176147b42a041ca85fa2dcca2a4 (patch) | |
tree | 20169bf546fa6cf1633ed17c23db0400bdfbb828 /src/com/android/gallery3d/ingest | |
parent | b17796f30a1b9cdde29f5b0e338c482ba447a4b1 (diff) | |
download | android_packages_apps_Gallery2-c216dce5c35b6176147b42a041ca85fa2dcca2a4.tar.gz android_packages_apps_Gallery2-c216dce5c35b6176147b42a041ca85fa2dcca2a4.tar.bz2 android_packages_apps_Gallery2-c216dce5c35b6176147b42a041ca85fa2dcca2a4.zip |
Importer: when view is reused for same image, don't reload
Bug: 7968780
Change-Id: I6786d140e516ff60562c5c0b1222fca0ea153216
Diffstat (limited to 'src/com/android/gallery3d/ingest')
-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); |