summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-08-19 03:22:27 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-08-19 03:22:27 +0000
commit3b7fccb233b3472f01e4e09965a6faff4257a17a (patch)
tree3451394ccb09f7188301138394e8bd1ec6a358d2
parent17abee769d98d4af865bc8d94231acd3117a2bd5 (diff)
parentcfbf0b03365ecad360ab237fa04963e9cbbaa991 (diff)
downloadSettings-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
-rw-r--r--src/com/android/settings/biometrics/combination/BiometricFaceProfileStatusPreferenceController.java7
-rw-r--r--src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java7
-rw-r--r--src/com/android/settings/biometrics/combination/BiometricFingerprintProfileStatusPreferenceController.java7
-rw-r--r--src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java7
-rw-r--r--src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java12
-rw-r--r--src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java37
-rw-r--r--src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java11
-rw-r--r--src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java36
-rw-r--r--src/com/android/settings/biometrics/fingerprint/FingerprintProfileStatusPreferenceController.java13
-rw-r--r--src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java34
-rw-r--r--src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java2
-rw-r--r--src/com/android/settings/security/SecuritySettings.java16
-rw-r--r--tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceControllerTest.java17
-rw-r--r--tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java16
-rw-r--r--tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java16
-rw-r--r--tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java2
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 {