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

Commit 932fe93d authored by Eino-Ville Talvala's avatar Eino-Ville Talvala Committed by android-build-merger
Browse files

Merge changes I069e2b7e,Ic5e9e58a into nyc-dev

am: f4de8dd7

Change-Id: I4cc7b4855573e8e5817c5166b5d0f6cdf3d3a4a8
parents 1f160df1 f4de8dd7
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);
                }
                }
            }
            }
        };
        };
+43 −35
Original line number Original line Diff line number Diff line
@@ -37,8 +37,10 @@ public class MarshalRegistry {
     * @param queryable a non-{@code null} marshal queryable that supports marshaling {@code T}
     * @param queryable a non-{@code null} marshal queryable that supports marshaling {@code T}
     */
     */
    public static <T> void registerMarshalQueryable(MarshalQueryable<T> queryable) {
    public static <T> void registerMarshalQueryable(MarshalQueryable<T> queryable) {
        synchronized(sMarshalLock) {
            sRegisteredMarshalQueryables.add(queryable);
            sRegisteredMarshalQueryables.add(queryable);
        }
        }
    }


    /**
    /**
     * Lookup a marshaler between {@code T} and {@code nativeType}.
     * Lookup a marshaler between {@code T} and {@code nativeType}.
@@ -54,6 +56,7 @@ public class MarshalRegistry {
     */
     */
    @SuppressWarnings("unchecked")
    @SuppressWarnings("unchecked")
    public static <T> Marshaler<T> getMarshaler(TypeReference<T> typeToken, int nativeType) {
    public static <T> Marshaler<T> getMarshaler(TypeReference<T> typeToken, int nativeType) {
        synchronized(sMarshalLock) {
            // TODO: can avoid making a new token each time by code-genning
            // TODO: can avoid making a new token each time by code-genning
            // the list of type tokens and native types from the keys (at the call sites)
            // the list of type tokens and native types from the keys (at the call sites)
            MarshalToken<T> marshalToken = new MarshalToken<T>(typeToken, nativeType);
            MarshalToken<T> marshalToken = new MarshalToken<T>(typeToken, nativeType);
@@ -65,11 +68,12 @@ public class MarshalRegistry {
            Marshaler<T> marshaler =
            Marshaler<T> marshaler =
                    (Marshaler<T>) sMarshalerMap.get(marshalToken);
                    (Marshaler<T>) sMarshalerMap.get(marshalToken);


            if (marshaler == null) {

                if (sRegisteredMarshalQueryables.size() == 0) {
                if (sRegisteredMarshalQueryables.size() == 0) {
                    throw new AssertionError("No available query marshalers registered");
                    throw new AssertionError("No available query marshalers registered");
                }
                }


        if (marshaler == null) {
                // Query each marshaler to see if they support the native/managed type combination
                // Query each marshaler to see if they support the native/managed type combination
                for (MarshalQueryable<?> potentialMarshaler : sRegisteredMarshalQueryables) {
                for (MarshalQueryable<?> potentialMarshaler : sRegisteredMarshalQueryables) {


@@ -96,6 +100,7 @@ public class MarshalRegistry {


            return marshaler;
            return marshaler;
        }
        }
    }


    private static class MarshalToken<T> {
    private static class MarshalToken<T> {
        public MarshalToken(TypeReference<T> typeReference, int nativeType) {
        public MarshalToken(TypeReference<T> typeReference, int nativeType) {
@@ -125,9 +130,12 @@ public class MarshalRegistry {
        }
        }
    }
    }


    private static List<MarshalQueryable<?>> sRegisteredMarshalQueryables =
    // Control access to the static data structures below
    private static final Object sMarshalLock = new Object();

    private static final List<MarshalQueryable<?>> sRegisteredMarshalQueryables =
            new ArrayList<MarshalQueryable<?>>();
            new ArrayList<MarshalQueryable<?>>();
    private static HashMap<MarshalToken<?>, Marshaler<?>> sMarshalerMap =
    private static final HashMap<MarshalToken<?>, Marshaler<?>> sMarshalerMap =
            new HashMap<MarshalToken<?>, Marshaler<?>>();
            new HashMap<MarshalToken<?>, Marshaler<?>>();


    private MarshalRegistry() {
    private MarshalRegistry() {