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

Commit 50eebe05 authored by Eino-Ville Talvala's avatar Eino-Ville Talvala
Browse files

Camera2: Fix error codes for CameraDevice.StateCallback.onError()

Existing code assumed that ICameraDeviceCallbacks and
CameraDevice.StateCallback have the same error code values for matching
errors.

They do not.

Also remove duplicate error code definitions now present in the AIDL
file for ICameraDeviceCallbacks.

Bug: 29248704
Change-Id: I069e2b7ef3be7887634e128f1accb50b7558f3fd
parent 4a2c7c55
Loading
Loading
Loading
Loading
+5 −37
Original line number Original line Diff line number Diff line
@@ -1610,41 +1610,6 @@ public class CameraDeviceImpl extends CameraDevice
    }
    }


    public class CameraDeviceCallbacks extends ICameraDeviceCallbacks.Stub {
    public class CameraDeviceCallbacks extends ICameraDeviceCallbacks.Stub {
        //
        // Constants below need to be kept up-to-date with
        // frameworks/av/include/camera/camera2/ICameraDeviceCallbacks.h
        //

        //
        // Error codes for onCameraError
        //

        /**
         * Camera has been disconnected
         */
        public static final int ERROR_CAMERA_DISCONNECTED = 0;
        /**
         * Camera has encountered a device-level error
         * Matches CameraDevice.StateCallback#ERROR_CAMERA_DEVICE
         */
        public static final int ERROR_CAMERA_DEVICE = 1;
        /**
         * Camera has encountered a service-level error
         * Matches CameraDevice.StateCallback#ERROR_CAMERA_SERVICE
         */
        public static final int ERROR_CAMERA_SERVICE = 2;
        /**
         * Camera has encountered an error processing a single request.
         */
        public static final int ERROR_CAMERA_REQUEST = 3;
        /**
         * Camera has encountered an error producing metadata for a single capture
         */
        public static final int ERROR_CAMERA_RESULT = 4;
        /**
         * Camera has encountered an error producing an image buffer for a single capture
         */
        public static final int ERROR_CAMERA_BUFFER = 5;


        @Override
        @Override
        public IBinder asBinder() {
        public IBinder asBinder() {
@@ -1675,11 +1640,14 @@ public class CameraDeviceImpl extends CameraDevice
                    case ERROR_CAMERA_DEVICE:
                    case ERROR_CAMERA_DEVICE:
                    case ERROR_CAMERA_SERVICE:
                    case ERROR_CAMERA_SERVICE:
                        mInError = true;
                        mInError = true;
                        final int publicErrorCode = (errorCode == ERROR_CAMERA_DEVICE) ?
                                StateCallback.ERROR_CAMERA_DEVICE :
                                StateCallback.ERROR_CAMERA_SERVICE;
                        Runnable r = new Runnable() {
                        Runnable r = new Runnable() {
                            @Override
                            @Override
                            public void run() {
                            public void run() {
                                if (!CameraDeviceImpl.this.isClosed()) {
                                if (!CameraDeviceImpl.this.isClosed()) {
                                    mDeviceCallback.onError(CameraDeviceImpl.this, errorCode);
                                    mDeviceCallback.onError(CameraDeviceImpl.this, publicErrorCode);
                                }
                                }
                            }
                            }
                        };
                        };
@@ -2050,7 +2018,7 @@ public class CameraDeviceImpl extends CameraDevice
            public void run() {
            public void run() {
                if (!isClosed()) {
                if (!isClosed()) {
                    mDeviceCallback.onError(CameraDeviceImpl.this,
                    mDeviceCallback.onError(CameraDeviceImpl.this,
                            CameraDeviceCallbacks.ERROR_CAMERA_SERVICE);
                            StateCallback.ERROR_CAMERA_SERVICE);
                }
                }
            }
            }
        };
        };