Merge "Camera: Improve error handling of device state listeners" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
cbfa540d34
@@ -212,14 +212,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
|||||||
@GuardedBy("mLock")
|
@GuardedBy("mLock")
|
||||||
private boolean mFoldedDeviceState;
|
private boolean mFoldedDeviceState;
|
||||||
|
|
||||||
private final CameraManager.DeviceStateListener mFoldStateListener =
|
private CameraManager.DeviceStateListener mFoldStateListener;
|
||||||
new CameraManager.DeviceStateListener() {
|
|
||||||
@Override
|
|
||||||
public final void onDeviceStateChanged(boolean folded) {
|
|
||||||
synchronized (mLock) {
|
|
||||||
mFoldedDeviceState = folded;
|
|
||||||
}
|
|
||||||
}};
|
|
||||||
|
|
||||||
private static final String TAG = "CameraCharacteristics";
|
private static final String TAG = "CameraCharacteristics";
|
||||||
|
|
||||||
@@ -245,7 +238,18 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
|
|||||||
/**
|
/**
|
||||||
* Return the device state listener for this Camera characteristics instance
|
* Return the device state listener for this Camera characteristics instance
|
||||||
*/
|
*/
|
||||||
CameraManager.DeviceStateListener getDeviceStateListener() { return mFoldStateListener; }
|
CameraManager.DeviceStateListener getDeviceStateListener() {
|
||||||
|
if (mFoldStateListener == null) {
|
||||||
|
mFoldStateListener = new CameraManager.DeviceStateListener() {
|
||||||
|
@Override
|
||||||
|
public final void onDeviceStateChanged(boolean folded) {
|
||||||
|
synchronized (mLock) {
|
||||||
|
mFoldedDeviceState = folded;
|
||||||
|
}
|
||||||
|
}};
|
||||||
|
}
|
||||||
|
return mFoldStateListener;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overrides the property value
|
* Overrides the property value
|
||||||
|
|||||||
@@ -1836,6 +1836,7 @@ public final class CameraManager {
|
|||||||
ctx.getSystemService(DeviceStateManager.class).registerCallback(
|
ctx.getSystemService(DeviceStateManager.class).registerCallback(
|
||||||
new HandlerExecutor(mDeviceStateHandler), mFoldStateListener);
|
new HandlerExecutor(mDeviceStateHandler), mFoldStateListener);
|
||||||
} catch (IllegalStateException e) {
|
} catch (IllegalStateException e) {
|
||||||
|
mFoldStateListener = null;
|
||||||
Log.v(TAG, "Failed to register device state listener!");
|
Log.v(TAG, "Failed to register device state listener!");
|
||||||
Log.v(TAG, "Device state dependent characteristics updates will not be" +
|
Log.v(TAG, "Device state dependent characteristics updates will not be" +
|
||||||
"functional!");
|
"functional!");
|
||||||
|
|||||||
Reference in New Issue
Block a user