summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/CameraManager.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/com/android/camera/CameraManager.java b/src/com/android/camera/CameraManager.java
index fb9597e45..8f10ba8b0 100644
--- a/src/com/android/camera/CameraManager.java
+++ b/src/com/android/camera/CameraManager.java
@@ -37,6 +37,7 @@ import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.SurfaceHolder;
+import android.os.ConditionVariable;
import com.android.gallery3d.common.ApiHelper;
@@ -46,6 +47,9 @@ public class CameraManager {
private static final String TAG = "CameraManager";
private static CameraManager sCameraManager = new CameraManager();
+ // Thread progress signals
+ private ConditionVariable mSig = new ConditionVariable();
+
private Parameters mParameters;
private boolean mParametersIsDirty;
private IOException mReconnectIOException;
@@ -233,9 +237,9 @@ public class CameraManager {
case SET_PARAMETERS:
mParametersIsDirty = true;
- mParamsToSet.unflatten((String) msg.obj);
- mCamera.setParameters(mParamsToSet);
- return;
+ mCamera.setParameters((Parameters) msg.obj);
+ mSig.open();
+ break;
case GET_PARAMETERS:
if (mParametersIsDirty) {
@@ -445,8 +449,10 @@ public class CameraManager {
Log.v(TAG, "null parameters in setParameters()");
return;
}
- mCameraHandler.obtainMessage(SET_PARAMETERS, params.flatten())
+ mSig.close();
+ mCameraHandler.obtainMessage(SET_PARAMETERS, params)
.sendToTarget();
+ mSig.block();
}
public Parameters getParameters() {