Merge "Camera: Handle ISE when device state manager is absent" into sc-v2-dev am: a8a33c88f2
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16034842 Change-Id: Id89389ee1e346c6ea994331f233f73de17ae968c
This commit is contained in:
@@ -109,8 +109,16 @@ public final class CameraManager {
|
|||||||
mHandlerThread.start();
|
mHandlerThread.start();
|
||||||
mHandler = new Handler(mHandlerThread.getLooper());
|
mHandler = new Handler(mHandlerThread.getLooper());
|
||||||
mFoldStateListener = new FoldStateListener(context);
|
mFoldStateListener = new FoldStateListener(context);
|
||||||
context.getSystemService(DeviceStateManager.class)
|
try {
|
||||||
.registerCallback(new HandlerExecutor(mHandler), mFoldStateListener);
|
context.getSystemService(DeviceStateManager.class)
|
||||||
|
.registerCallback(new HandlerExecutor(mHandler), mFoldStateListener);
|
||||||
|
} catch (IllegalStateException e) {
|
||||||
|
Log.v(TAG, "Failed to register device state listener!");
|
||||||
|
Log.v(TAG, "Device state dependent characteristics updates will not be functional!");
|
||||||
|
mHandlerThread.quitSafely();
|
||||||
|
mHandler = null;
|
||||||
|
mFoldStateListener = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private HandlerThread mHandlerThread;
|
private HandlerThread mHandlerThread;
|
||||||
@@ -176,7 +184,9 @@ public final class CameraManager {
|
|||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
DeviceStateListener listener = chars.getDeviceStateListener();
|
DeviceStateListener listener = chars.getDeviceStateListener();
|
||||||
listener.onDeviceStateChanged(mFoldedDeviceState);
|
listener.onDeviceStateChanged(mFoldedDeviceState);
|
||||||
mDeviceStateListeners.add(new WeakReference<>(listener));
|
if (mFoldStateListener != null) {
|
||||||
|
mDeviceStateListeners.add(new WeakReference<>(listener));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user