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

Commit 877dd8b9 authored by Santiago Seifert's avatar Santiago Seifert Committed by Android Build Coastguard Worker
Browse files

Store MEDIA_CONTENT_CONTROL permission access in RouterRecord

This is a non-functional refactor in preparation for enabling screen off
scanning to routers (proxy or local) holding MEDIA_CONTENT_CONTROL
permission.

This is a cherrypick of f7e317a6

Bug: 352401364
Flag: EXEMPT no meaningful functional changes
Test: atest CtsMediaBetterTogetherTestCases CtsMediaHostTestCases
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:dfbe92d58e3865a40d02a0c34eadc8ed74ba2f80)
Merged-In: I68d5c3b7e518388e6d8eef1f96fa3f2a3c9b7784
Change-Id: I68d5c3b7e518388e6d8eef1f96fa3f2a3c9b7784
parent 067d9599
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -288,7 +288,7 @@ class MediaRouter2ServiceImpl {
                        == PackageManager.PERMISSION_GRANTED;
        final boolean hasModifyAudioRoutingPermission =
                checkCallerHasModifyAudioRoutingPermission(pid, uid);

        boolean hasMediaContentControlPermission = checkMediaContentControlPermission(uid, pid);
        boolean hasMediaRoutingControlPermission =
                checkMediaRoutingControlPermission(uid, pid, packageName);

@@ -303,6 +303,7 @@ class MediaRouter2ServiceImpl {
                        userId,
                        hasConfigureWifiDisplayPermission,
                        hasModifyAudioRoutingPermission,
                        hasMediaContentControlPermission,
                        hasMediaRoutingControlPermission);
            }
        } finally {
@@ -1129,6 +1130,7 @@ class MediaRouter2ServiceImpl {
            int userId,
            boolean hasConfigureWifiDisplayPermission,
            boolean hasModifyAudioRoutingPermission,
            boolean hasMediaContentControlPermission,
            boolean hasMediaRoutingControlPermission) {
        final IBinder binder = router.asBinder();
        if (mAllRouterRecords.get(binder) != null) {
@@ -1147,6 +1149,7 @@ class MediaRouter2ServiceImpl {
                        packageName,
                        hasConfigureWifiDisplayPermission,
                        hasModifyAudioRoutingPermission,
                        hasMediaContentControlPermission,
                        hasMediaRoutingControlPermission);
        try {
            binder.linkToDeath(routerRecord, 0);
@@ -2063,9 +2066,10 @@ class MediaRouter2ServiceImpl {
        public final int mPid;
        public final boolean mHasConfigureWifiDisplayPermission;
        public final boolean mHasModifyAudioRoutingPermission;
        public final boolean mHasMediaContentControlPermission;
        public final boolean mHasMediaRoutingControl;
        public final AtomicBoolean mHasBluetoothRoutingPermission;
        public final int mRouterId;
        public final boolean mHasMediaRoutingControl;
        public @ScanningState int mScanningState = SCANNING_STATE_NOT_SCANNING;

        public RouteDiscoveryPreference mDiscoveryPreference;
@@ -2079,6 +2083,7 @@ class MediaRouter2ServiceImpl {
                String packageName,
                boolean hasConfigureWifiDisplayPermission,
                boolean hasModifyAudioRoutingPermission,
                boolean hasMediaContentControlPermission,
                boolean hasMediaRoutingControl) {
            mUserRecord = userRecord;
            mPackageName = packageName;
@@ -2089,9 +2094,10 @@ class MediaRouter2ServiceImpl {
            mPid = pid;
            mHasConfigureWifiDisplayPermission = hasConfigureWifiDisplayPermission;
            mHasModifyAudioRoutingPermission = hasModifyAudioRoutingPermission;
            mHasMediaContentControlPermission = hasMediaContentControlPermission;
            mHasMediaRoutingControl = hasMediaRoutingControl;
            mHasBluetoothRoutingPermission =
                    new AtomicBoolean(checkCallerHasBluetoothPermissions(mPid, mUid));
            mHasMediaRoutingControl = hasMediaRoutingControl;
            mRouterId = mNextRouterOrManagerId.getAndIncrement();
        }