Loading core/java/android/hardware/camera2/CameraManager.java +24 −20 Original line number Diff line number Diff line Loading @@ -133,9 +133,6 @@ public final class CameraManager { private HandlerThread mHandlerThread; private Handler mHandler; private FoldStateListener mFoldStateListener; @GuardedBy("mLock") private ArrayList<WeakReference<DeviceStateListener>> mDeviceStateListeners = new ArrayList<>(); private boolean mFoldedDeviceState; /** * @hide Loading @@ -144,17 +141,21 @@ public final class CameraManager { void onDeviceStateChanged(boolean folded); } private final class FoldStateListener implements DeviceStateManager.DeviceStateCallback { private static final class FoldStateListener implements DeviceStateManager.DeviceStateCallback { private final int[] mFoldedDeviceStates; private ArrayList<WeakReference<DeviceStateListener>> mDeviceStateListeners = new ArrayList<>(); private boolean mFoldedDeviceState; public FoldStateListener(Context context) { mFoldedDeviceStates = context.getResources().getIntArray( com.android.internal.R.array.config_foldedDeviceStates); } private void handleStateChange(int state) { private synchronized void handleStateChange(int state) { boolean folded = ArrayUtils.contains(mFoldedDeviceStates, state); synchronized (mLock) { mFoldedDeviceState = folded; ArrayList<WeakReference<DeviceStateListener>> invalidListeners = new ArrayList<>(); for (WeakReference<DeviceStateListener> listener : mDeviceStateListeners) { Loading @@ -169,6 +170,10 @@ public final class CameraManager { mDeviceStateListeners.removeAll(invalidListeners); } } public synchronized void addDeviceStateListener(DeviceStateListener listener) { listener.onDeviceStateChanged(mFoldedDeviceState); mDeviceStateListeners.add(new WeakReference<>(listener)); } @Override Loading @@ -192,9 +197,8 @@ public final class CameraManager { public void registerDeviceStateListener(@NonNull CameraCharacteristics chars) { synchronized (mLock) { DeviceStateListener listener = chars.getDeviceStateListener(); listener.onDeviceStateChanged(mFoldedDeviceState); if (mFoldStateListener != null) { mDeviceStateListeners.add(new WeakReference<>(listener)); mFoldStateListener.addDeviceStateListener(listener); } } } Loading Loading
core/java/android/hardware/camera2/CameraManager.java +24 −20 Original line number Diff line number Diff line Loading @@ -133,9 +133,6 @@ public final class CameraManager { private HandlerThread mHandlerThread; private Handler mHandler; private FoldStateListener mFoldStateListener; @GuardedBy("mLock") private ArrayList<WeakReference<DeviceStateListener>> mDeviceStateListeners = new ArrayList<>(); private boolean mFoldedDeviceState; /** * @hide Loading @@ -144,17 +141,21 @@ public final class CameraManager { void onDeviceStateChanged(boolean folded); } private final class FoldStateListener implements DeviceStateManager.DeviceStateCallback { private static final class FoldStateListener implements DeviceStateManager.DeviceStateCallback { private final int[] mFoldedDeviceStates; private ArrayList<WeakReference<DeviceStateListener>> mDeviceStateListeners = new ArrayList<>(); private boolean mFoldedDeviceState; public FoldStateListener(Context context) { mFoldedDeviceStates = context.getResources().getIntArray( com.android.internal.R.array.config_foldedDeviceStates); } private void handleStateChange(int state) { private synchronized void handleStateChange(int state) { boolean folded = ArrayUtils.contains(mFoldedDeviceStates, state); synchronized (mLock) { mFoldedDeviceState = folded; ArrayList<WeakReference<DeviceStateListener>> invalidListeners = new ArrayList<>(); for (WeakReference<DeviceStateListener> listener : mDeviceStateListeners) { Loading @@ -169,6 +170,10 @@ public final class CameraManager { mDeviceStateListeners.removeAll(invalidListeners); } } public synchronized void addDeviceStateListener(DeviceStateListener listener) { listener.onDeviceStateChanged(mFoldedDeviceState); mDeviceStateListeners.add(new WeakReference<>(listener)); } @Override Loading @@ -192,9 +197,8 @@ public final class CameraManager { public void registerDeviceStateListener(@NonNull CameraCharacteristics chars) { synchronized (mLock) { DeviceStateListener listener = chars.getDeviceStateListener(); listener.onDeviceStateChanged(mFoldedDeviceState); if (mFoldStateListener != null) { mDeviceStateListeners.add(new WeakReference<>(listener)); mFoldStateListener.addDeviceStateListener(listener); } } } Loading