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

Commit c1d14cf3 authored by Haofan Wang's avatar Haofan Wang Committed by Android (Google) Code Review
Browse files

Merge "Add onVendorParamCapabilityChanged method" into main

parents f43984e2 5514c9d1
Loading
Loading
Loading
Loading
+31 −13
Original line number Diff line number Diff line
@@ -1598,17 +1598,8 @@ public class MediaQualityService extends SystemService {
        }

        private void notifyOnPictureProfileParameterCapabilitiesChanged(Long profileId,
                ParamCapability[] caps, int uid, int pid) {
                List<ParameterCapability> paramCaps, int uid, int pid) {
            String uuid = mPictureProfileTempIdMap.getValue(profileId);
            List<ParameterCapability> paramCaps = new ArrayList<>();
            for (ParamCapability cap: caps) {
                String name = MediaQualityUtils.getParameterName(cap.name);
                boolean isSupported = cap.isSupported;
                int type = cap.defaultValue == null ? 0 : cap.defaultValue.getTag() + 1;
                Bundle bundle = MediaQualityUtils.convertToCaps(type, cap.range);

                paramCaps.add(new ParameterCapability(name, isSupported, type, bundle));
            }
            notifyPictureProfileHelper(ProfileModes.PARAMETER_CAPABILITY_CHANGED, uuid,
                    null, null, paramCaps , uid, pid);
        }
@@ -1883,14 +1874,41 @@ public class MediaQualityService extends SystemService {
        @Override
        public void onParamCapabilityChanged(long pictureProfileId, ParamCapability[] caps)
                throws RemoteException {
            List<ParameterCapability> paramCaps = new ArrayList<>();
            for (ParamCapability cap: caps) {
                String name = MediaQualityUtils.getParameterName(cap.name);
                boolean isSupported = cap.isSupported;
                //Reason for +1: please see getListParameterCapability()
                int type = cap.defaultValue == null ? 0 : cap.defaultValue.getTag() + 1;
                Bundle bundle = MediaQualityUtils.convertToCaps(type, cap.range);

                paramCaps.add(new ParameterCapability(name, isSupported, type, bundle));
            }
            mMqManagerNotifier.notifyOnPictureProfileParameterCapabilitiesChanged(
                    pictureProfileId, caps, Binder.getCallingUid(), Binder.getCallingPid());
                    pictureProfileId, paramCaps, Binder.getCallingUid(), Binder.getCallingPid());
        }

        @Override
        public void onVendorParamCapabilityChanged(long pictureProfileId,
                VendorParamCapability[] caps) throws RemoteException {
            // TODO
            List<ParameterCapability> vendorParamCaps = new ArrayList<>();
            for (VendorParamCapability vpcHal: caps) {
                String name = MediaQualityUtils.getVendorParameterName(vpcHal);
                boolean isSupported = vpcHal.isSupported;
                //Reason for +1: please see getListParameterCapability()
                int type = vpcHal.defaultValue
                        == null ? 0 : vpcHal.defaultValue.getTag() + 1;
                Bundle paramRangeBundle = MediaQualityUtils.convertToCaps(
                        type, vpcHal.range);
                MediaQualityUtils.convertToVendorCaps(vpcHal, paramRangeBundle);
                vendorParamCaps.add(new ParameterCapability(
                        name, isSupported, type, paramRangeBundle));
            }
            mMqManagerNotifier.notifyOnPictureProfileParameterCapabilitiesChanged(
                    pictureProfileId,
                    vendorParamCaps,
                    Binder.getCallingUid(),
                    Binder.getCallingPid());
        }

        @Override
+7 −2
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ public final class MediaQualityUtils {
        SOUND_PROFILE_HANDLE_NONE.id = -10000;
    }

    private static final Set<String> predefineParams = new HashSet<>(Arrays.asList(
    private static final Set<String> PREDEFINED_NAMES = new HashSet<>(Arrays.asList(
            PictureQuality.PARAMETER_BRIGHTNESS,
            PictureQuality.PARAMETER_CONTRAST,
            PictureQuality.PARAMETER_SHARPNESS,
@@ -1768,11 +1768,15 @@ public final class MediaQualityUtils {
        return byteArray;
    }

    /**
     * Remove the pre-defined parameters, the parameters that are left in the list are vendor
     * parameters.
     */
    public static void getVendorParamsByRemovePreDefineParams(List<String> names) {
        if (names == null) {
            return;
        }
        names.removeAll(predefineParams);
        names.removeAll(PREDEFINED_NAMES);
    }

    /**
@@ -2009,6 +2013,7 @@ public final class MediaQualityUtils {
        vendorParamCapRangeParcel.setDataPosition(0);
        String[] vendorDefinedValues = new String[vendorDefinedValuesSize];
        vendorParamCapRangeParcel.readStringArray(vendorDefinedValues);
        //TODO: Handle int, long and double array
        paramRangeBundle.putStringArray(ParameterCapability.CAPABILITY_ENUM, vendorDefinedValues);
        vendorParamCapRangeParcel.recycle();
    }