diff options
| author | Igor Murashkin <iam@google.com> | 2014-03-07 17:34:38 -0800 |
|---|---|---|
| committer | Igor Murashkin <iam@google.com> | 2014-03-07 17:34:38 -0800 |
| commit | f24f9918f9dc081ccad9871dc174bf3b3e47059a (patch) | |
| tree | bec2abf3066f5c248b517b36efbce03bfc11120b /camera2 | |
| parent | c5da8557f1a26e984b14b9eb64cda2d3d3ba71ce (diff) | |
| download | android_frameworks_ex-f24f9918f9dc081ccad9871dc174bf3b3e47059a.tar.gz android_frameworks_ex-f24f9918f9dc081ccad9871dc174bf3b3e47059a.tar.bz2 android_frameworks_ex-f24f9918f9dc081ccad9871dc174bf3b3e47059a.zip | |
camera2: BlockingStateListener invokes proxy before firing state change
- This fixes a race condition where it was possible to wait for a state
transition using #waitForState but without yet the corresponding
proxy callback having been fired.
Change-Id: If521c4e48177d4b0fe5ab6fed3d31ddd74b656af
Diffstat (limited to 'camera2')
| -rw-r--r-- | camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java b/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java index 619ba0a..1f173eb 100644 --- a/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java +++ b/camera2/public/src/com/android/ex/camera2/blocking/BlockingStateListener.java @@ -133,50 +133,50 @@ public class BlockingStateListener extends CameraDevice.StateListener { @Override public void onOpened(CameraDevice camera) { - setCurrentState(STATE_OPENED); if (mProxy != null) mProxy.onOpened(camera); + setCurrentState(STATE_OPENED); } @Override public void onDisconnected(CameraDevice camera) { - setCurrentState(STATE_DISCONNECTED); if (mProxy != null) mProxy.onDisconnected(camera); + setCurrentState(STATE_DISCONNECTED); } @Override public void onError(CameraDevice camera, int error) { - setCurrentState(STATE_ERROR); if (mProxy != null) mProxy.onError(camera, error); + setCurrentState(STATE_ERROR); } @Override public void onUnconfigured(CameraDevice camera) { - setCurrentState(STATE_UNCONFIGURED); if (mProxy != null) mProxy.onUnconfigured(camera); + setCurrentState(STATE_UNCONFIGURED); } @Override public void onIdle(CameraDevice camera) { - setCurrentState(STATE_IDLE); if (mProxy != null) mProxy.onIdle(camera); + setCurrentState(STATE_IDLE); } @Override public void onActive(CameraDevice camera) { - setCurrentState(STATE_ACTIVE); if (mProxy != null) mProxy.onActive(camera); + setCurrentState(STATE_ACTIVE); } @Override public void onBusy(CameraDevice camera) { - setCurrentState(STATE_BUSY); if (mProxy != null) mProxy.onBusy(camera); + setCurrentState(STATE_BUSY); } @Override public void onClosed(CameraDevice camera) { - setCurrentState(STATE_CLOSED); if (mProxy != null) mProxy.onClosed(camera); + setCurrentState(STATE_CLOSED); } /** |
