diff --git a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java index 09bf86a8120..1b270d63b4d 100644 --- a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java @@ -226,7 +226,8 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp uninstallDaIntent.putExtra(DeviceAdminAdd.EXTRA_DEVICE_ADMIN_PACKAGE_NAME, packageName); mMetricsFeatureProvider.action(mActivity, - SettingsEnums.ACTION_SETTINGS_UNINSTALL_DEVICE_ADMIN); + SettingsEnums.ACTION_SETTINGS_UNINSTALL_DEVICE_ADMIN, + getPackageNameForMetric()); mFragment.startActivityForResult(uninstallDaIntent, mRequestRemoveDeviceAdmin); return; } @@ -253,7 +254,8 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp mActivity, mAppEntry.info.enabled ? SettingsEnums.ACTION_SETTINGS_DISABLE_APP - : SettingsEnums.ACTION_SETTINGS_ENABLE_APP); + : SettingsEnums.ACTION_SETTINGS_ENABLE_APP, + getPackageNameForMetric()); AsyncTask.execute(new DisableChangerRunnable(mPm, mAppEntry.info.packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT)); } @@ -270,7 +272,9 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp @Override public void onClick(View v) { mMetricsFeatureProvider.action( - mActivity, SettingsEnums.ACTION_APP_INFO_FORCE_STOP); + mActivity, + SettingsEnums.ACTION_APP_INFO_FORCE_STOP, + getPackageNameForMetric()); // force stop if (mPm.isPackageStateProtected(mAppEntry.info.packageName, mUserId)) { RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mActivity, @@ -757,6 +761,14 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp || AppUtils.isMainlineModule(mPm, mAppEntry.info.packageName)); } + private String getPackageNameForMetric() { + final String packageName = + mAppEntry != null && mAppEntry.info != null + ? mAppEntry.info.packageName + : null; + return packageName != null ? packageName : ""; + } + /** * Changes the status of disable/enable for a package */ diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java index a03a4f9b301..4581f6caba8 100644 --- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java @@ -422,19 +422,19 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { mMetricsFeatureProvider.logStartedIntent(intent, sourceMetricCategory); if (tile.userHandle == null || tile.isPrimaryProfileOnly()) { - activity.startActivityForResult(intent, 0); + activity.startActivity(intent); } else if (tile.userHandle.size() == 1) { - activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0)); + activity.startActivityAsUser(intent, tile.userHandle.get(0)); } else { final UserHandle userHandle = intent.getParcelableExtra(EXTRA_USER); if (userHandle != null && tile.userHandle.contains(userHandle)) { - activity.startActivityForResultAsUser(intent, 0, userHandle); + activity.startActivityAsUser(intent, userHandle); return; } final List resolvableUsers = getResolvableUsers(intent, tile); if (resolvableUsers.size() == 1) { - activity.startActivityForResultAsUser(intent, 0, resolvableUsers.get(0)); + activity.startActivityAsUser(intent, resolvableUsers.get(0)); return; } diff --git a/src/com/android/settings/password/ChooseLockGenericController.java b/src/com/android/settings/password/ChooseLockGenericController.java index 1b951d4f968..cd9eb2fd44d 100644 --- a/src/com/android/settings/password/ChooseLockGenericController.java +++ b/src/com/android/settings/password/ChooseLockGenericController.java @@ -190,7 +190,8 @@ public class ChooseLockGenericController { * requirements. The lock's visibility ({@link #isScreenLockVisible}) is not considered here. */ public boolean isScreenLockEnabled(ScreenLockType type) { - return type.maxQuality >= upgradeQuality(PASSWORD_QUALITY_UNSPECIFIED); + return !mLockPatternUtils.isCredentialsDisabledForUser(mUserId) + && type.maxQuality >= upgradeQuality(PASSWORD_QUALITY_UNSPECIFIED); } /** diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java index 6ef6b18ec68..5d6fdf98f1b 100644 --- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java @@ -239,7 +239,7 @@ public class DashboardFeatureProviderImplTest { any(Intent.class), eq(MetricsEvent.SETTINGS_GESTURES)); verify(mActivity) - .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); + .startActivityAsUser(any(Intent.class), any(UserHandle.class)); } @Test @@ -257,7 +257,7 @@ public class DashboardFeatureProviderImplTest { any(Intent.class), anyInt()); verify(mActivity) - .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); + .startActivityAsUser(any(Intent.class), any(UserHandle.class)); } @Test @@ -568,7 +568,7 @@ public class DashboardFeatureProviderImplTest { mImpl.openTileIntent(mActivity, tile); verify(mActivity, never()) - .startActivityForResult(any(Intent.class), eq(0)); + .startActivity(any(Intent.class)); verify(mActivity).getSupportFragmentManager(); } @@ -585,7 +585,7 @@ public class DashboardFeatureProviderImplTest { mImpl.openTileIntent(mActivity, tile); verify(mActivity, never()) - .startActivityForResult(any(Intent.class), eq(0)); + .startActivity(any(Intent.class)); verify(mActivity).getSupportFragmentManager(); } @@ -602,7 +602,7 @@ public class DashboardFeatureProviderImplTest { mImpl.openTileIntent(mActivity, tile); verify(mActivity) - .startActivityForResult(any(Intent.class), eq(0)); + .startActivity(any(Intent.class)); verify(mActivity, never()).getSupportFragmentManager(); } @@ -623,7 +623,7 @@ public class DashboardFeatureProviderImplTest { final ArgumentCaptor argument = ArgumentCaptor.forClass(UserHandle.class); verify(mActivity) - .startActivityForResultAsUser(any(Intent.class), anyInt(), argument.capture()); + .startActivityAsUser(any(Intent.class), argument.capture()); assertThat(argument.getValue().getIdentifier()).isEqualTo(userId); verify(mActivity, never()).getSupportFragmentManager(); } @@ -642,7 +642,7 @@ public class DashboardFeatureProviderImplTest { mImpl.openTileIntent(mActivity, tile); verify(mActivity, never()) - .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); + .startActivityAsUser(any(Intent.class), any(UserHandle.class)); verify(mActivity).getSupportFragmentManager(); } @@ -665,7 +665,7 @@ public class DashboardFeatureProviderImplTest { final ArgumentCaptor argument = ArgumentCaptor.forClass(UserHandle.class); verify(mActivity) - .startActivityForResultAsUser(any(Intent.class), anyInt(), argument.capture()); + .startActivityAsUser(any(Intent.class), argument.capture()); assertThat(argument.getValue().getIdentifier()).isEqualTo(0); verify(mActivity, never()).getSupportFragmentManager(); } diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java index 049a34969c1..996d5722693 100644 --- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java +++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java @@ -22,6 +22,7 @@ import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_MEDIUM; import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX; +import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_MANAGED; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING; @@ -189,6 +190,16 @@ public class ChooseLockGenericControllerTest { assertThat(mController.isScreenLockEnabled(ScreenLockType.PASSWORD)).isTrue(); } + @Test + public void isScreenLockEnabled_QualityManaged() { + setDevicePolicyPasswordQuality(PASSWORD_QUALITY_MANAGED); + assertThat(mController.isScreenLockEnabled(ScreenLockType.NONE)).isFalse(); + assertThat(mController.isScreenLockEnabled(ScreenLockType.SWIPE)).isFalse(); + assertThat(mController.isScreenLockEnabled(ScreenLockType.PATTERN)).isFalse(); + assertThat(mController.isScreenLockEnabled(ScreenLockType.PIN)).isFalse(); + assertThat(mController.isScreenLockEnabled(ScreenLockType.PASSWORD)).isFalse(); + } + @Test public void isScreenLockEnabled_NoneComplexity() { when(mLockPatternUtils.getRequestedPasswordComplexity(anyInt(), anyBoolean())) @@ -353,6 +364,9 @@ public class ChooseLockGenericControllerTest { when(mLockPatternUtils.getRequestedPasswordMetrics(anyInt(), anyBoolean())) .thenReturn(policy.getMinMetrics()); + + when(mLockPatternUtils.isCredentialsDisabledForUser(anyInt())) + .thenReturn(quality == PASSWORD_QUALITY_MANAGED); } private ChooseLockGenericController.Builder createBuilder() {