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

Commit 5514c9d1 authored by Haofan Wang's avatar Haofan Wang
Browse files

Add onVendorParamCapabilityChanged method

Bug: 407575150
Test: mmm.
Flag: EXEMPT bugfix

Change-Id: I9a3b0a92e3a612691047170d23570d19b56ef78c
parent 4ec99a4b
Loading
Loading
Loading
Loading
+31 −13
Original line number Diff line number Diff line
@@ -1573,17 +1573,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);
        }
@@ -1858,14 +1849,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();
    }