summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2013-04-03 22:41:53 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-04-03 22:41:53 +0000
commit5a7a5ce7a4ea9603649e8b9aff74e829ca8179c1 (patch)
tree93008a827148f9728285686e48c75f134307cdc1
parentbbee3bfe85ab29acda2e13c422459d3cb96b1917 (diff)
parent2ebee8fc991443fed9f043045a5c8feb2ff9342c (diff)
downloadandroid_packages_apps_Snap-5a7a5ce7a4ea9603649e8b9aff74e829ca8179c1.tar.gz
android_packages_apps_Snap-5a7a5ce7a4ea9603649e8b9aff74e829ca8179c1.tar.bz2
android_packages_apps_Snap-5a7a5ce7a4ea9603649e8b9aff74e829ca8179c1.zip
Merge "Don't access mParameters dirty bit in other thread" into gb-ub-photos-bryce
-rw-r--r--src/com/android/camera/CameraManager.java20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/com/android/camera/CameraManager.java b/src/com/android/camera/CameraManager.java
index a26a51cf9..b354654b6 100644
--- a/src/com/android/camera/CameraManager.java
+++ b/src/com/android/camera/CameraManager.java
@@ -74,7 +74,6 @@ public class CameraManager {
private static final int ENABLE_SHUTTER_SOUND = 24;
private Handler mCameraHandler;
- private CameraProxy mCameraProxy;
private android.hardware.Camera mCamera;
// This holder is used when we need to pass the exception
@@ -139,7 +138,6 @@ public class CameraManager {
case RELEASE:
mCamera.release();
mCamera = null;
- mCameraProxy = null;
return;
case RECONNECT:
@@ -226,11 +224,15 @@ public class CameraManager {
return;
case SET_PARAMETERS:
+ mParametersIsDirty = true;
mCamera.setParameters((Parameters) msg.obj);
return;
case GET_PARAMETERS:
- mParameters = mCamera.getParameters();
+ if (mParametersIsDirty) {
+ mParameters = mCamera.getParameters();
+ mParametersIsDirty = false;
+ }
return;
case SET_PARAMETERS_ASYNC:
@@ -256,7 +258,6 @@ public class CameraManager {
Log.e(TAG, "Fail to release the camera.");
}
mCamera = null;
- mCameraProxy = null;
}
throw e;
}
@@ -280,9 +281,8 @@ public class CameraManager {
// a view hierarchy can touch its views.
mCamera = android.hardware.Camera.open(cameraId);
if (mCamera != null) {
- mCameraProxy = new CameraProxy();
mParametersIsDirty = true;
- return mCameraProxy;
+ return new CameraProxy();
} else {
return null;
}
@@ -427,7 +427,6 @@ public class CameraManager {
Log.v(TAG, "null parameters in setParameters()");
return;
}
- mParametersIsDirty = true;
mCameraHandler.obtainMessage(SET_PARAMETERS, params).sendToTarget();
}
@@ -437,16 +436,13 @@ public class CameraManager {
Log.v(TAG, "null parameters in setParameters()");
return;
}
- mParametersIsDirty = true;
mCameraHandler.removeMessages(SET_PARAMETERS_ASYNC);
mCameraHandler.obtainMessage(SET_PARAMETERS_ASYNC, params).sendToTarget();
}
public Parameters getParameters() {
- if (mParametersIsDirty || mParameters == null) {
- mCameraHandler.sendEmptyMessage(GET_PARAMETERS);
- if (waitDone()) mParametersIsDirty = false;
- }
+ mCameraHandler.sendEmptyMessage(GET_PARAMETERS);
+ waitDone();
return mParameters;
}