OSDN Git Service

Don't render the preview while it's not visible to the user.
authorSam Judd <judds@google.com>
Fri, 21 Mar 2014 23:53:27 +0000 (16:53 -0700)
committerSam Judd <judds@google.com>
Sat, 22 Mar 2014 00:35:22 +0000 (17:35 -0700)
Bug: 13586944
Change-Id: Ide777da080ce150cec601b4e6e88cd6c4ea19cda

src/com/android/camera/CameraActivity.java
src/com/android/camera/app/CameraAppUI.java

index da0c559..f37dbbd 100644 (file)
@@ -1362,15 +1362,28 @@ public class CameraActivity extends Activity
         if (mCurrentModule == null) {
             return;
         }
-        int visibility;
+
+        int visibility = getPreviewVisibility();
+        updatePreviewRendering(visibility);
+        mCurrentModule.onPreviewVisibilityChanged(visibility);
+    }
+
+    private void updatePreviewRendering(int visibility) {
+        if (visibility == ModuleController.VISIBILITY_HIDDEN) {
+            mCameraAppUI.pausePreviewRendering();
+        } else {
+            mCameraAppUI.resumePreviewRendering();
+        }
+    }
+
+    private int getPreviewVisibility() {
         if (mFilmstripCoversPreview) {
-            visibility = ModuleController.VISIBILITY_HIDDEN;
+            return ModuleController.VISIBILITY_HIDDEN;
         } else if (mModeListVisible){
-            visibility = ModuleController.VISIBILITY_COVERED;
+            return ModuleController.VISIBILITY_COVERED;
         } else {
-            visibility = ModuleController.VISIBILITY_VISIBLE;
+            return ModuleController.VISIBILITY_VISIBLE;
         }
-        mCurrentModule.onPreviewVisibilityChanged(visibility);
     }
 
     private void setRotationAnimation() {
@@ -1536,6 +1549,9 @@ public class CameraActivity extends Activity
         mPanoramaViewHelper.onResume();
         ReleaseDialogHelper.showReleaseInfoDialogOnStart(this, mSettingsManager);
         syncLocationManagerSetting();
+
+        final int previewVisibility = getPreviewVisibility();
+        updatePreviewRendering(previewVisibility);
     }
 
     @Override
index e90cc9a..b28c938 100644 (file)
@@ -853,6 +853,20 @@ public class CameraAppUI implements ModeListView.ModeSwitchListener,
         }
     }
 
+    /**
+     * Call to stop the preview from being rendered.
+     */
+    public void pausePreviewRendering() {
+        mTextureView.setVisibility(View.INVISIBLE);
+    }
+
+    /**
+     * Call to begin rendering the preview again.
+     */
+    public void resumePreviewRendering() {
+        mTextureView.setVisibility(View.VISIBLE);
+    }
+
     @Override
     public void onOpenFullScreen() {
         if (mShouldShowShimmy) {