diff options
| -rw-r--r-- | src/com/android/camera/CameraManager.java | 14 |
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() { |
