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

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

Merge "Exempt TV devices from Notification Permission" into tm-dev

parents b8b05de2 3a7a73f5
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