summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/CameraActivity.java3
-rw-r--r--[-rwxr-xr-x]src/com/android/camera/CaptureModule.java5
-rw-r--r--src/com/android/camera/SettingsManager.java4
3 files changed, 12 insertions, 0 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 045e771cd..acbf0483a 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -1831,6 +1831,9 @@ public class CameraActivity extends Activity
mCursor.close();
mCursor=null;
}
+ if (mCaptureModule != null){
+ mCaptureModule.unRegisterSettingsListener();
+ }
if (mDataAdapter != null) {
mDataAdapter.stopLoading();
}
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 041e19b74..b6968f6f9 100755..100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -640,6 +640,11 @@ public class CaptureModule extends BaseModule<CaptureUI> implements PhotoControl
}
}
+ public void unRegisterSettingsListener(){
+ mSettingsManager.unregisterListener(this);
+ mSettingsManager.unregisterListener(mUI);
+ }
+
public void startFaceDetection() {
mUI.onStartFaceDetection(mDisplayOrientation,
mSettingsManager.isFacingFront(getMainCameraId()),
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index 263575cb7..c242224c7 100644
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -379,6 +379,10 @@ public class SettingsManager implements ListMenu.SettingsListener {
mListeners.add(listener);
}
+ public void unregisterListener(Listener listener) {
+ mListeners.remove(listener);
+ }
+
private void notifyListeners(List<SettingState> changes) {
for (Listener listener : mListeners) {
listener.onSettingsChanged(changes);