Merge "Update wallet setting availability" into tm-qpr-dev am: 61f81ffb07
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20874103
Change-Id: I1c586d8d135b6238662b228b2101ab4de4d369ff
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/display/WalletPrivacyPreferenceController.java b/src/com/android/settings/display/WalletPrivacyPreferenceController.java
index fe14a40..f40e838 100644
--- a/src/com/android/settings/display/WalletPrivacyPreferenceController.java
+++ b/src/com/android/settings/display/WalletPrivacyPreferenceController.java
@@ -64,15 +64,18 @@
public int getAvailabilityStatus() {
if (CustomizableLockScreenUtils.isFeatureEnabled(mContext)) {
return UNSUPPORTED_ON_DEVICE;
+ } else if (!isEnabled()) {
+ return UNSUPPORTED_ON_DEVICE;
+ } else if (!isSecure()) {
+ return DISABLED_DEPENDENT_SETTING;
}
-
- return isEnabled() && isSecure() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+ return AVAILABLE;
}
@Override
public void updateState(Preference preference) {
super.updateState(preference);
- preference.setEnabled(getAvailabilityStatus() != DISABLED_DEPENDENT_SETTING);
+ preference.setEnabled(getAvailabilityStatus() == AVAILABLE);
refreshSummary(preference);
}
diff --git a/tests/robotests/src/com/android/settings/display/WalletPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/WalletPrivacyPreferenceControllerTest.java
index 73f4946..32b8b66 100644
--- a/tests/robotests/src/com/android/settings/display/WalletPrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/WalletPrivacyPreferenceControllerTest.java
@@ -141,11 +141,29 @@
}
@Test
- public void getAvailabilityStatus_noService_returnsDisabled() {
+ public void getAvailabilityStatus_noServiceAndIsSecure_returnsUnsupported() {
when(mClient.isWalletServiceAvailable()).thenReturn(false);
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(
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);
+ }
}