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

Commit d3fb48d8 authored by Nate Myren's avatar Nate Myren Committed by Android (Google) Code Review
Browse files

Merge changes from topic "exemptTV" into tm-mainline-prod

* changes:
  [automerge] Exempt TV devices from Notification Permission 2p: 3a7a73f5
  Exempt TV devices from Notification Permission
parents 2b7317d6 547e0021
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -55,8 +55,10 @@ public final class PermissionHelper {
    private final PermissionManagerServiceInternal mPmi;
    private final IPackageManager mPackageManager;
    private final IPermissionManager mPermManager;
    // TODO (b/194833441): Remove when the migration is enabled
    // TODO (b/194833441): Remove this boolean (but keep the isMigrationEnabled() method)
    //  when the migration is enabled
    private final boolean mMigrationEnabled;
    private final boolean mIsTv;
    private final boolean mForceUserSetOnUpgrade;

    public PermissionHelper(PermissionManagerServiceInternal pmi, IPackageManager packageManager,
@@ -67,10 +69,17 @@ public final class PermissionHelper {
        mPermManager = permManager;
        mMigrationEnabled = migrationEnabled;
        mForceUserSetOnUpgrade = forceUserSetOnUpgrade;
        boolean isTv;
        try {
            isTv = mPackageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK, 0);
        } catch (RemoteException e) {
            isTv = false;
        }
        mIsTv = isTv;
    }

    public boolean isMigrationEnabled() {
        return mMigrationEnabled;
        return mMigrationEnabled && !mIsTv;
    }

    /**
+11 −0
Original line number Diff line number Diff line
@@ -297,6 +297,8 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
            .OnRuntimePermissionStateChangedListener>
            mRuntimePermissionStateChangedListeners = new ArrayList<>();

    private final boolean mIsLeanback;

    @NonNull
    private final OnPermissionChangeListeners mOnPermissionChangeListeners;

@@ -380,6 +382,7 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
        mContext = context;
        mPackageManagerInt = LocalServices.getService(PackageManagerInternal.class);
        mUserManagerInt = LocalServices.getService(UserManagerInternal.class);
        mIsLeanback = availableFeatures.containsKey(PackageManager.FEATURE_LEANBACK);

        mPrivilegedPermissionAllowlistSourcePackageNames.add(PLATFORM_PACKAGE_NAME);
        // PackageManager.hasSystemFeature() is not used here because PackageManagerService
@@ -2822,6 +2825,14 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
                                    }
                                }
                            }
                            if (mIsLeanback && NOTIFICATION_PERMISSIONS.contains(permName)) {
                                uidState.grantPermission(bp);
                                if (origPermState == null || !origPermState.isGranted()) {
                                    if (uidState.grantPermission(bp)) {
                                        wasChanged = true;
                                    }
                                }
                            }
                        } else {
                            if (origPermState == null) {
                                // New permission