diff options
author | Sol Boucher <solb@google.com> | 2014-08-26 21:16:02 -0700 |
---|---|---|
committer | Sol Boucher <solb@google.com> | 2014-08-26 21:31:35 -0700 |
commit | 80cda8dae801f09c2ce928d0f3feb8a569939fc2 (patch) | |
tree | 7f86812981aa76018252c95d49a828ccda0bbc5d /camera2/portability | |
parent | f27e71f979e803a3ac00f4057eb909886d957a3e (diff) | |
download | android_frameworks_ex-80cda8dae801f09c2ce928d0f3feb8a569939fc2.tar.gz android_frameworks_ex-80cda8dae801f09c2ce928d0f3feb8a569939fc2.tar.bz2 android_frameworks_ex-80cda8dae801f09c2ce928d0f3feb8a569939fc2.zip |
camera2-portability: Fix zoom occasionally not working
Cache the last valid CameraSettings object
The camera2 implementation of CameraProxy#getSettings() now returns the most
recent valid CameraSettings object that was provided to it (or the template if
no valid cached instance is available). This more closely mimics the camera1
implementation's behavior, and resolves issues where the app relies on finding
recent settings there in corner cases.
Bug: 17016658
Change-Id: I057feec3f857428dd210300a05f22cafa9f5ba34
Diffstat (limited to 'camera2/portability')
-rw-r--r-- | camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java index d139c62..fe0bcee 100644 --- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java +++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java @@ -819,6 +819,7 @@ class AndroidCamera2AgentImpl extends CameraAgent { private final CameraDevice mCamera; private final CameraDeviceInfo.Characteristics mCharacteristics; private final AndroidCamera2Capabilities mCapabilities; + private CameraSettings mLastSettings; public AndroidCamera2ProxyImpl(int cameraIndex, CameraDevice camera, CameraDeviceInfo.Characteristics characteristics, @@ -827,6 +828,7 @@ class AndroidCamera2AgentImpl extends CameraAgent { mCamera = camera; mCharacteristics = characteristics; mCapabilities = new AndroidCamera2Capabilities(properties); + mLastSettings = null; } // TODO: Implement @@ -997,7 +999,10 @@ class AndroidCamera2AgentImpl extends CameraAgent { @Override public CameraSettings getSettings() { - return mCameraHandler.buildSettings(mCapabilities); + if (mLastSettings == null) { + mLastSettings = mCameraHandler.buildSettings(mCapabilities); + } + return mLastSettings; } @Override @@ -1011,9 +1016,13 @@ class AndroidCamera2AgentImpl extends CameraAgent { return false; } - return applySettingsHelper(settings, AndroidCamera2StateHolder.CAMERA_UNCONFIGURED | + if (applySettingsHelper(settings, AndroidCamera2StateHolder.CAMERA_UNCONFIGURED | AndroidCamera2StateHolder.CAMERA_CONFIGURED | - AndroidCamera2StateHolder.CAMERA_PREVIEW_READY); + AndroidCamera2StateHolder.CAMERA_PREVIEW_READY)) { + mLastSettings = settings; + return true; + } + return false; } // TODO: Implement |