[Auto Pin Confirm]: Trigger PIN verification when auto confirm setting is being turned on or off

- Fix the logic to set the pin_auto_confirm setting before triggering the password save workflow in ChooseLockPassword

Bug: 275385372
Test: atest AutoPinConfirmPreferenceControllerTest
Test: Manual Test
Change-Id: Id6774bc9afcd6d3161e023dc52911ae3e1f556c9
This commit is contained in:
Avinash Vadlamudi
2023-03-27 18:46:08 +00:00
parent cdfd4ee9b3
commit a4cf551d25
5 changed files with 64 additions and 17 deletions

View File

@@ -22,7 +22,6 @@ import static com.android.internal.widget.LockPatternUtils.FLAG_ENABLE_AUTO_PIN_
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
@@ -33,6 +32,7 @@ import androidx.test.core.app.ApplicationProvider;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
import com.android.settingslib.core.lifecycle.ObservablePreferenceFragment;
import org.junit.Before;
import org.junit.Test;
@@ -48,6 +48,8 @@ public class AutoPinConfirmPreferenceControllerTest {
private static final Integer TEST_USER_ID = 1;
@Mock
private LockPatternUtils mLockPatternUtils;
@Mock
private ObservablePreferenceFragment mParentFragment;
private AutoPinConfirmPreferenceController mController;
private SwitchPreference mPreference;
@@ -56,7 +58,8 @@ public class AutoPinConfirmPreferenceControllerTest {
MockitoAnnotations.initMocks(this);
Context context = ApplicationProvider.getApplicationContext();
mController =
new AutoPinConfirmPreferenceController(context, TEST_USER_ID, mLockPatternUtils);
new AutoPinConfirmPreferenceController(context, TEST_USER_ID, mLockPatternUtils,
mParentFragment);
mPreference = new SwitchPreference(context);
}
@@ -128,12 +131,4 @@ public class AutoPinConfirmPreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.isChecked()).isTrue();
}
@Test
public void onPreferenceChange_shouldUpdatePinAutoConfirmSetting() {
DeviceConfig.setProperty(NAMESPACE_AUTO_PIN_CONFIRMATION, FLAG_ENABLE_AUTO_PIN_CONFIRMATION,
"true", /* makeDefault */ false);
mController.onPreferenceChange(mPreference, /* newValue= */ true);
verify(mLockPatternUtils).setAutoPinConfirm(true, TEST_USER_ID);
}
}