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);
+    }
 }