summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBobby Georgescu <georgescu@google.com>2013-01-29 21:38:34 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-01-29 21:38:34 +0000
commita2577e066f195d6f3ec8d92c8941797976501ea2 (patch)
tree59008bfb7d956a89298def6a977e98e217a36d59
parentb5317406b1f43f39e5c5847a04b21a1c38a1830e (diff)
parentddbff6fd78d2b3286a81fad125818443a6907ccf (diff)
downloadandroid_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.java15
-rw-r--r--src/com/android/gallery3d/ingest/ui/MtpThumbnailTileView.java12
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);