From 8bc296e233298dbc76da22f01aaffec11e539d19 Mon Sep 17 00:00:00 2001 From: nicolasroard Date: Thu, 25 Oct 2012 11:54:57 -0700 Subject: [PATCH] Fix crash when starting filtereditor bug:7415170 Change-Id: I9d54b1179f343aa089bfd9a065ecddaa8a4283b8 --- .../gallery3d/filtershow/cache/DirectPresetCache.java | 17 ++++++++++++----- .../android/gallery3d/filtershow/cache/ImageLoader.java | 4 ++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java b/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java index fe75ccc27..adbb5daf7 100644 --- a/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java +++ b/src/com/android/gallery3d/filtershow/cache/DirectPresetCache.java @@ -61,13 +61,20 @@ public class DirectPresetCache implements Cache { } public void notifyObservers() { - for (int i = 0; i < mObservers.size(); i++) { - ImageShow imageShow = mObservers.elementAt(i); - imageShow.invalidate(); - imageShow.updateImage(); - } + mLoader.getActivity().runOnUiThread(mNotifyObserversRunnable); } + private final Runnable mNotifyObserversRunnable = new Runnable() { + @Override + public void run() { + for (int i = 0; i < mObservers.size(); i++) { + ImageShow imageShow = mObservers.elementAt(i); + imageShow.invalidate(); + imageShow.updateImage(); + } + } + }; + @Override public void addObserver(ImageShow observer) { if (!mObservers.contains(observer)) { diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java index f2b9177ba..b661aad1a 100644 --- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java +++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java @@ -89,6 +89,10 @@ public class ImageLoader { mHiresCache = new DelayedPresetCache(this, 3); } + public FilterShowActivity getActivity() { + return mActivity; + } + public void loadBitmap(Uri uri,int size) { mUri = uri; mOrientation = getOrientation(mContext, uri); -- 2.11.0