diff options
author | Doris Liu <tianliu@google.com> | 2013-09-26 15:23:41 -0700 |
---|---|---|
committer | Doris Liu <tianliu@google.com> | 2013-09-26 16:19:45 -0700 |
commit | 2b86d873ca4fb3a921139633ed7be9959ab452df (patch) | |
tree | ccd04a8b5453a0287aaa2a7b14bb890067ae12a4 /src/com/android/camera/data | |
parent | 667880948de7a051f62359878cb61c1e0a867e24 (diff) | |
download | android_packages_apps_Snap-2b86d873ca4fb3a921139633ed7be9959ab452df.tar.gz android_packages_apps_Snap-2b86d873ca4fb3a921139633ed7be9959ab452df.tar.bz2 android_packages_apps_Snap-2b86d873ca4fb3a921139633ed7be9959ab452df.zip |
Fix memory leak of context in LocalMediaObserver
Bug: 10728773
Change-Id: Ie5a50590e71fd4b853cb7590db4fa14f5b6dc73b
Diffstat (limited to 'src/com/android/camera/data')
-rw-r--r-- | src/com/android/camera/data/LocalMediaObserver.java | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/com/android/camera/data/LocalMediaObserver.java b/src/com/android/camera/data/LocalMediaObserver.java index 4dd0f8897..d676396a7 100644 --- a/src/com/android/camera/data/LocalMediaObserver.java +++ b/src/com/android/camera/data/LocalMediaObserver.java @@ -17,10 +17,6 @@ package com.android.camera.data; import android.database.ContentObserver; -import android.net.Uri; -import android.os.Handler; - -import com.android.camera.CameraActivity; /** * Listening to the changes to the local image and video data. onChange will @@ -28,20 +24,32 @@ import com.android.camera.CameraActivity; */ public class LocalMediaObserver extends ContentObserver { - private final CameraActivity mActivity; + private boolean mActivityPaused = false; + private boolean mMediaDataChangedDuringPause = false; - public LocalMediaObserver(Handler handler, CameraActivity activity) { - super(handler); - mActivity = activity; + public LocalMediaObserver() { + super(null); } + /** + * When the activity is paused and MediaObserver get onChange() call, then + * we would like to set a dirty bit to reload the data at onResume(). + */ @Override public void onChange(boolean selfChange) { - this.onChange(selfChange, null); + if (mActivityPaused) { + mMediaDataChangedDuringPause = true; + } } - @Override - public void onChange(boolean selfChange, Uri uri) { - mActivity.setDirtyWhenPaused(); + public void setActivityPaused(boolean paused) { + mActivityPaused = paused; + if (!paused) { + mMediaDataChangedDuringPause = false; + } + } + + public boolean isMediaDataChangedDuringPause() { + return mMediaDataChangedDuringPause; } } |