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

Commit 70dd2d0f authored by Haofan Wang's avatar Haofan Wang
Browse files

Add getDefaultPictureProfile system API

Add API for system app to get the default picture profile.

Bug: 407575150
Test: mmm.
Flag: EXEMPT bugfix

Change-Id: I724329cbb3efe68cff7386776d89bbe85cbb1101
parent fee75f23
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -347,6 +347,26 @@ public final class MediaQualityManager {
        }
    }

    /**
     * Get the default profile of the application.
     *
     * @return PictureProfile the default profile of the application.
     *
     * @see PictureProfile
     *
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE)
    @Nullable
    public PictureProfile getDefaultPictureProfile() {
        try {
            return mService.getDefaultPictureProfile();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }


    /**
     * Sets preferred default picture profile.
     *
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ interface IMediaQualityManager {
    void createPictureProfile(in PictureProfile pp, int userId);
    void updatePictureProfile(in String id, in PictureProfile pp, int userId);
    void removePictureProfile(in String id, int userId);
    PictureProfile getDefaultPictureProfile();
    boolean setDefaultPictureProfile(in String id, int userId);
    // TODO: use Bundle for includeParams
    PictureProfile getPictureProfile(
+24 −0
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ public class MediaQualityService extends SystemService {
    private static final String PICTURE_PROFILE_PREFERENCE = "picture_profile_preference";
    private static final String SOUND_PROFILE_PREFERENCE = "sound_profile_preference";
    private static final String COMMA_DELIMITER = ",";
    private static final String DEFAULT_PICTURE_PROFILE_ID = "default_picture_profile_id";
    private final Context mContext;
    private final MediaQualityDbHelper mMediaQualityDbHelper;
    private final BiMap<Long, String> mPictureProfileTempIdMap;
@@ -460,6 +461,24 @@ public class MediaQualityService extends SystemService {
            return new ArrayList<>();
        }

        @GuardedBy("mPictureProfileLock")
        @Override
        public PictureProfile getDefaultPictureProfile() {
            if (!hasGlobalPictureQualityServicePermission()) {
                mMqManagerNotifier.notifyOnPictureProfileError(null,
                        PictureProfile.ERROR_NO_PERMISSION,
                        Binder.getCallingUid(), Binder.getCallingPid());
            }
            Long defaultPictureProfileId = mPictureProfileSharedPreference.getLong(
                    DEFAULT_PICTURE_PROFILE_ID,
                    -1
            );
            if (defaultPictureProfileId != -1) {
                return mMqDatabaseUtils.getPictureProfile(defaultPictureProfileId);
            }
            return null;
        }

        @GuardedBy("mPictureProfileLock")
        @Override
        public boolean setDefaultPictureProfile(String profileId, int userId) {
@@ -473,6 +492,11 @@ public class MediaQualityService extends SystemService {
            if (longId == null) {
                return false;
            }

            SharedPreferences.Editor editor = mPictureProfileSharedPreference.edit();
            editor.putLong(DEFAULT_PICTURE_PROFILE_ID, longId);
            editor.apply();

            PictureProfile pictureProfile = mMqDatabaseUtils.getPictureProfile(longId);
            PersistableBundle params = pictureProfile.getParameters();