Merge "Merge "Remove "force user set on upgrade" setting" into tm-dev am: bcb47eb636 am: 93b004cae0" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8b61491faa
@@ -2998,12 +2998,6 @@
|
|||||||
|
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<!-- When migrating notification settings into the permission framework, whether all existing
|
|
||||||
apps should be marked as 'user-set' (true) or whether only the apps that have explicitly
|
|
||||||
modified notification settings should be marked as 'user-set' (false). Users will not see
|
|
||||||
system generated permission prompts for 'user-set' apps. -->
|
|
||||||
<bool name="config_notificationForceUserSetOnUpgrade">true</bool>
|
|
||||||
|
|
||||||
<!-- Default Gravity setting for the system Toast view. Equivalent to: Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM -->
|
<!-- Default Gravity setting for the system Toast view. Equivalent to: Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM -->
|
||||||
<integer name="config_toastDefaultGravity">0x00000051</integer>
|
<integer name="config_toastDefaultGravity">0x00000051</integer>
|
||||||
|
|
||||||
|
|||||||
@@ -4785,7 +4785,6 @@
|
|||||||
<java-symbol type="integer" name="config_bg_current_drain_exempted_types" />
|
<java-symbol type="integer" name="config_bg_current_drain_exempted_types" />
|
||||||
<java-symbol type="bool" name="config_bg_current_drain_high_threshold_by_bg_location" />
|
<java-symbol type="bool" name="config_bg_current_drain_high_threshold_by_bg_location" />
|
||||||
<java-symbol type="drawable" name="ic_swap_horiz" />
|
<java-symbol type="drawable" name="ic_swap_horiz" />
|
||||||
<java-symbol type="bool" name="config_notificationForceUserSetOnUpgrade" />
|
|
||||||
<java-symbol type="array" name="config_deviceStatesAvailableForAppRequests" />
|
<java-symbol type="array" name="config_deviceStatesAvailableForAppRequests" />
|
||||||
<java-symbol type="array" name="config_serviceStateLocationAllowedPackages" />
|
<java-symbol type="array" name="config_serviceStateLocationAllowedPackages" />
|
||||||
|
|
||||||
|
|||||||
@@ -656,7 +656,6 @@ public class NotificationManagerService extends SystemService {
|
|||||||
|
|
||||||
private int mWarnRemoteViewsSizeBytes;
|
private int mWarnRemoteViewsSizeBytes;
|
||||||
private int mStripRemoteViewsSizeBytes;
|
private int mStripRemoteViewsSizeBytes;
|
||||||
private boolean mForceUserSetOnUpgrade;
|
|
||||||
|
|
||||||
private MetricsLogger mMetricsLogger;
|
private MetricsLogger mMetricsLogger;
|
||||||
private NotificationChannelLogger mNotificationChannelLogger;
|
private NotificationChannelLogger mNotificationChannelLogger;
|
||||||
@@ -2472,9 +2471,6 @@ public class NotificationManagerService extends SystemService {
|
|||||||
|
|
||||||
WorkerHandler handler = new WorkerHandler(Looper.myLooper());
|
WorkerHandler handler = new WorkerHandler(Looper.myLooper());
|
||||||
|
|
||||||
mForceUserSetOnUpgrade = getContext().getResources().getBoolean(
|
|
||||||
R.bool.config_notificationForceUserSetOnUpgrade);
|
|
||||||
|
|
||||||
init(handler, new RankingHandlerWorker(mRankingThread.getLooper()),
|
init(handler, new RankingHandlerWorker(mRankingThread.getLooper()),
|
||||||
AppGlobals.getPackageManager(), getContext().getPackageManager(),
|
AppGlobals.getPackageManager(), getContext().getPackageManager(),
|
||||||
getLocalService(LightsManager.class),
|
getLocalService(LightsManager.class),
|
||||||
@@ -2503,8 +2499,7 @@ public class NotificationManagerService extends SystemService {
|
|||||||
LocalServices.getService(ActivityManagerInternal.class),
|
LocalServices.getService(ActivityManagerInternal.class),
|
||||||
createToastRateLimiter(), new PermissionHelper(LocalServices.getService(
|
createToastRateLimiter(), new PermissionHelper(LocalServices.getService(
|
||||||
PermissionManagerServiceInternal.class), AppGlobals.getPackageManager(),
|
PermissionManagerServiceInternal.class), AppGlobals.getPackageManager(),
|
||||||
AppGlobals.getPermissionManager(),
|
AppGlobals.getPermissionManager()),
|
||||||
mForceUserSetOnUpgrade),
|
|
||||||
LocalServices.getService(UsageStatsManagerInternal.class),
|
LocalServices.getService(UsageStatsManagerInternal.class),
|
||||||
getContext().getSystemService(TelecomManager.class),
|
getContext().getSystemService(TelecomManager.class),
|
||||||
new NotificationChannelLoggerImpl());
|
new NotificationChannelLoggerImpl());
|
||||||
@@ -6153,7 +6148,6 @@ public class NotificationManagerService extends SystemService {
|
|||||||
pw.println(" mMaxPackageEnqueueRate=" + mMaxPackageEnqueueRate);
|
pw.println(" mMaxPackageEnqueueRate=" + mMaxPackageEnqueueRate);
|
||||||
pw.println(" hideSilentStatusBar="
|
pw.println(" hideSilentStatusBar="
|
||||||
+ mPreferencesHelper.shouldHideSilentStatusIcons());
|
+ mPreferencesHelper.shouldHideSilentStatusIcons());
|
||||||
pw.println(" mForceUserSetOnUpgrade=" + mForceUserSetOnUpgrade);
|
|
||||||
}
|
}
|
||||||
pw.println(" mArchive=" + mArchive.toString());
|
pw.println(" mArchive=" + mArchive.toString());
|
||||||
mArchive.dumpImpl(pw, filter);
|
mArchive.dumpImpl(pw, filter);
|
||||||
|
|||||||
@@ -55,14 +55,12 @@ public final class PermissionHelper {
|
|||||||
private final PermissionManagerServiceInternal mPmi;
|
private final PermissionManagerServiceInternal mPmi;
|
||||||
private final IPackageManager mPackageManager;
|
private final IPackageManager mPackageManager;
|
||||||
private final IPermissionManager mPermManager;
|
private final IPermissionManager mPermManager;
|
||||||
private final boolean mForceUserSetOnUpgrade;
|
|
||||||
|
|
||||||
public PermissionHelper(PermissionManagerServiceInternal pmi, IPackageManager packageManager,
|
public PermissionHelper(PermissionManagerServiceInternal pmi, IPackageManager packageManager,
|
||||||
IPermissionManager permManager, boolean forceUserSetOnUpgrade) {
|
IPermissionManager permManager) {
|
||||||
mPmi = pmi;
|
mPmi = pmi;
|
||||||
mPackageManager = packageManager;
|
mPackageManager = packageManager;
|
||||||
mPermManager = permManager;
|
mPermManager = permManager;
|
||||||
mForceUserSetOnUpgrade = forceUserSetOnUpgrade;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -212,9 +210,8 @@ public final class PermissionHelper {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isPermissionFixed(pkgPerm.packageName, pkgPerm.userId)) {
|
if (!isPermissionFixed(pkgPerm.packageName, pkgPerm.userId)) {
|
||||||
boolean userSet = mForceUserSetOnUpgrade ? true : pkgPerm.userModifiedSettings;
|
|
||||||
setNotificationPermission(pkgPerm.packageName, pkgPerm.userId, pkgPerm.granted,
|
setNotificationPermission(pkgPerm.packageName, pkgPerm.userId, pkgPerm.granted,
|
||||||
userSet, !userSet);
|
true /* userSet always true on upgrade */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static junit.framework.Assert.fail;
|
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyLong;
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
@@ -54,7 +52,6 @@ import com.android.server.pm.permission.PermissionManagerServiceInternal;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -62,14 +59,7 @@ import org.junit.runner.RunWith;
|
|||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.lang.reflect.Modifier;
|
|
||||||
import java.lang.reflect.Parameter;
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@@ -88,7 +78,7 @@ public class PermissionHelperTest extends UiServiceTestCase {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager, false);
|
mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager);
|
||||||
PackageInfo testPkgInfo = new PackageInfo();
|
PackageInfo testPkgInfo = new PackageInfo();
|
||||||
testPkgInfo.requestedPermissions = new String[]{ Manifest.permission.POST_NOTIFICATIONS };
|
testPkgInfo.requestedPermissions = new String[]{ Manifest.permission.POST_NOTIFICATIONS };
|
||||||
when(mPackageManager.getPackageInfo(anyString(), anyLong(), anyInt()))
|
when(mPackageManager.getPackageInfo(anyString(), anyLong(), anyInt()))
|
||||||
@@ -211,62 +201,9 @@ public class PermissionHelperTest extends UiServiceTestCase {
|
|||||||
FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_REVIEW_REQUIRED, true, 10);
|
FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_REVIEW_REQUIRED, true, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSetNotificationPermission_pkgPerm_grantReviewRequired() throws Exception {
|
|
||||||
when(mPmi.checkPermission(anyString(), anyString(), anyInt()))
|
|
||||||
.thenReturn(PERMISSION_DENIED);
|
|
||||||
|
|
||||||
PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission(
|
|
||||||
"pkg", 10, true, false);
|
|
||||||
mPermissionHelper.setNotificationPermission(pkgPerm);
|
|
||||||
|
|
||||||
verify(mPermManager, never()).revokeRuntimePermission(
|
|
||||||
"pkg", Manifest.permission.POST_NOTIFICATIONS, 10, "PermissionHelper");
|
|
||||||
verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS,
|
|
||||||
FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_REVIEW_REQUIRED, true, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSetNotificationPermission_pkgPerm_notUserSet_grantedByDefaultPermNotSet()
|
|
||||||
throws Exception {
|
|
||||||
when(mPmi.checkPermission(anyString(), anyString(), anyInt()))
|
|
||||||
.thenReturn(PERMISSION_DENIED);
|
|
||||||
when(mPermManager.getPermissionFlags(anyString(),
|
|
||||||
eq(Manifest.permission.POST_NOTIFICATIONS),
|
|
||||||
anyInt())).thenReturn(FLAG_PERMISSION_GRANTED_BY_DEFAULT);
|
|
||||||
PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission(
|
|
||||||
"pkg", 10, true, false);
|
|
||||||
|
|
||||||
mPermissionHelper.setNotificationPermission(pkgPerm);
|
|
||||||
verify(mPermManager, never()).revokeRuntimePermission(
|
|
||||||
anyString(), anyString(), anyInt(), anyString());
|
|
||||||
verify(mPermManager, never()).updatePermissionFlags(
|
|
||||||
anyString(), anyString(), anyInt(), anyInt(), anyBoolean(), anyInt());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSetNotificationPermission_pkgPerm_userSet_grantedByDefaultPermSet()
|
|
||||||
throws Exception {
|
|
||||||
when(mPmi.checkPermission(anyString(), anyString(), anyInt()))
|
|
||||||
.thenReturn(PERMISSION_DENIED);
|
|
||||||
when(mPermManager.getPermissionFlags(anyString(),
|
|
||||||
eq(Manifest.permission.POST_NOTIFICATIONS),
|
|
||||||
anyInt())).thenReturn(FLAG_PERMISSION_GRANTED_BY_DEFAULT);
|
|
||||||
PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission(
|
|
||||||
"pkg", 10, true, true);
|
|
||||||
|
|
||||||
mPermissionHelper.setNotificationPermission(pkgPerm);
|
|
||||||
verify(mPermManager).grantRuntimePermission(
|
|
||||||
"pkg", Manifest.permission.POST_NOTIFICATIONS, 10);
|
|
||||||
verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS,
|
|
||||||
FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_REVIEW_REQUIRED,
|
|
||||||
FLAG_PERMISSION_USER_SET, true, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetNotificationPermission_pkgPerm_grantedByDefaultPermSet_allUserSet()
|
public void testSetNotificationPermission_pkgPerm_grantedByDefaultPermSet_allUserSet()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager, true);
|
|
||||||
when(mPmi.checkPermission(anyString(), anyString(), anyInt()))
|
when(mPmi.checkPermission(anyString(), anyString(), anyInt()))
|
||||||
.thenReturn(PERMISSION_DENIED);
|
.thenReturn(PERMISSION_DENIED);
|
||||||
when(mPermManager.getPermissionFlags(anyString(),
|
when(mPermManager.getPermissionFlags(anyString(),
|
||||||
|
|||||||
Reference in New Issue
Block a user