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

Commit 745c36c3 authored by Kyunglyul Hyun's avatar Kyunglyul Hyun
Browse files

[Media ML] Remove hidden API usages from MediaSessionService

It removes use of System.Secure.get/putStringForUsers
and the key.
This CL replaces them as getString/putString and
uses a context resolver for each user

Bug: 172793240
Test: manually confirmed dumpsys to check if MBR is restored
correctly for each user, cts test

Change-Id: I3a3f48506fefe87b9db18f32d8e2e68778e24100
parent b3e0793a
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -109,6 +109,10 @@ public class MediaSessionService extends SystemService implements Monitor {
    private static final int LONG_PRESS_TIMEOUT = ViewConfiguration.getLongPressTimeout()
            + /* Buffer for delayed delivery of key event */ 50;
    private static final int MULTI_TAP_TIMEOUT = ViewConfiguration.getMultiPressTimeout();
    /**
     * Copied from Settings.System.MEDIA_BUTTON_RECEIVER
     */
    private static final String MEDIA_BUTTON_RECEIVER = "media_button_receiver";

    private final Context mContext;
    private final SessionManagerImpl mSessionManagerImpl;
@@ -131,7 +135,6 @@ public class MediaSessionService extends SystemService implements Monitor {

    private KeyguardManager mKeyguardManager;
    private AudioManager mAudioManager;
    private ContentResolver mContentResolver;
    private boolean mHasFeatureLeanback;

    // The FullUserRecord of the current users. (i.e. The foreground user that isn't a profile)
@@ -183,7 +186,6 @@ public class MediaSessionService extends SystemService implements Monitor {
                        }
                    }
                }, null /* handler */);
        mContentResolver = mContext.getContentResolver();
        mHasFeatureLeanback = mContext.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_LEANBACK);

@@ -831,6 +833,7 @@ public class MediaSessionService extends SystemService implements Monitor {
     */
    final class FullUserRecord implements MediaSessionStack.OnMediaButtonSessionChangedListener {
        private final int mFullUserId;
        private final ContentResolver mContentResolver;
        private final MediaSessionStack mPriorityStack;
        private final HashMap<IBinder, OnMediaKeyEventDispatchedListenerRecord>
                mOnMediaKeyEventDispatchedListeners = new HashMap<>();
@@ -848,10 +851,12 @@ public class MediaSessionService extends SystemService implements Monitor {

        FullUserRecord(int fullUserId) {
            mFullUserId = fullUserId;
            mContentResolver = mContext.createContextAsUser(UserHandle.of(mFullUserId), 0)
                    .getContentResolver();
            mPriorityStack = new MediaSessionStack(mAudioPlayerStateMonitor, this);
            // Restore the remembered media button receiver before the boot.
            String mediaButtonReceiverInfo = Settings.Secure.getStringForUser(mContentResolver,
                    Settings.System.MEDIA_BUTTON_RECEIVER, mFullUserId);
            String mediaButtonReceiverInfo = Settings.Secure.getString(mContentResolver,
                    MEDIA_BUTTON_RECEIVER);
            mLastMediaButtonReceiverHolder =
                    MediaButtonReceiverHolder.unflattenFromString(
                            mContext, mediaButtonReceiverInfo);
@@ -970,10 +975,9 @@ public class MediaSessionService extends SystemService implements Monitor {
            mLastMediaButtonReceiverHolder = sessionRecord.getMediaButtonReceiver();
            String mediaButtonReceiverInfo = (mLastMediaButtonReceiverHolder == null)
                    ? "" : mLastMediaButtonReceiverHolder.flattenToString();
            Settings.Secure.putStringForUser(mContentResolver,
                    Settings.System.MEDIA_BUTTON_RECEIVER,
                    mediaButtonReceiverInfo,
                    mFullUserId);
            Settings.Secure.putString(mContentResolver,
                    MEDIA_BUTTON_RECEIVER,
                    mediaButtonReceiverInfo);
        }

        private void pushAddressedPlayerChangedLocked(