Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a8d5596 authored by Emilian Peev's avatar Emilian Peev Committed by Automerger Merge Worker
Browse files

Merge "Camera: Handle ISE when device state manager is absent" into sc-v2-dev...

Merge "Camera: Handle ISE when device state manager is absent" into sc-v2-dev am: a8a33c88 am: 24a01127

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16034842

Change-Id: Id0b8d3ed9acdc0e70dd82d78fca964309f75b53f
parents 80fe361c 24a01127
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -117,8 +117,16 @@ public final class CameraManager {
        mHandlerThread.start();
        mHandler = new Handler(mHandlerThread.getLooper());
        mFoldStateListener = new FoldStateListener(context);
        try {
            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;
@@ -184,9 +192,11 @@ public final class CameraManager {
        synchronized (mLock) {
            DeviceStateListener listener = chars.getDeviceStateListener();
            listener.onDeviceStateChanged(mFoldedDeviceState);
            if (mFoldStateListener != null) {
                mDeviceStateListeners.add(new WeakReference<>(listener));
            }
        }
    }

    /**
     * Return the list of currently connected camera devices by identifier, including