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

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

Merge "Add getDefaultPictureProfile system API" into main

parents 83255b9c 70dd2d0f
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();