[automerge] Exempt TV devices from Notification Permission 2p: 3a7a73f58d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17338767

Bug: 220968160
Change-Id: I16fb5d8b67040c54e5c8a9d0c57038eef050cf63
Merged-In: I9aeef86871ab7ca912cc30e1cf4ebd84d7014992
This commit is contained in:
Presubmit Automerger Backend
2022-04-11 19:46:31 +00:00
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