Merge "Do not allow force stopping protected packages" into pi-dev
am: 396e91abf0
Change-Id: I725a5a666ef7155fe98d6beb4d9c5ec461af4377
This commit is contained in:
@@ -283,6 +283,10 @@ public class AppActionButtonPreferenceController extends BasePreferenceControlle
|
||||
// User can't force stop device admin.
|
||||
Log.w(TAG, "User can't force stop device admin");
|
||||
updateForceStopButton(false);
|
||||
} else if (mPm.isPackageStateProtected(packageInfo.packageName,
|
||||
UserHandle.getUserId(appEntry.info.uid))) {
|
||||
Log.w(TAG, "User can't force stop protected packages");
|
||||
updateForceStopButton(false);
|
||||
} else if (AppUtils.isInstant(packageInfo.applicationInfo)) {
|
||||
updateForceStopButton(false);
|
||||
mActionButtons.setButton2Visible(false);
|
||||
|
@@ -79,6 +79,8 @@ public class AppActionButtonPreferenceControllerTest {
|
||||
private AppInfoDashboardFragment mFragment;
|
||||
@Mock
|
||||
private ApplicationInfo mAppInfo;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
|
||||
private Context mContext;
|
||||
private AppActionButtonPreferenceController mController;
|
||||
@@ -95,7 +97,9 @@ public class AppActionButtonPreferenceControllerTest {
|
||||
ReflectionHelpers.setField(mController, "mDpm", mDevicePolicyManager);
|
||||
ReflectionHelpers.setField(mController, "mApplicationFeatureProvider",
|
||||
mFeatureFactory.applicationFeatureProvider);
|
||||
ReflectionHelpers.setField(mController, "mPm", mPackageManager);
|
||||
when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
|
||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||
final PackageInfo packageInfo = mock(PackageInfo.class);
|
||||
packageInfo.applicationInfo = mAppInfo;
|
||||
when(mFragment.getPackageInfo()).thenReturn(packageInfo);
|
||||
@@ -213,6 +217,25 @@ public class AppActionButtonPreferenceControllerTest {
|
||||
verify(mController.mActionButtons).setButton2Visible(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkForceStop_isStateProtected_shouldDisableForceStop() {
|
||||
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
||||
(InstantAppDataProvider) (i -> false));
|
||||
final String packageName = "Package1";
|
||||
final PackageInfo packageInfo = new PackageInfo();
|
||||
packageInfo.packageName = packageName;
|
||||
final ApplicationInfo appInfo = new ApplicationInfo();
|
||||
appInfo.uid = 42;
|
||||
appInfo.sourceDir = "source";
|
||||
final ApplicationsState.AppEntry appEntry = new ApplicationsState.AppEntry(
|
||||
mContext, appInfo, 0);
|
||||
when(mPackageManager.isPackageStateProtected(packageName, 0)).thenReturn(true);
|
||||
|
||||
mController.checkForceStop(appEntry, packageInfo);
|
||||
|
||||
verify(mController.mActionButtons).setButton2Enabled(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkForceStop_hasActiveAdmin_shouldDisableForceStop() {
|
||||
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
||||
|
Reference in New Issue
Block a user