diff --git a/src/com/android/settings/safetycenter/LockScreenSafetySource.java b/src/com/android/settings/safetycenter/LockScreenSafetySource.java index 5e5f6d5985b..91e97735ff8 100644 --- a/src/com/android/settings/safetycenter/LockScreenSafetySource.java +++ b/src/com/android/settings/safetycenter/LockScreenSafetySource.java @@ -62,7 +62,8 @@ public final class LockScreenSafetySource { final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal .checkIfPasswordQualityIsSet(context, userId); final PendingIntent pendingIntent = createPendingIntent(context, - screenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent()); + screenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent( + SettingsEnums.SAFETY_CENTER)); final IconAction gearMenuIconAction = createGearMenuIconAction(context, screenLockPreferenceDetailsUtils); final boolean enabled = @@ -100,8 +101,7 @@ public final class LockScreenSafetySource { /** Notifies Safety Center of a change in lock screen settings. */ public static void onLockScreenChange(Context context) { setSafetySourceData( - context, - new ScreenLockPreferenceDetailsUtils(context, SettingsEnums.SAFETY_CENTER), + context, new ScreenLockPreferenceDetailsUtils(context), new SafetyEvent.Builder(SAFETY_EVENT_TYPE_SOURCE_STATE_CHANGED).build()); // Also send refreshed safety center data for biometrics, since changing lockscreen settings @@ -114,7 +114,8 @@ public final class LockScreenSafetySource { return screenLockPreferenceDetailsUtils.shouldShowGearMenu() ? new IconAction( IconAction.ICON_TYPE_GEAR, createPendingIntent(context, - screenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent())) + screenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent( + SettingsEnums.SAFETY_CENTER))) : null; } diff --git a/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java b/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java index dec06b02e79..3ea23f3a897 100644 --- a/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java +++ b/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java @@ -22,7 +22,6 @@ import static android.safetycenter.SafetyCenterManager.EXTRA_REFRESH_SAFETY_SOUR import static android.safetycenter.SafetyEvent.SAFETY_EVENT_TYPE_DEVICE_REBOOTED; import static android.safetycenter.SafetyEvent.SAFETY_EVENT_TYPE_REFRESH_REQUESTED; -import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -74,8 +73,7 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver { SafetyEvent safetyEvent) { if (sourceIds.contains(LockScreenSafetySource.SAFETY_SOURCE_ID)) { LockScreenSafetySource.setSafetySourceData(context, - new ScreenLockPreferenceDetailsUtils(context, SettingsEnums.SAFETY_CENTER), - safetyEvent); + new ScreenLockPreferenceDetailsUtils(context), safetyEvent); } if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)) { @@ -85,8 +83,7 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver { private static void refreshAllSafetySources(Context context, SafetyEvent safetyEvent) { LockScreenSafetySource.setSafetySourceData(context, - new ScreenLockPreferenceDetailsUtils(context, SettingsEnums.SAFETY_CENTER), - safetyEvent); + new ScreenLockPreferenceDetailsUtils(context), safetyEvent); BiometricsSafetySource.setSafetySourceData(context, safetyEvent); } } diff --git a/src/com/android/settings/security/ChangeScreenLockPreferenceController.java b/src/com/android/settings/security/ChangeScreenLockPreferenceController.java index 4e542386c7f..3870634f667 100644 --- a/src/com/android/settings/security/ChangeScreenLockPreferenceController.java +++ b/src/com/android/settings/security/ChangeScreenLockPreferenceController.java @@ -62,8 +62,7 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont mHost = host; mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); - mScreenLockPreferenceDetailUtils = - new ScreenLockPreferenceDetailsUtils(context, host.getMetricsCategory()); + mScreenLockPreferenceDetailUtils = new ScreenLockPreferenceDetailsUtils(context); } @Override @@ -106,7 +105,7 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont if (TextUtils.equals(p.getKey(), getPreferenceKey())) { mMetricsFeatureProvider.logClickedPreference(p, p.getExtras().getInt(DashboardFragment.CATEGORY)); - mScreenLockPreferenceDetailUtils.openScreenLockSettings(); + mScreenLockPreferenceDetailUtils.openScreenLockSettings(mHost.getMetricsCategory()); } } @@ -115,7 +114,8 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) { return super.handlePreferenceTreeClick(preference); } - return mScreenLockPreferenceDetailUtils.openChooseLockGenericFragment(); + return mScreenLockPreferenceDetailUtils.openChooseLockGenericFragment( + mHost.getMetricsCategory()); } protected void updateSummary(Preference preference, int userId) { diff --git a/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java b/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java index a191acdc25b..19e70d9ed3f 100644 --- a/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java +++ b/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java @@ -46,16 +46,14 @@ public class ScreenLockPreferenceDetailsUtils { private final LockPatternUtils mLockPatternUtils; private final int mProfileChallengeUserId; private final UserManager mUm; - private final int mSourceMetricsCategory; - public ScreenLockPreferenceDetailsUtils(Context context, int sourceMetricsCategory) { + public ScreenLockPreferenceDetailsUtils(Context context) { mContext = context; mUm = context.getSystemService(UserManager.class); mLockPatternUtils = FeatureFactory.getFactory(context) .getSecurityFeatureProvider() .getLockPatternUtils(context); mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId); - mSourceMetricsCategory = sourceMetricsCategory; } /** @@ -100,17 +98,17 @@ public class ScreenLockPreferenceDetailsUtils { /** * Launches the {@link ScreenLockSettings}. */ - public void openScreenLockSettings() { - mContext.startActivity(getLaunchScreenLockSettingsIntent()); + public void openScreenLockSettings(int sourceMetricsCategory) { + mContext.startActivity(getLaunchScreenLockSettingsIntent(sourceMetricsCategory)); } /** * Returns {@link Intent} to launch the {@link ScreenLockSettings}. */ - public Intent getLaunchScreenLockSettingsIntent() { + public Intent getLaunchScreenLockSettingsIntent(int sourceMetricsCategory) { return new SubSettingLauncher(mContext) .setDestination(ScreenLockSettings.class.getName()) - .setSourceMetricsCategory(mSourceMetricsCategory) + .setSourceMetricsCategory(sourceMetricsCategory) .toIntent(); } @@ -120,13 +118,13 @@ public class ScreenLockPreferenceDetailsUtils { * * @return true if the {@link ChooseLockGenericFragment} is launching. */ - public boolean openChooseLockGenericFragment() { + public boolean openChooseLockGenericFragment(int sourceMetricsCategory) { final Intent quietModeDialogIntent = getQuietModeDialogIntent(); if (quietModeDialogIntent != null) { mContext.startActivity(quietModeDialogIntent); return false; } - mContext.startActivity(getChooseLockGenericFragmentIntent()); + mContext.startActivity(getChooseLockGenericFragmentIntent(sourceMetricsCategory)); return true; } @@ -137,10 +135,10 @@ public class ScreenLockPreferenceDetailsUtils { * to disable the Quiet Mode, otherwise returns {@link Intent} to launch * {@link ChooseLockGenericFragment}. */ - public Intent getLaunchChooseLockGenericFragmentIntent() { + public Intent getLaunchChooseLockGenericFragmentIntent(int sourceMetricsCategory) { final Intent quietModeDialogIntent = getQuietModeDialogIntent(); return quietModeDialogIntent != null ? quietModeDialogIntent - : getChooseLockGenericFragmentIntent(); + : getChooseLockGenericFragmentIntent(sourceMetricsCategory); } private Intent getQuietModeDialogIntent() { @@ -159,10 +157,10 @@ public class ScreenLockPreferenceDetailsUtils { return null; } - private Intent getChooseLockGenericFragmentIntent() { + private Intent getChooseLockGenericFragmentIntent(int sourceMetricsCategory) { return new SubSettingLauncher(mContext) .setDestination(ChooseLockGenericFragment.class.getName()) - .setSourceMetricsCategory(mSourceMetricsCategory) + .setSourceMetricsCategory(sourceMetricsCategory) .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE) .toIntent(); } diff --git a/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java index 7ecbafc0945..53f4e7c00e2 100644 --- a/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java +++ b/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java @@ -384,7 +384,7 @@ public class LockScreenSafetySourceTest { whenScreenLockIsEnabled(); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); final Intent launchScreenLockSettings = new Intent(FAKE_ACTION_SCREEN_LOCK_SETTINGS); - when(mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent()) + when(mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent(anyInt())) .thenReturn(launchScreenLockSettings); when(mScreenLockPreferenceDetailsUtils.shouldShowGearMenu()).thenReturn(true); @@ -450,7 +450,7 @@ public class LockScreenSafetySourceTest { Intent launchChooseLockGenericFragment = new Intent( FAKE_ACTION_CHOOSE_LOCK_GENERIC_FRAGMENT); - when(mScreenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent()) + when(mScreenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent(anyInt())) .thenReturn(launchChooseLockGenericFragment); } } diff --git a/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java b/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java index f471128548a..ad886879698 100644 --- a/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java +++ b/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java @@ -91,8 +91,7 @@ public class ScreenLockPreferenceDetailsUtilsTest { when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext)) .thenReturn(mLockPatternUtils); - mScreenLockPreferenceDetailsUtils = - new ScreenLockPreferenceDetailsUtils(mContext, SOURCE_METRICS_CATEGORY); + mScreenLockPreferenceDetailsUtils = new ScreenLockPreferenceDetailsUtils(mContext); } @Test @@ -283,14 +282,15 @@ public class ScreenLockPreferenceDetailsUtilsTest { @Test public void openScreenLockSettings_shouldSendIntent() { - mScreenLockPreferenceDetailsUtils.openScreenLockSettings(); + mScreenLockPreferenceDetailsUtils.openScreenLockSettings(SOURCE_METRICS_CATEGORY); assertFragmentLaunchRequested(ScreenLockSettings.class.getName()); } @Test public void getLaunchScreenLockSettingsIntent_returnsIntent() { - final Intent intent = mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent(); + final Intent intent = mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent( + SOURCE_METRICS_CATEGORY); assertFragmentLaunchIntent(intent, ScreenLockSettings.class.getName()); } @@ -299,7 +299,8 @@ public class ScreenLockPreferenceDetailsUtilsTest { public void openChooseLockGenericFragment_noQuietMode_shouldSendIntent_shouldReturnTrue() { when(mUserManager.isQuietModeEnabled(any())).thenReturn(false); - assertThat(mScreenLockPreferenceDetailsUtils.openChooseLockGenericFragment()).isTrue(); + assertThat(mScreenLockPreferenceDetailsUtils + .openChooseLockGenericFragment(SOURCE_METRICS_CATEGORY)).isTrue(); assertFragmentLaunchRequested(ChooseLockGeneric.ChooseLockGenericFragment.class.getName()); } @@ -307,8 +308,8 @@ public class ScreenLockPreferenceDetailsUtilsTest { public void getLaunchChooseLockGenericFragmentIntent_noQuietMode_returnsIntent() { when(mUserManager.isQuietModeEnabled(any())).thenReturn(false); - final Intent intent = - mScreenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent(); + final Intent intent = mScreenLockPreferenceDetailsUtils + .getLaunchChooseLockGenericFragmentIntent(SOURCE_METRICS_CATEGORY); assertFragmentLaunchIntent(intent, ChooseLockGeneric.ChooseLockGenericFragment.class.getName());