summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/data
diff options
context:
space:
mode:
authorOwen Lin <owenlin@google.com>2012-04-17 16:21:12 +0800
committerOwen Lin <owenlin@google.com>2012-04-18 17:35:40 +0800
commit9ca9c3705c2176f1da98c573a9d765fc65b840ce (patch)
tree419c507f614080798c14441bac41109c0ee0ca6e /src/com/android/gallery3d/data
parent48ba94ae713dbf57898cfa84ae69517da50cf7a0 (diff)
downloadandroid_packages_apps_Gallery2-9ca9c3705c2176f1da98c573a9d765fc65b840ce.tar.gz
android_packages_apps_Gallery2-9ca9c3705c2176f1da98c573a9d765fc65b840ce.tar.bz2
android_packages_apps_Gallery2-9ca9c3705c2176f1da98c573a9d765fc65b840ce.zip
Fix NPE in onContentDirty.
onContentDirty is suppose to be called in Main thread. Change-Id: Ic6a0fba8abd8a3e17d400bcfc5b82d272b07bc41
Diffstat (limited to 'src/com/android/gallery3d/data')
-rw-r--r--src/com/android/gallery3d/data/LocalAlbumSet.java11
-rw-r--r--src/com/android/gallery3d/data/MtpDeviceSet.java11
2 files changed, 20 insertions, 2 deletions
diff --git a/src/com/android/gallery3d/data/LocalAlbumSet.java b/src/com/android/gallery3d/data/LocalAlbumSet.java
index 47e3bd431..dbb518985 100644
--- a/src/com/android/gallery3d/data/LocalAlbumSet.java
+++ b/src/com/android/gallery3d/data/LocalAlbumSet.java
@@ -19,6 +19,7 @@ package com.android.gallery3d.data;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
+import android.os.Handler;
import android.provider.MediaStore.Files;
import android.provider.MediaStore.Files.FileColumns;
import android.provider.MediaStore.Images;
@@ -98,12 +99,15 @@ public class LocalAlbumSet extends MediaSet
private final ChangeNotifier mNotifierImage;
private final ChangeNotifier mNotifierVideo;
private final String mName;
+ private final Handler mHandler;
+
private Future<ArrayList<MediaSet>> mLoadTask;
private ArrayList<MediaSet> mLoadBuffer;
public LocalAlbumSet(Path path, GalleryApp application) {
super(path, nextVersionNumber());
mApplication = application;
+ mHandler = new Handler(application.getMainLooper());
mType = getTypeFromPath(path);
mNotifierImage = new ChangeNotifier(this, mWatchUriImage, application);
mNotifierVideo = new ChangeNotifier(this, mWatchUriVideo, application);
@@ -282,7 +286,12 @@ public class LocalAlbumSet extends MediaSet
if (mLoadTask != future) return; // ignore, wait for the latest task
mLoadBuffer = future.get();
if (mLoadBuffer == null) mLoadBuffer = new ArrayList<MediaSet>();
- notifyContentChanged();
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ notifyContentChanged();
+ }
+ });
}
// For debug only. Fake there is a ContentObserver.onChange() event.
diff --git a/src/com/android/gallery3d/data/MtpDeviceSet.java b/src/com/android/gallery3d/data/MtpDeviceSet.java
index 46cc0fc68..6dcb0d2e6 100644
--- a/src/com/android/gallery3d/data/MtpDeviceSet.java
+++ b/src/com/android/gallery3d/data/MtpDeviceSet.java
@@ -18,6 +18,7 @@ package com.android.gallery3d.data;
import android.mtp.MtpDeviceInfo;
import android.net.Uri;
+import android.os.Handler;
import android.util.Log;
import com.android.gallery3d.R;
@@ -41,6 +42,7 @@ public class MtpDeviceSet extends MediaSet
private final ChangeNotifier mNotifier;
private final MtpContext mMtpContext;
private final String mName;
+ private final Handler mHandler;
private Future<ArrayList<MediaSet>> mLoadTask;
private ArrayList<MediaSet> mDeviceSet = new ArrayList<MediaSet>();
@@ -52,6 +54,7 @@ public class MtpDeviceSet extends MediaSet
mNotifier = new ChangeNotifier(this, Uri.parse("mtp://"), application);
mMtpContext = mtpContext;
mName = application.getResources().getString(R.string.set_label_mtp_devices);
+ mHandler = new Handler(mApplication.getMainLooper());
}
private class DevicesLoader implements Job<ArrayList<MediaSet>> {
@@ -131,6 +134,12 @@ public class MtpDeviceSet extends MediaSet
if (future != mLoadTask) return;
mLoadBuffer = future.get();
if (mLoadBuffer == null) mLoadBuffer = new ArrayList<MediaSet>();
- notifyContentChanged();
+
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ notifyContentChanged();
+ }
+ });
}
}