Merge "Remove jank on camera options switching" into ub-camera-glacier
diff --git a/src/com/android/camera/MultiToggleImageButton.java b/src/com/android/camera/MultiToggleImageButton.java
index ee75e21..b36cb3c 100644
--- a/src/com/android/camera/MultiToggleImageButton.java
+++ b/src/com/android/camera/MultiToggleImageButton.java
@@ -123,6 +123,17 @@
      * @param callListener should the state change listener be called?
      */
     public void setState(final int state, final boolean callListener) {
+        // TODO: animate button transitions, b/17414652
+        setStateInternal(state, callListener);
+    }
+
+    /**
+     * Set the current button state via an animated transition.
+     *
+     * @param state
+     * @param callListener
+     */
+    private void setStateAnimatedInternal(final int state, final boolean callListener) {
         if (mState == state || mState == UNSET) {
             setStateInternal(state, callListener);
             return;
diff --git a/src/com/android/camera/app/CameraAppUI.java b/src/com/android/camera/app/CameraAppUI.java
index 8dc3400..e3593eb 100644
--- a/src/com/android/camera/app/CameraAppUI.java
+++ b/src/com/android/camera/app/CameraAppUI.java
@@ -815,6 +815,7 @@
      * in.
      */
     public void freezeScreenUntilPreviewReady() {
+        Log.v(TAG, "freezeScreenUntilPreviewReady");
         mModeTransitionView.setupModeCover(mCameraModuleScreenShotProvider
                 .getScreenShot(DOWN_SAMPLE_RATE_FOR_SCREENSHOT));
         mHideCoverRunnable = new Runnable() {
@@ -1340,6 +1341,7 @@
      * Gets called when preview is started.
      */
     public void onPreviewStarted() {
+        Log.v(TAG, "onPreviewStarted");
         if (mModeCoverState == COVER_SHOWN) {
             mModeCoverState = COVER_WILL_HIDE_AT_NEXT_TEXTURE_UPDATE;
         }
@@ -1350,6 +1352,7 @@
      * Gets notified when next preview frame comes in.
      */
     public void onNewPreviewFrame() {
+        Log.v(TAG, "onNewPreviewFrame");
         CameraPerformanceTracker.onEvent(CameraPerformanceTracker.FIRST_PREVIEW_FRAME);
         hideModeCover();
         mModeCoverState = COVER_HIDDEN;
@@ -1579,6 +1582,7 @@
     public void onSurfaceTextureUpdated(SurfaceTexture surface) {
         mSurface = surface;
         if (mModeCoverState == COVER_WILL_HIDE_AT_NEXT_TEXTURE_UPDATE) {
+            Log.v(TAG, "hiding cover via onSurfaceTextureUpdated");
             CameraPerformanceTracker.onEvent(CameraPerformanceTracker.FIRST_PREVIEW_FRAME);
             hideModeCover();
             mModeCoverState = COVER_HIDDEN;
diff --git a/src/com/android/camera/app/CameraController.java b/src/com/android/camera/app/CameraController.java
index 64474ab..feb9882 100644
--- a/src/com/android/camera/app/CameraController.java
+++ b/src/com/android/camera/app/CameraController.java
@@ -233,9 +233,9 @@
             Log.v(TAG, "different camera already opened, closing then reopening");
             // Already has camera opened, and is switching cameras and/or APIs.
             if (mUsingNewApi) {
-                mCameraAgentNg.closeCamera(mCameraProxy, true);
+                mCameraAgentNg.closeCamera(mCameraProxy, false);
             } else {
-                mCameraAgent.closeCamera(mCameraProxy, true);
+                mCameraAgent.closeCamera(mCameraProxy, false);
             }
             checkAndOpenCamera(mContext, cameraManager, id, mCallbackHandler, this);
         } else {