diff options
| author | Angus Kong <shkong@google.com> | 2013-04-01 23:13:16 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-04-01 23:13:16 +0000 |
| commit | ce9ca226e0c24865314e962b3b276b5ed2f2899d (patch) | |
| tree | b3e2dfbe2ac9da70572711918953ad2c61d153ce | |
| parent | 0b65c2c2fdf5f9ce4d0740697db4c74a9b6cbdc6 (diff) | |
| parent | fe549800064a2b50211b005dbd2c727b256c44b0 (diff) | |
| download | android_packages_apps_Gallery2-ce9ca226e0c24865314e962b3b276b5ed2f2899d.tar.gz android_packages_apps_Gallery2-ce9ca226e0c24865314e962b3b276b5ed2f2899d.tar.bz2 android_packages_apps_Gallery2-ce9ca226e0c24865314e962b3b276b5ed2f2899d.zip | |
Merge "Handle InterruptedException in waitDone" into gb-ub-photos-bryce
| -rw-r--r-- | src/com/android/camera/CameraManager.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/com/android/camera/CameraManager.java b/src/com/android/camera/CameraManager.java index b1161cdc4..be82ea613 100644 --- a/src/com/android/camera/CameraManager.java +++ b/src/com/android/camera/CameraManager.java @@ -420,12 +420,20 @@ public class CameraManager { } public void setParameters(Parameters params) { - // TODO: check if this synchronous version is necessary + if (params == null) { + Log.v(TAG, "null parameters in setParameters()"); + return; + } mParametersIsDirty = true; mCameraHandler.obtainMessage(SET_PARAMETERS, params).sendToTarget(); } public void setParametersAsync(Parameters params) { + // TODO: remove this. + if (params == null) { + Log.v(TAG, "null parameters in setParameters()"); + return; + } mParametersIsDirty = true; mCameraHandler.removeMessages(SET_PARAMETERS_ASYNC); mCameraHandler.obtainMessage(SET_PARAMETERS_ASYNC, params).sendToTarget(); @@ -434,8 +442,7 @@ public class CameraManager { public Parameters getParameters() { if (mParametersIsDirty || mParameters == null) { mCameraHandler.sendEmptyMessage(GET_PARAMETERS); - waitDone(); - mParametersIsDirty = false; + if (waitDone()) mParametersIsDirty = false; } return mParameters; } @@ -445,7 +452,8 @@ public class CameraManager { ENABLE_SHUTTER_SOUND, (enable ? 1 : 0), 0).sendToTarget(); } - public void waitDone() { + // return false if cancelled. + public boolean waitDone() { final Object waitDoneLock = new Object(); final Runnable unlockRunnable = new Runnable() { @Override @@ -462,8 +470,10 @@ public class CameraManager { waitDoneLock.wait(); } catch (InterruptedException ex) { Log.v(TAG, "waitDone interrupted"); + return false; } } + return true; } } } |
