summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCamera Software Integration <camswint@localhost>2016-12-01 09:15:56 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-01 09:15:56 -0800
commit4b2ef26d514b4202c857584a6b4118cd11a9098d (patch)
tree0bf4a14578679035ed5505def821cc93e8db47fe /src
parent7fdeb80f7fb4e7077a306bf0119db884a3a0d7de (diff)
parent24854383dc7fef62abfd303edbb99eda3d941e1c (diff)
downloadandroid_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.java26
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