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

Commit a8a33c88 authored by Emilian Peev's avatar Emilian Peev Committed by Android (Google) Code Review
Browse files

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

parents cd056ddb 47cae0f0
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -109,8 +109,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;
@@ -176,9 +184,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