summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/ingest
diff options
context:
space:
mode:
authorBobby Georgescu <georgescu@google.com>2013-01-29 13:30:12 -0800
committerBobby Georgescu <georgescu@google.com>2013-01-29 13:30:12 -0800
commitddbff6fd78d2b3286a81fad125818443a6907ccf (patch)
tree9009ae23ed18872424f26d3a2221f08d20303243 /src/com/android/gallery3d/ingest
parent9a19022b495447029c81fdcd83dc1a1c86d98b25 (diff)
downloadandroid_packages_apps_Snap-ddbff6fd78d2b3286a81fad125818443a6907ccf.tar.gz
android_packages_apps_Snap-ddbff6fd78d2b3286a81fad125818443a6907ccf.tar.bz2
android_packages_apps_Snap-ddbff6fd78d2b3286a81fad125818443a6907ccf.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.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);