Postpone getting Metrics Category until it is needed
Test: manual Bug: 226105654 Change-Id: I9473ddfd72e38bff4f93b43d539c467b2e13e258
This commit is contained in:
@@ -62,7 +62,8 @@ public final class LockScreenSafetySource {
|
|||||||
final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal
|
final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal
|
||||||
.checkIfPasswordQualityIsSet(context, userId);
|
.checkIfPasswordQualityIsSet(context, userId);
|
||||||
final PendingIntent pendingIntent = createPendingIntent(context,
|
final PendingIntent pendingIntent = createPendingIntent(context,
|
||||||
screenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent());
|
screenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent(
|
||||||
|
SettingsEnums.SAFETY_CENTER));
|
||||||
final IconAction gearMenuIconAction = createGearMenuIconAction(context,
|
final IconAction gearMenuIconAction = createGearMenuIconAction(context,
|
||||||
screenLockPreferenceDetailsUtils);
|
screenLockPreferenceDetailsUtils);
|
||||||
final boolean enabled =
|
final boolean enabled =
|
||||||
@@ -100,8 +101,7 @@ public final class LockScreenSafetySource {
|
|||||||
/** Notifies Safety Center of a change in lock screen settings. */
|
/** Notifies Safety Center of a change in lock screen settings. */
|
||||||
public static void onLockScreenChange(Context context) {
|
public static void onLockScreenChange(Context context) {
|
||||||
setSafetySourceData(
|
setSafetySourceData(
|
||||||
context,
|
context, new ScreenLockPreferenceDetailsUtils(context),
|
||||||
new ScreenLockPreferenceDetailsUtils(context, SettingsEnums.SAFETY_CENTER),
|
|
||||||
new SafetyEvent.Builder(SAFETY_EVENT_TYPE_SOURCE_STATE_CHANGED).build());
|
new SafetyEvent.Builder(SAFETY_EVENT_TYPE_SOURCE_STATE_CHANGED).build());
|
||||||
|
|
||||||
// Also send refreshed safety center data for biometrics, since changing lockscreen settings
|
// 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(
|
return screenLockPreferenceDetailsUtils.shouldShowGearMenu() ? new IconAction(
|
||||||
IconAction.ICON_TYPE_GEAR,
|
IconAction.ICON_TYPE_GEAR,
|
||||||
createPendingIntent(context,
|
createPendingIntent(context,
|
||||||
screenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent()))
|
screenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent(
|
||||||
|
SettingsEnums.SAFETY_CENTER)))
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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_DEVICE_REBOOTED;
|
||||||
import static android.safetycenter.SafetyEvent.SAFETY_EVENT_TYPE_REFRESH_REQUESTED;
|
import static android.safetycenter.SafetyEvent.SAFETY_EVENT_TYPE_REFRESH_REQUESTED;
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -74,8 +73,7 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver {
|
|||||||
SafetyEvent safetyEvent) {
|
SafetyEvent safetyEvent) {
|
||||||
if (sourceIds.contains(LockScreenSafetySource.SAFETY_SOURCE_ID)) {
|
if (sourceIds.contains(LockScreenSafetySource.SAFETY_SOURCE_ID)) {
|
||||||
LockScreenSafetySource.setSafetySourceData(context,
|
LockScreenSafetySource.setSafetySourceData(context,
|
||||||
new ScreenLockPreferenceDetailsUtils(context, SettingsEnums.SAFETY_CENTER),
|
new ScreenLockPreferenceDetailsUtils(context), safetyEvent);
|
||||||
safetyEvent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)) {
|
if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)) {
|
||||||
@@ -85,8 +83,7 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
private static void refreshAllSafetySources(Context context, SafetyEvent safetyEvent) {
|
private static void refreshAllSafetySources(Context context, SafetyEvent safetyEvent) {
|
||||||
LockScreenSafetySource.setSafetySourceData(context,
|
LockScreenSafetySource.setSafetySourceData(context,
|
||||||
new ScreenLockPreferenceDetailsUtils(context, SettingsEnums.SAFETY_CENTER),
|
new ScreenLockPreferenceDetailsUtils(context), safetyEvent);
|
||||||
safetyEvent);
|
|
||||||
BiometricsSafetySource.setSafetySourceData(context, safetyEvent);
|
BiometricsSafetySource.setSafetySourceData(context, safetyEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -62,8 +62,7 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont
|
|||||||
mHost = host;
|
mHost = host;
|
||||||
mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
|
mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
|
||||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||||
mScreenLockPreferenceDetailUtils =
|
mScreenLockPreferenceDetailUtils = new ScreenLockPreferenceDetailsUtils(context);
|
||||||
new ScreenLockPreferenceDetailsUtils(context, host.getMetricsCategory());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -106,7 +105,7 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont
|
|||||||
if (TextUtils.equals(p.getKey(), getPreferenceKey())) {
|
if (TextUtils.equals(p.getKey(), getPreferenceKey())) {
|
||||||
mMetricsFeatureProvider.logClickedPreference(p,
|
mMetricsFeatureProvider.logClickedPreference(p,
|
||||||
p.getExtras().getInt(DashboardFragment.CATEGORY));
|
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())) {
|
if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
|
||||||
return super.handlePreferenceTreeClick(preference);
|
return super.handlePreferenceTreeClick(preference);
|
||||||
}
|
}
|
||||||
return mScreenLockPreferenceDetailUtils.openChooseLockGenericFragment();
|
return mScreenLockPreferenceDetailUtils.openChooseLockGenericFragment(
|
||||||
|
mHost.getMetricsCategory());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateSummary(Preference preference, int userId) {
|
protected void updateSummary(Preference preference, int userId) {
|
||||||
|
@@ -46,16 +46,14 @@ public class ScreenLockPreferenceDetailsUtils {
|
|||||||
private final LockPatternUtils mLockPatternUtils;
|
private final LockPatternUtils mLockPatternUtils;
|
||||||
private final int mProfileChallengeUserId;
|
private final int mProfileChallengeUserId;
|
||||||
private final UserManager mUm;
|
private final UserManager mUm;
|
||||||
private final int mSourceMetricsCategory;
|
|
||||||
|
|
||||||
public ScreenLockPreferenceDetailsUtils(Context context, int sourceMetricsCategory) {
|
public ScreenLockPreferenceDetailsUtils(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mUm = context.getSystemService(UserManager.class);
|
mUm = context.getSystemService(UserManager.class);
|
||||||
mLockPatternUtils = FeatureFactory.getFactory(context)
|
mLockPatternUtils = FeatureFactory.getFactory(context)
|
||||||
.getSecurityFeatureProvider()
|
.getSecurityFeatureProvider()
|
||||||
.getLockPatternUtils(context);
|
.getLockPatternUtils(context);
|
||||||
mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
|
mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
|
||||||
mSourceMetricsCategory = sourceMetricsCategory;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,17 +98,17 @@ public class ScreenLockPreferenceDetailsUtils {
|
|||||||
/**
|
/**
|
||||||
* Launches the {@link ScreenLockSettings}.
|
* Launches the {@link ScreenLockSettings}.
|
||||||
*/
|
*/
|
||||||
public void openScreenLockSettings() {
|
public void openScreenLockSettings(int sourceMetricsCategory) {
|
||||||
mContext.startActivity(getLaunchScreenLockSettingsIntent());
|
mContext.startActivity(getLaunchScreenLockSettingsIntent(sourceMetricsCategory));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns {@link Intent} to launch the {@link ScreenLockSettings}.
|
* Returns {@link Intent} to launch the {@link ScreenLockSettings}.
|
||||||
*/
|
*/
|
||||||
public Intent getLaunchScreenLockSettingsIntent() {
|
public Intent getLaunchScreenLockSettingsIntent(int sourceMetricsCategory) {
|
||||||
return new SubSettingLauncher(mContext)
|
return new SubSettingLauncher(mContext)
|
||||||
.setDestination(ScreenLockSettings.class.getName())
|
.setDestination(ScreenLockSettings.class.getName())
|
||||||
.setSourceMetricsCategory(mSourceMetricsCategory)
|
.setSourceMetricsCategory(sourceMetricsCategory)
|
||||||
.toIntent();
|
.toIntent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,13 +118,13 @@ public class ScreenLockPreferenceDetailsUtils {
|
|||||||
*
|
*
|
||||||
* @return true if the {@link ChooseLockGenericFragment} is launching.
|
* @return true if the {@link ChooseLockGenericFragment} is launching.
|
||||||
*/
|
*/
|
||||||
public boolean openChooseLockGenericFragment() {
|
public boolean openChooseLockGenericFragment(int sourceMetricsCategory) {
|
||||||
final Intent quietModeDialogIntent = getQuietModeDialogIntent();
|
final Intent quietModeDialogIntent = getQuietModeDialogIntent();
|
||||||
if (quietModeDialogIntent != null) {
|
if (quietModeDialogIntent != null) {
|
||||||
mContext.startActivity(quietModeDialogIntent);
|
mContext.startActivity(quietModeDialogIntent);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
mContext.startActivity(getChooseLockGenericFragmentIntent());
|
mContext.startActivity(getChooseLockGenericFragmentIntent(sourceMetricsCategory));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,10 +135,10 @@ public class ScreenLockPreferenceDetailsUtils {
|
|||||||
* to disable the Quiet Mode, otherwise returns {@link Intent} to launch
|
* to disable the Quiet Mode, otherwise returns {@link Intent} to launch
|
||||||
* {@link ChooseLockGenericFragment}.
|
* {@link ChooseLockGenericFragment}.
|
||||||
*/
|
*/
|
||||||
public Intent getLaunchChooseLockGenericFragmentIntent() {
|
public Intent getLaunchChooseLockGenericFragmentIntent(int sourceMetricsCategory) {
|
||||||
final Intent quietModeDialogIntent = getQuietModeDialogIntent();
|
final Intent quietModeDialogIntent = getQuietModeDialogIntent();
|
||||||
return quietModeDialogIntent != null ? quietModeDialogIntent
|
return quietModeDialogIntent != null ? quietModeDialogIntent
|
||||||
: getChooseLockGenericFragmentIntent();
|
: getChooseLockGenericFragmentIntent(sourceMetricsCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getQuietModeDialogIntent() {
|
private Intent getQuietModeDialogIntent() {
|
||||||
@@ -159,10 +157,10 @@ public class ScreenLockPreferenceDetailsUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getChooseLockGenericFragmentIntent() {
|
private Intent getChooseLockGenericFragmentIntent(int sourceMetricsCategory) {
|
||||||
return new SubSettingLauncher(mContext)
|
return new SubSettingLauncher(mContext)
|
||||||
.setDestination(ChooseLockGenericFragment.class.getName())
|
.setDestination(ChooseLockGenericFragment.class.getName())
|
||||||
.setSourceMetricsCategory(mSourceMetricsCategory)
|
.setSourceMetricsCategory(sourceMetricsCategory)
|
||||||
.setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
|
.setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
|
||||||
.toIntent();
|
.toIntent();
|
||||||
}
|
}
|
||||||
|
@@ -384,7 +384,7 @@ public class LockScreenSafetySourceTest {
|
|||||||
whenScreenLockIsEnabled();
|
whenScreenLockIsEnabled();
|
||||||
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
|
||||||
final Intent launchScreenLockSettings = new Intent(FAKE_ACTION_SCREEN_LOCK_SETTINGS);
|
final Intent launchScreenLockSettings = new Intent(FAKE_ACTION_SCREEN_LOCK_SETTINGS);
|
||||||
when(mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent())
|
when(mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent(anyInt()))
|
||||||
.thenReturn(launchScreenLockSettings);
|
.thenReturn(launchScreenLockSettings);
|
||||||
when(mScreenLockPreferenceDetailsUtils.shouldShowGearMenu()).thenReturn(true);
|
when(mScreenLockPreferenceDetailsUtils.shouldShowGearMenu()).thenReturn(true);
|
||||||
|
|
||||||
@@ -450,7 +450,7 @@ public class LockScreenSafetySourceTest {
|
|||||||
|
|
||||||
Intent launchChooseLockGenericFragment = new Intent(
|
Intent launchChooseLockGenericFragment = new Intent(
|
||||||
FAKE_ACTION_CHOOSE_LOCK_GENERIC_FRAGMENT);
|
FAKE_ACTION_CHOOSE_LOCK_GENERIC_FRAGMENT);
|
||||||
when(mScreenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent())
|
when(mScreenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent(anyInt()))
|
||||||
.thenReturn(launchChooseLockGenericFragment);
|
.thenReturn(launchChooseLockGenericFragment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -91,8 +91,7 @@ public class ScreenLockPreferenceDetailsUtilsTest {
|
|||||||
when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
|
when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
|
||||||
.thenReturn(mLockPatternUtils);
|
.thenReturn(mLockPatternUtils);
|
||||||
|
|
||||||
mScreenLockPreferenceDetailsUtils =
|
mScreenLockPreferenceDetailsUtils = new ScreenLockPreferenceDetailsUtils(mContext);
|
||||||
new ScreenLockPreferenceDetailsUtils(mContext, SOURCE_METRICS_CATEGORY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -283,14 +282,15 @@ public class ScreenLockPreferenceDetailsUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void openScreenLockSettings_shouldSendIntent() {
|
public void openScreenLockSettings_shouldSendIntent() {
|
||||||
mScreenLockPreferenceDetailsUtils.openScreenLockSettings();
|
mScreenLockPreferenceDetailsUtils.openScreenLockSettings(SOURCE_METRICS_CATEGORY);
|
||||||
|
|
||||||
assertFragmentLaunchRequested(ScreenLockSettings.class.getName());
|
assertFragmentLaunchRequested(ScreenLockSettings.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getLaunchScreenLockSettingsIntent_returnsIntent() {
|
public void getLaunchScreenLockSettingsIntent_returnsIntent() {
|
||||||
final Intent intent = mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent();
|
final Intent intent = mScreenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent(
|
||||||
|
SOURCE_METRICS_CATEGORY);
|
||||||
|
|
||||||
assertFragmentLaunchIntent(intent, ScreenLockSettings.class.getName());
|
assertFragmentLaunchIntent(intent, ScreenLockSettings.class.getName());
|
||||||
}
|
}
|
||||||
@@ -299,7 +299,8 @@ public class ScreenLockPreferenceDetailsUtilsTest {
|
|||||||
public void openChooseLockGenericFragment_noQuietMode_shouldSendIntent_shouldReturnTrue() {
|
public void openChooseLockGenericFragment_noQuietMode_shouldSendIntent_shouldReturnTrue() {
|
||||||
when(mUserManager.isQuietModeEnabled(any())).thenReturn(false);
|
when(mUserManager.isQuietModeEnabled(any())).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mScreenLockPreferenceDetailsUtils.openChooseLockGenericFragment()).isTrue();
|
assertThat(mScreenLockPreferenceDetailsUtils
|
||||||
|
.openChooseLockGenericFragment(SOURCE_METRICS_CATEGORY)).isTrue();
|
||||||
assertFragmentLaunchRequested(ChooseLockGeneric.ChooseLockGenericFragment.class.getName());
|
assertFragmentLaunchRequested(ChooseLockGeneric.ChooseLockGenericFragment.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,8 +308,8 @@ public class ScreenLockPreferenceDetailsUtilsTest {
|
|||||||
public void getLaunchChooseLockGenericFragmentIntent_noQuietMode_returnsIntent() {
|
public void getLaunchChooseLockGenericFragmentIntent_noQuietMode_returnsIntent() {
|
||||||
when(mUserManager.isQuietModeEnabled(any())).thenReturn(false);
|
when(mUserManager.isQuietModeEnabled(any())).thenReturn(false);
|
||||||
|
|
||||||
final Intent intent =
|
final Intent intent = mScreenLockPreferenceDetailsUtils
|
||||||
mScreenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent();
|
.getLaunchChooseLockGenericFragmentIntent(SOURCE_METRICS_CATEGORY);
|
||||||
|
|
||||||
assertFragmentLaunchIntent(intent,
|
assertFragmentLaunchIntent(intent,
|
||||||
ChooseLockGeneric.ChooseLockGenericFragment.class.getName());
|
ChooseLockGeneric.ChooseLockGenericFragment.class.getName());
|
||||||
|
Reference in New Issue
Block a user