OSDN Git Service

Fix secure camera.
authorSascha Haeberling <haeberling@google.com>
Sat, 14 Dec 2013 08:15:14 +0000 (00:15 -0800)
committerSascha Haeberling <haeberling@google.com>
Sat, 14 Dec 2013 08:17:31 +0000 (00:17 -0800)
Let's not crash in memory manager when removing a listener that was not
added. This was to do with pause() being called twice in secure mode.
Instead just issue a warning.

Change-Id: I72ad41fd72c92e746d4972014f23ad0a86082b2d

src/com/android/camera/app/MemoryManagerImpl.java

index 1b6c012..7c41cfc 100644 (file)
@@ -19,6 +19,7 @@ package com.android.camera.app;
 import android.content.ComponentCallbacks2;
 import android.content.Context;
 import android.content.res.Configuration;
+import android.util.Log;
 
 import com.android.camera.app.MediaSaver.QueueListener;
 
@@ -30,6 +31,8 @@ import java.util.LinkedList;
  * TODO: Add GCam signals.
  */
 public class MemoryManagerImpl implements MemoryManager, QueueListener, ComponentCallbacks2 {
+    private static final String TAG = "MemoryManagerImpl";
+
     private static final int[] sCriticalStates = new int[] {
             ComponentCallbacks2.TRIM_MEMORY_COMPLETE,
             ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL
@@ -72,7 +75,8 @@ public class MemoryManagerImpl implements MemoryManager, QueueListener, Componen
     public void removeListener(MemoryListener listener) {
         synchronized (mListeners) {
             if (!mListeners.contains(listener)) {
-                throw new IllegalStateException("Listener was never added.");
+                Log.w(TAG, "Cannot remove listener that was never added.");
+                return;
             }
             mListeners.remove(listener);
         }