Merge "Exempt TV devices from Notification Permission" into tm-dev
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user