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

This commit is contained in:
Nate Myren
2022-04-12 17:14:44 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 2 deletions

View File

@@ -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;
}
/**

View File

@@ -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