Merge "Update wallet setting availability" into tm-qpr-dev am: 61f81ffb07 am: 02cace2f67

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20874103

Change-Id: I7efaad7adeb7f07e36608dda8eb05a72133659fb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-01-11 15:53:08 +00:00
committed by Automerger Merge Worker
2 changed files with 25 additions and 4 deletions

View File

@@ -64,15 +64,18 @@ public class WalletPrivacyPreferenceController extends TogglePreferenceControlle
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
if (CustomizableLockScreenUtils.isFeatureEnabled(mContext)) { if (CustomizableLockScreenUtils.isFeatureEnabled(mContext)) {
return UNSUPPORTED_ON_DEVICE; return UNSUPPORTED_ON_DEVICE;
} else if (!isEnabled()) {
return UNSUPPORTED_ON_DEVICE;
} else if (!isSecure()) {
return DISABLED_DEPENDENT_SETTING;
} }
return AVAILABLE;
return isEnabled() && isSecure() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
} }
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
super.updateState(preference); super.updateState(preference);
preference.setEnabled(getAvailabilityStatus() != DISABLED_DEPENDENT_SETTING); preference.setEnabled(getAvailabilityStatus() == AVAILABLE);
refreshSummary(preference); refreshSummary(preference);
} }

View File

@@ -141,11 +141,29 @@ public class WalletPrivacyPreferenceControllerTest {
} }
@Test @Test
public void getAvailabilityStatus_noService_returnsDisabled() { public void getAvailabilityStatus_noServiceAndIsSecure_returnsUnsupported() {
when(mClient.isWalletServiceAvailable()).thenReturn(false); when(mClient.isWalletServiceAvailable()).thenReturn(false);
when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true); when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(
BasePreferenceController.UNSUPPORTED_ON_DEVICE);
}
@Test
public void getAvailabilityStatus_hasServiceButNotSecure_returnsDisabled() {
when(mClient.isWalletServiceAvailable()).thenReturn(true);
when(mLockPatternUtils.isSecure(anyInt())).thenReturn(false);
assertThat(mController.getAvailabilityStatus()).isEqualTo( assertThat(mController.getAvailabilityStatus()).isEqualTo(
BasePreferenceController.DISABLED_DEPENDENT_SETTING); BasePreferenceController.DISABLED_DEPENDENT_SETTING);
} }
@Test
public void getAvailabilityStatus_hasServiceAndIsSecure_returnsAvailable() {
when(mClient.isWalletServiceAvailable()).thenReturn(true);
when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(
BasePreferenceController.AVAILABLE);
}
} }