Update wallet setting availability

For devices that don't support wallet, don't even show the setting in
a disabled state, which can cause confusion and lead the user to
believe they can enable it somehow.

Fixes: 251089510
Test: WalletPrivacyPreferenceControllerTest
Change-Id: I5d60957f24712bb4d75e72fa5f64cab35b6d6a5f
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);
+    }
 }