Refresh biometric preference controllers on lifecycle events.
Fix: 195961101 Test: make RunSettingsRoboTests Test: manual (enroll via settings and verify preferences enabled after enrolling) Change-Id: Ie50cd862a42c96eb95f2156a33f34748b2b8b50c
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user