diff options
author | Spike Sprague <spikuru@google.com> | 2014-09-18 19:44:07 -0700 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2014-09-19 08:17:05 -0700 |
commit | bdba0dc07cc6a0a0ba08aeb5903b7b00b6cfc1ef (patch) | |
tree | b5c74d7bfd3130de40fd2a042cd4cf35a756247c | |
parent | d74c99e0936fe71cd657a9ce114bb5d1e5b3fcae (diff) | |
download | android_packages_apps_Camera2-bdba0dc07cc6a0a0ba08aeb5903b7b00b6cfc1ef.tar.gz android_packages_apps_Camera2-bdba0dc07cc6a0a0ba08aeb5903b7b00b6cfc1ef.tar.bz2 android_packages_apps_Camera2-bdba0dc07cc6a0a0ba08aeb5903b7b00b6cfc1ef.zip |
portability layer doesn't work well with startPreviewWithCallback()
here's a dirty dirty workaround.
bug: 17576554
Change-Id: Ief40b65ce49712153f6ef604a3513348e493d4d9
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index cbaa01b99..ffa5601c8 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1992,18 +1992,27 @@ public class PhotoModule mCameraDevice.setPreviewTexture(mActivity.getCameraAppUI().getSurfaceTexture()); Log.i(TAG, "startPreview"); - mCameraDevice.startPreviewWithCallback(new Handler(Looper.getMainLooper()), - new CameraAgent.CameraStartPreviewCallback() { - @Override - public void onPreviewStarted() { - mFocusManager.onPreviewStarted(); - PhotoModule.this.onPreviewStarted(); - SessionStatsCollector.instance().previewActive(true); - if (mSnapshotOnIdle) { - mHandler.post(mDoSnapRunnable); + // If we're using API2 in portability layers, don't use startPreviewWithCallback() + // b/17576554 + CameraAgent.CameraStartPreviewCallback startPreviewCallback = + new CameraAgent.CameraStartPreviewCallback() { + @Override + public void onPreviewStarted() { + mFocusManager.onPreviewStarted(); + PhotoModule.this.onPreviewStarted(); + SessionStatsCollector.instance().previewActive(true); + if (mSnapshotOnIdle) { + mHandler.post(mDoSnapRunnable); + } } - } - }); + }; + if (GservicesHelper.useCamera2ApiThroughPortabilityLayer(mActivity)) { + mCameraDevice.startPreview(); + startPreviewCallback.onPreviewStarted(); + } else { + mCameraDevice.startPreviewWithCallback(new Handler(Looper.getMainLooper()), + startPreviewCallback); + } } finally { mStartPreviewLock = false; } |