summaryrefslogtreecommitdiffstats
path: root/src
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
commit2da455143a4cb59d289f24c23b8f93c29da14fd0 (patch)
tree10d4e7c647748b29a0762f18d0b0ac9ebbfdc320 /src
parent7bbdf56b74ec0ba029b1fc5f0d96cf8e8c1e7618 (diff)
parentc216dce5c35b6176147b42a041ca85fa2dcca2a4 (diff)
downloadandroid_packages_apps_Gallery2-2da455143a4cb59d289f24c23b8f93c29da14fd0.tar.gz
android_packages_apps_Gallery2-2da455143a4cb59d289f24c23b8f93c29da14fd0.tar.bz2
android_packages_apps_Gallery2-2da455143a4cb59d289f24c23b8f93c29da14fd0.zip
Merge "Importer: when view is reused for same image, don't reload" into gb-ub-photos-bryce
Diffstat (limited to 'src')
-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);