diff options
author | Camera Software Integration <camswint@localhost> | 2016-12-01 09:15:56 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-12-01 09:15:56 -0800 |
commit | 4b2ef26d514b4202c857584a6b4118cd11a9098d (patch) | |
tree | 0bf4a14578679035ed5505def821cc93e8db47fe /src | |
parent | 7fdeb80f7fb4e7077a306bf0119db884a3a0d7de (diff) | |
parent | 24854383dc7fef62abfd303edbb99eda3d941e1c (diff) | |
download | android_packages_apps_Snap-4b2ef26d514b4202c857584a6b4118cd11a9098d.tar.gz android_packages_apps_Snap-4b2ef26d514b4202c857584a6b4118cd11a9098d.tar.bz2 android_packages_apps_Snap-4b2ef26d514b4202c857584a6b4118cd11a9098d.zip |
Merge "SnapdragonCamera: ANR when open photo just taken" into camera.lnx.1.0-dev.1.0
Diffstat (limited to 'src')
-rw-r--r--[-rwxr-xr-x] | src/com/android/camera/AndroidCameraManagerImpl.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/com/android/camera/AndroidCameraManagerImpl.java b/src/com/android/camera/AndroidCameraManagerImpl.java index 486629895..438be2e90 100755..100644 --- a/src/com/android/camera/AndroidCameraManagerImpl.java +++ b/src/com/android/camera/AndroidCameraManagerImpl.java @@ -200,6 +200,30 @@ class AndroidCameraManagerImpl implements CameraManager { return true; } + public boolean waitDone(long timeout) { + final Object waitDoneLock = new Object(); + final Runnable unlockRunnable = new Runnable() { + @Override + public void run() { + synchronized (waitDoneLock) { + waitDoneLock.notifyAll(); + } + } + }; + + synchronized (waitDoneLock) { + mCameraHandler.post(unlockRunnable); + try { + waitDoneLock.wait(timeout); + mCameraHandler.removeCallbacks(unlockRunnable); + } catch (InterruptedException ex) { + Log.v(TAG, "waitDone interrupted"); + return false; + } + } + return true; + } + /** * This method does not deal with the API level check. Everyone should * check first for supported operations before sending message to this handler. @@ -499,7 +523,7 @@ class AndroidCameraManagerImpl implements CameraManager { @Override public void stopPreview() { mCameraHandler.sendEmptyMessage(STOP_PREVIEW); - mCameraHandler.waitDone(); + mCameraHandler.waitDone(200); } @Override |