diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-08-19 03:22:27 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-08-19 03:22:27 +0000 |
commit | 3b7fccb233b3472f01e4e09965a6faff4257a17a (patch) | |
tree | 3451394ccb09f7188301138394e8bd1ec6a358d2 | |
parent | 17abee769d98d4af865bc8d94231acd3117a2bd5 (diff) | |
parent | cfbf0b03365ecad360ab237fa04963e9cbbaa991 (diff) | |
download | Settings-android-12.0.0_r2.tar.gz |
Merge cherrypicks of [15617994, 15618969, 15618970, 15617995, 15618032, 15618033, 15618190, 15620097, 15618565, 15620098, 15617967, 15619902, 15620257, 15619392] into sc-releaseandroid-vts-12.0_r1android-cts-12.0_r1android-12.0.0_r3android-12.0.0_r25android-12.0.0_r2android-12.0.0_r1android12-s3-releaseandroid12-s1-release
Change-Id: Ia9e19233a495f99f183df05a57cac1e12e36d1a5
16 files changed, 210 insertions, 30 deletions
diff --git a/src/com/android/settings/biometrics/combination/BiometricFaceProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricFaceProfileStatusPreferenceController.java index 1dbfa645446..b6c3088bafb 100644 --- a/src/com/android/settings/biometrics/combination/BiometricFaceProfileStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricFaceProfileStatusPreferenceController.java @@ -18,6 +18,8 @@ package com.android.settings.biometrics.combination; import android.content.Context; import android.os.UserHandle; +import androidx.lifecycle.Lifecycle; + /** * Preference controller for face settings within the biometrics settings page of work profile, * that controls the ability to unlock the phone with face authentication. @@ -29,6 +31,11 @@ public class BiometricFaceProfileStatusPreferenceController extends super(context, key); } + public BiometricFaceProfileStatusPreferenceController( + Context context, String key, Lifecycle lifecycle) { + super(context, key, lifecycle); + } + @Override protected boolean isUserSupported() { return mProfileChallengeUserId != UserHandle.USER_NULL diff --git a/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java index 047a2dfa193..3ac14a1c0cf 100644 --- a/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java @@ -17,6 +17,8 @@ package com.android.settings.biometrics.combination; import android.content.Context; +import androidx.lifecycle.Lifecycle; + import com.android.settings.Utils; import com.android.settings.biometrics.face.FaceStatusPreferenceController; @@ -30,6 +32,11 @@ public class BiometricFaceStatusPreferenceController extends FaceStatusPreferenc super(context, key); } + public BiometricFaceStatusPreferenceController( + Context context, String key, Lifecycle lifecycle) { + super(context, key, lifecycle); + } + @Override protected boolean isDeviceSupported() { return Utils.isMultipleBiometricsSupported(mContext) && Utils.hasFaceHardware(mContext); diff --git a/src/com/android/settings/biometrics/combination/BiometricFingerprintProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricFingerprintProfileStatusPreferenceController.java index 5477c9dca2e..4d910834a37 100644 --- a/src/com/android/settings/biometrics/combination/BiometricFingerprintProfileStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricFingerprintProfileStatusPreferenceController.java @@ -18,6 +18,8 @@ package com.android.settings.biometrics.combination; import android.content.Context; import android.os.UserHandle; +import androidx.lifecycle.Lifecycle; + /** * Preference controller for fingerprint settings within the biometrics settings page, that controls * the ability to unlock the phone with fingerprint. @@ -29,6 +31,11 @@ public class BiometricFingerprintProfileStatusPreferenceController extends super(context, key); } + public BiometricFingerprintProfileStatusPreferenceController( + Context context, String key, Lifecycle lifecycle) { + super(context, key, lifecycle); + } + @Override protected boolean isUserSupported() { return mProfileChallengeUserId != UserHandle.USER_NULL diff --git a/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java index 72a19c72d44..782d889fb42 100644 --- a/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java @@ -17,6 +17,8 @@ package com.android.settings.biometrics.combination; import android.content.Context; +import androidx.lifecycle.Lifecycle; + import com.android.settings.Utils; import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController; @@ -31,6 +33,11 @@ public class BiometricFingerprintStatusPreferenceController extends super(context, key); } + public BiometricFingerprintStatusPreferenceController( + Context context, String key, Lifecycle lifecycle) { + super(context, key, lifecycle); + } + @Override protected boolean isDeviceSupported() { return Utils.isMultipleBiometricsSupported(mContext) diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java index e9cbcd8e763..aba3244dcd3 100644 --- a/src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java @@ -18,6 +18,8 @@ package com.android.settings.biometrics.combination; import android.content.Context; import android.os.UserHandle; +import androidx.lifecycle.Lifecycle; + import com.android.settings.Settings; /** @@ -37,6 +39,16 @@ public class CombinedBiometricProfileStatusPreferenceController extends super(context, key); } + public CombinedBiometricProfileStatusPreferenceController( + Context context, Lifecycle lifecycle) { + super(context, KEY_BIOMETRIC_SETTINGS, lifecycle); + } + + public CombinedBiometricProfileStatusPreferenceController( + Context context, String key, Lifecycle lifecycle) { + super(context, key, lifecycle); + } + @Override protected boolean isUserSupported() { return mProfileChallengeUserId != UserHandle.USER_NULL diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java index 9cc95e1e55f..6f24215e17a 100644 --- a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java @@ -21,6 +21,9 @@ import android.hardware.face.FaceManager; import android.hardware.fingerprint.FingerprintManager; import androidx.annotation.Nullable; +import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.LifecycleObserver; +import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -38,7 +41,7 @@ import com.android.settingslib.RestrictedPreference; * with face and fingerprint. */ public class CombinedBiometricStatusPreferenceController extends - BiometricStatusPreferenceController { + BiometricStatusPreferenceController implements LifecycleObserver { private static final String KEY_BIOMETRIC_SETTINGS = "biometric_settings"; @Nullable @@ -49,13 +52,31 @@ public class CombinedBiometricStatusPreferenceController extends RestrictedPreference mPreference; public CombinedBiometricStatusPreferenceController(Context context) { - this(context, KEY_BIOMETRIC_SETTINGS); + this(context, KEY_BIOMETRIC_SETTINGS, null /* lifecycle */); } public CombinedBiometricStatusPreferenceController(Context context, String key) { + this(context, key, null /* lifecycle */); + } + + public CombinedBiometricStatusPreferenceController(Context context, Lifecycle lifecycle) { + this(context, KEY_BIOMETRIC_SETTINGS, lifecycle); + } + + public CombinedBiometricStatusPreferenceController( + Context context, String key, Lifecycle lifecycle) { super(context, key); mFingerprintManager = Utils.getFingerprintManagerOrNull(context); mFaceManager = Utils.getFaceManagerOrNull(context); + + if (lifecycle != null) { + lifecycle.addObserver(this); + } + } + + @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) + public void onResume() { + updateStateInternal(); } @Override @@ -77,17 +98,19 @@ public class CombinedBiometricStatusPreferenceController extends @Override public void updateState(Preference preference) { super.updateState(preference); + updateStateInternal(); + } + + private void updateStateInternal() { // This controller currently is shown if fingerprint&face exist on the device. If this // changes in the future, the modalities passed into the below will need to be updated. - final RestrictedLockUtils.EnforcedAdmin admin = ParentalControlsUtils - .parentConsentRequired(mContext, - BiometricAuthenticator.TYPE_FACE | BiometricAuthenticator.TYPE_FINGERPRINT); - updateStateInternal(admin); + updateStateInternal(ParentalControlsUtils.parentConsentRequired(mContext, + BiometricAuthenticator.TYPE_FACE | BiometricAuthenticator.TYPE_FINGERPRINT)); } @VisibleForTesting void updateStateInternal(@Nullable RestrictedLockUtils.EnforcedAdmin enforcedAdmin) { - if (enforcedAdmin != null && mPreference != null) { + if (mPreference != null) { mPreference.setDisabledByAdmin(enforcedAdmin); } } diff --git a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java index c46ddcf2eea..99145f8778e 100644 --- a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.biometrics.face; import android.content.Context; import android.os.UserHandle; +import androidx.lifecycle.Lifecycle; import androidx.preference.Preference; import com.android.settings.R; @@ -28,13 +29,21 @@ public class FaceProfileStatusPreferenceController extends FaceStatusPreferenceC private static final String KEY_FACE_SETTINGS = "face_settings_profile"; public FaceProfileStatusPreferenceController(Context context) { - this(context, KEY_FACE_SETTINGS); + super(context, KEY_FACE_SETTINGS); } public FaceProfileStatusPreferenceController(Context context, String key) { super(context, key); } + public FaceProfileStatusPreferenceController(Context context, Lifecycle lifecycle) { + super(context, KEY_FACE_SETTINGS, lifecycle); + } + + public FaceProfileStatusPreferenceController(Context context, String key, Lifecycle lifecycle) { + super(context, key, lifecycle); + } + @Override public int getAvailabilityStatus() { // Check if Face for Profile is available. diff --git a/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java b/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java index 3a53f01b861..319166ecffa 100644 --- a/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java @@ -21,6 +21,9 @@ import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.face.FaceManager; import androidx.annotation.Nullable; +import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.LifecycleObserver; +import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -33,7 +36,8 @@ import com.android.settings.biometrics.ParentalControlsUtils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; -public class FaceStatusPreferenceController extends BiometricStatusPreferenceController { +public class FaceStatusPreferenceController extends BiometricStatusPreferenceController + implements LifecycleObserver { public static final String KEY_FACE_SETTINGS = "face_settings"; @@ -42,12 +46,29 @@ public class FaceStatusPreferenceController extends BiometricStatusPreferenceCon RestrictedPreference mPreference; public FaceStatusPreferenceController(Context context) { - this(context, KEY_FACE_SETTINGS); + this(context, KEY_FACE_SETTINGS, null /* lifecycle */); } public FaceStatusPreferenceController(Context context, String key) { + this(context, key, null /* lifecycle */); + } + + public FaceStatusPreferenceController(Context context, Lifecycle lifecycle) { + this(context, KEY_FACE_SETTINGS, lifecycle); + } + + public FaceStatusPreferenceController(Context context, String key, Lifecycle lifecycle) { super(context, key); mFaceManager = Utils.getFaceManagerOrNull(context); + + if (lifecycle != null) { + lifecycle.addObserver(this); + } + } + + @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) + public void onResume() { + updateStateInternal(); } @Override @@ -69,14 +90,17 @@ public class FaceStatusPreferenceController extends BiometricStatusPreferenceCon @Override public void updateState(Preference preference) { super.updateState(preference); - final RestrictedLockUtils.EnforcedAdmin admin = ParentalControlsUtils - .parentConsentRequired(mContext, BiometricAuthenticator.TYPE_FACE); - updateStateInternal(admin); + updateStateInternal(); + } + + private void updateStateInternal() { + updateStateInternal(ParentalControlsUtils.parentConsentRequired( + mContext, BiometricAuthenticator.TYPE_FACE)); } @VisibleForTesting void updateStateInternal(@Nullable RestrictedLockUtils.EnforcedAdmin enforcedAdmin) { - if (enforcedAdmin != null && mPreference != null) { + if (mPreference != null) { mPreference.setDisabledByAdmin(enforcedAdmin); } } diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java index 0d9893d68da..68e1c5e7a71 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java @@ -19,19 +19,30 @@ package com.android.settings.biometrics.fingerprint; import android.content.Context; import android.os.UserHandle; +import androidx.lifecycle.Lifecycle; + public class FingerprintProfileStatusPreferenceController extends FingerprintStatusPreferenceController { public static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings_profile"; public FingerprintProfileStatusPreferenceController(Context context) { - this(context, KEY_FINGERPRINT_SETTINGS); + super(context, KEY_FINGERPRINT_SETTINGS); } public FingerprintProfileStatusPreferenceController(Context context, String key) { super(context, key); } + public FingerprintProfileStatusPreferenceController(Context context, Lifecycle lifecycle) { + super(context, KEY_FINGERPRINT_SETTINGS, lifecycle); + } + + public FingerprintProfileStatusPreferenceController( + Context context, String key, Lifecycle lifecycle) { + super(context, key, lifecycle); + } + @Override protected boolean isUserSupported() { return mProfileChallengeUserId != UserHandle.USER_NULL diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java index 56bfc68f019..76c809c5f85 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java @@ -21,6 +21,9 @@ import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.fingerprint.FingerprintManager; import androidx.annotation.Nullable; +import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.LifecycleObserver; +import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -32,7 +35,8 @@ import com.android.settings.biometrics.ParentalControlsUtils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; -public class FingerprintStatusPreferenceController extends BiometricStatusPreferenceController { +public class FingerprintStatusPreferenceController extends BiometricStatusPreferenceController + implements LifecycleObserver { private static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings"; @@ -45,8 +49,25 @@ public class FingerprintStatusPreferenceController extends BiometricStatusPrefer } public FingerprintStatusPreferenceController(Context context, String key) { + this(context, key, null /* lifecycle */); + } + + public FingerprintStatusPreferenceController(Context context, Lifecycle lifecycle) { + this(context, KEY_FINGERPRINT_SETTINGS, lifecycle); + } + + public FingerprintStatusPreferenceController(Context context, String key, Lifecycle lifecycle) { super(context, key); mFingerprintManager = Utils.getFingerprintManagerOrNull(context); + + if (lifecycle != null) { + lifecycle.addObserver(this); + } + } + + @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) + public void onResume() { + updateStateInternal(); } @Override @@ -69,14 +90,17 @@ public class FingerprintStatusPreferenceController extends BiometricStatusPrefer @Override public void updateState(Preference preference) { super.updateState(preference); - final RestrictedLockUtils.EnforcedAdmin admin = ParentalControlsUtils - .parentConsentRequired(mContext, BiometricAuthenticator.TYPE_FINGERPRINT); - updateStateInternal(admin); + updateStateInternal(); + } + + private void updateStateInternal() { + updateStateInternal(ParentalControlsUtils.parentConsentRequired( + mContext, BiometricAuthenticator.TYPE_FINGERPRINT)); } @VisibleForTesting void updateStateInternal(@Nullable RestrictedLockUtils.EnforcedAdmin enforcedAdmin) { - if (enforcedAdmin != null && mPreference != null) { + if (mPreference != null) { mPreference.setDisabledByAdmin(enforcedAdmin); } } diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java index 107df5fc50f..665737199b3 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java @@ -175,7 +175,7 @@ public class BluetoothDetailsCompanionAppsController extends BluetoothDetailsCon */ @Override protected void refresh() { - updatePreferences(mContext, mCachedDevice.getAddress(), mProfilesContainer); + // Do nothing. More details in b/191992001 } /** diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java index 8a03a04f34d..be123f23397 100644 --- a/src/com/android/settings/security/SecuritySettings.java +++ b/src/com/android/settings/security/SecuritySettings.java @@ -116,9 +116,11 @@ public class SecuritySettings extends DashboardFragment { controllers.add(new TrustAgentListPreferenceController(context, host, lifecycle)); final List<AbstractPreferenceController> securityPreferenceControllers = new ArrayList<>(); - securityPreferenceControllers.add(new FaceStatusPreferenceController(context)); - securityPreferenceControllers.add(new FingerprintStatusPreferenceController(context)); - securityPreferenceControllers.add(new CombinedBiometricStatusPreferenceController(context)); + securityPreferenceControllers.add(new FaceStatusPreferenceController(context, lifecycle)); + securityPreferenceControllers.add(new FingerprintStatusPreferenceController( + context, lifecycle)); + securityPreferenceControllers.add(new CombinedBiometricStatusPreferenceController( + context, lifecycle)); securityPreferenceControllers.add(new ChangeScreenLockPreferenceController(context, host)); controllers.add(new PreferenceCategoryController(context, SECURITY_CATEGORY) .setChildren(securityPreferenceControllers)); @@ -130,10 +132,12 @@ public class SecuritySettings extends DashboardFragment { profileSecurityControllers.add(new LockUnificationPreferenceController(context, host)); profileSecurityControllers.add(new VisiblePatternProfilePreferenceController( context, lifecycle)); - profileSecurityControllers.add(new FaceProfileStatusPreferenceController(context)); - profileSecurityControllers.add(new FingerprintProfileStatusPreferenceController(context)); + profileSecurityControllers.add(new FaceProfileStatusPreferenceController( + context, lifecycle)); + profileSecurityControllers.add(new FingerprintProfileStatusPreferenceController( + context, lifecycle)); profileSecurityControllers - .add(new CombinedBiometricProfileStatusPreferenceController(context)); + .add(new CombinedBiometricProfileStatusPreferenceController(context, lifecycle)); controllers.add(new PreferenceCategoryController(context, WORK_PROFILE_SECURITY_CATEGORY) .setChildren(profileSecurityControllers)); controllers.addAll(profileSecurityControllers); diff --git a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceControllerTest.java index 3b8744bac42..3a973879bda 100644 --- a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceControllerTest.java @@ -18,7 +18,10 @@ package com.android.settings.biometrics.combination; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -29,12 +32,14 @@ import android.hardware.face.FaceManager; import android.hardware.fingerprint.FingerprintManager; import android.os.UserManager; +import androidx.lifecycle.LifecycleOwner; import androidx.preference.Preference; import com.android.internal.widget.LockPatternUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; +import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; @@ -65,11 +70,15 @@ public class CombinedBiometricStatusPreferenceControllerTest { private Context mContext; private CombinedBiometricStatusPreferenceController mController; private Preference mPreference; + private Lifecycle mLifecycle; + private LifecycleOwner mLifecycleOwner; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); + mLifecycleOwner = () -> mLifecycle; + mLifecycle = new Lifecycle(mLifecycleOwner); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)).thenReturn(true); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true); @@ -82,7 +91,8 @@ public class CombinedBiometricStatusPreferenceControllerTest { when(mFeatureFactory.securityFeatureProvider.getLockPatternUtils(mContext)) .thenReturn(mLockPatternUtils); when(mUm.getProfileIdsWithDisabled(anyInt())).thenReturn(new int[] {1234}); - mController = new CombinedBiometricStatusPreferenceController(mContext, TEST_PREF_KEY); + mController = new CombinedBiometricStatusPreferenceController( + mContext, TEST_PREF_KEY, mLifecycle); } @Test @@ -96,5 +106,10 @@ public class CombinedBiometricStatusPreferenceControllerTest { mController.mPreference = restrictedPreference; mController.updateStateInternal(admin); verify(restrictedPreference).setDisabledByAdmin(eq(admin)); + + reset(admin); + + mController.updateStateInternal(null /* enforcedAdmin */); + verify(restrictedPreference, never()).setDisabledByAdmin(any()); } } diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java index 92a7f4a25cf..200cde99689 100644 --- a/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java @@ -23,7 +23,10 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -34,6 +37,7 @@ import android.hardware.face.Face; import android.hardware.face.FaceManager; import android.os.UserManager; +import androidx.lifecycle.LifecycleOwner; import androidx.preference.Preference; import com.android.internal.widget.LockPatternUtils; @@ -41,6 +45,7 @@ import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; +import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; @@ -71,11 +76,15 @@ public class FaceStatusPreferenceControllerTest { private Context mContext; private FaceStatusPreferenceController mController; private Preference mPreference; + private Lifecycle mLifecycle; + private LifecycleOwner mLifecycleOwner; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); + mLifecycleOwner = () -> mLifecycle; + mLifecycle = new Lifecycle(mLifecycleOwner); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true); ShadowApplication.getInstance().setSystemService(Context.FACE_SERVICE, mFaceManager); @@ -85,7 +94,7 @@ public class FaceStatusPreferenceControllerTest { when(mFeatureFactory.securityFeatureProvider.getLockPatternUtils(mContext)) .thenReturn(mLockPatternUtils); when(mUm.getProfileIdsWithDisabled(anyInt())).thenReturn(new int[] {1234}); - mController = new FaceStatusPreferenceController(mContext, TEST_PREF_KEY); + mController = new FaceStatusPreferenceController(mContext, TEST_PREF_KEY, mLifecycle); } @Test @@ -147,5 +156,10 @@ public class FaceStatusPreferenceControllerTest { mController.mPreference = restrictedPreference; mController.updateStateInternal(admin); verify(restrictedPreference).setDisabledByAdmin(eq(admin)); + + reset(admin); + + mController.updateStateInternal(null /* enforcedAdmin */); + verify(restrictedPreference, never()).setDisabledByAdmin(any()); } } diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java index b0137a12e56..d8a8726a82f 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java @@ -23,7 +23,10 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -34,6 +37,7 @@ import android.hardware.fingerprint.Fingerprint; import android.hardware.fingerprint.FingerprintManager; import android.os.UserManager; +import androidx.lifecycle.LifecycleOwner; import androidx.preference.Preference; import com.android.internal.widget.LockPatternUtils; @@ -41,6 +45,7 @@ import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; +import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; @@ -69,11 +74,15 @@ public class FingerprintStatusPreferenceControllerTest { private Context mContext; private FingerprintStatusPreferenceController mController; private Preference mPreference; + private Lifecycle mLifecycle; + private LifecycleOwner mLifecycleOwner; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); + mLifecycleOwner = () -> mLifecycle; + mLifecycle = new Lifecycle(mLifecycleOwner); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)).thenReturn(true); ShadowApplication.getInstance().setSystemService(Context.FINGERPRINT_SERVICE, @@ -84,7 +93,7 @@ public class FingerprintStatusPreferenceControllerTest { when(mFeatureFactory.securityFeatureProvider.getLockPatternUtils(mContext)) .thenReturn(mLockPatternUtils); when(mUm.getProfileIdsWithDisabled(anyInt())).thenReturn(new int[] {1234}); - mController = new FingerprintStatusPreferenceController(mContext); + mController = new FingerprintStatusPreferenceController(mContext, mLifecycle); } @Test @@ -145,5 +154,10 @@ public class FingerprintStatusPreferenceControllerTest { mController.mPreference = restrictedPreference; mController.updateStateInternal(admin); verify(restrictedPreference).setDisabledByAdmin(eq(admin)); + + reset(admin); + + mController.updateStateInternal(null /* enforcedAdmin */); + verify(restrictedPreference, never()).setDisabledByAdmin(any()); } } diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java index 3f49938412b..92bfb38334f 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java @@ -30,6 +30,7 @@ import android.content.pm.PackageManager; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -41,6 +42,7 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +@Ignore("b/191992001") @RunWith(RobolectricTestRunner.class) public class BluetoothDetailsCompanionAppsControllerTest extends BluetoothDetailsControllerTestBase { |