[automerge] Postpone getting Metrics Category until it is needed 2p: af22553089

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17352025

Bug: 226105654
Change-Id: If1206914f684741e59e331f6d26a8fc5d7bfc528
This commit is contained in:
Yuri Ufimtsev
2022-03-23 15:47:02 +00:00
committed by Presubmit Automerger Backend
6 changed files with 32 additions and 35 deletions

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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) {

View File

@@ -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();
}

View File

@@ -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);
}
}

View File

@@ -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());