Merge "Camera: Move the device state listener to CameraManagerGlobal" into udc-dev am: 1949caea12
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21918367 Change-Id: Ib118c823ac5bfae1575941aa120ed29298699b0d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -152,20 +152,7 @@ public final class CameraManager {
|
|||||||
mContext.checkSelfPermission(CAMERA_OPEN_CLOSE_LISTENER_PERMISSION) ==
|
mContext.checkSelfPermission(CAMERA_OPEN_CLOSE_LISTENER_PERMISSION) ==
|
||||||
PackageManager.PERMISSION_GRANTED;
|
PackageManager.PERMISSION_GRANTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
mFoldStateListener = new FoldStateListener(context);
|
|
||||||
try {
|
|
||||||
context.getSystemService(DeviceStateManager.class).registerCallback(
|
|
||||||
new HandlerExecutor(CameraManagerGlobal.get().getDeviceStateHandler()),
|
|
||||||
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!");
|
|
||||||
mFoldStateListener = null;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private FoldStateListener mFoldStateListener;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hide
|
* @hide
|
||||||
@@ -228,12 +215,7 @@ public final class CameraManager {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public void registerDeviceStateListener(@NonNull CameraCharacteristics chars) {
|
public void registerDeviceStateListener(@NonNull CameraCharacteristics chars) {
|
||||||
synchronized (mLock) {
|
CameraManagerGlobal.get().registerDeviceStateListener(chars, mContext);
|
||||||
DeviceStateListener listener = chars.getDeviceStateListener();
|
|
||||||
if (mFoldStateListener != null) {
|
|
||||||
mFoldStateListener.addDeviceStateListener(listener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1781,6 +1763,7 @@ public final class CameraManager {
|
|||||||
|
|
||||||
private HandlerThread mDeviceStateHandlerThread;
|
private HandlerThread mDeviceStateHandlerThread;
|
||||||
private Handler mDeviceStateHandler;
|
private Handler mDeviceStateHandler;
|
||||||
|
private FoldStateListener mFoldStateListener;
|
||||||
|
|
||||||
// Singleton, don't allow construction
|
// Singleton, don't allow construction
|
||||||
private CameraManagerGlobal() { }
|
private CameraManagerGlobal() { }
|
||||||
@@ -1795,7 +1778,8 @@ public final class CameraManager {
|
|||||||
return gCameraManager;
|
return gCameraManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Handler getDeviceStateHandler() {
|
public void registerDeviceStateListener(@NonNull CameraCharacteristics chars,
|
||||||
|
@NonNull Context ctx) {
|
||||||
synchronized(mLock) {
|
synchronized(mLock) {
|
||||||
if (mDeviceStateHandlerThread == null) {
|
if (mDeviceStateHandlerThread == null) {
|
||||||
mDeviceStateHandlerThread = new HandlerThread(TAG);
|
mDeviceStateHandlerThread = new HandlerThread(TAG);
|
||||||
@@ -1803,7 +1787,20 @@ public final class CameraManager {
|
|||||||
mDeviceStateHandler = new Handler(mDeviceStateHandlerThread.getLooper());
|
mDeviceStateHandler = new Handler(mDeviceStateHandlerThread.getLooper());
|
||||||
}
|
}
|
||||||
|
|
||||||
return mDeviceStateHandler;
|
if (mFoldStateListener == null) {
|
||||||
|
mFoldStateListener = new FoldStateListener(ctx);
|
||||||
|
try {
|
||||||
|
ctx.getSystemService(DeviceStateManager.class).registerCallback(
|
||||||
|
new HandlerExecutor(mDeviceStateHandler), 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!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mFoldStateListener.addDeviceStateListener(chars.getDeviceStateListener());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user