Don't show default payment component in search if Wallet role is enabled

Bug: 372254720
Test: atest PaymentSettingsTest
Flag: android.permission.flags.wallet_role_enabled
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:1133353e5df414936d6a69d50dcb6e42ad4d0370)
Merged-In: I4044d8fcd95db215d4a06b335b3cb96f8a5e3697
Change-Id: I4044d8fcd95db215d4a06b335b3cb96f8a5e3697
diff --git a/src/com/android/settings/nfc/PaymentSettings.java b/src/com/android/settings/nfc/PaymentSettings.java
index a1f75bc..28df8ed 100644
--- a/src/com/android/settings/nfc/PaymentSettings.java
+++ b/src/com/android/settings/nfc/PaymentSettings.java
@@ -30,6 +30,7 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
+import com.android.internal.hidden_from_bootclasspath.android.permission.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -120,6 +121,9 @@
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
+                    if (Flags.walletRoleEnabled()) {
+                        return false;
+                    }
                     final UserManager userManager = context.getSystemService(UserManager.class);
                     final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
                     if (myUserInfo.isGuest()) {
diff --git a/tests/robotests/src/com/android/settings/nfc/PaymentSettingsTest.java b/tests/robotests/src/com/android/settings/nfc/PaymentSettingsTest.java
index 458bc93..7380c66 100644
--- a/tests/robotests/src/com/android/settings/nfc/PaymentSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/nfc/PaymentSettingsTest.java
@@ -28,6 +28,10 @@
 import android.content.pm.UserInfo;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
@@ -36,6 +40,7 @@
 import com.android.settings.testutils.shadow.ShadowNfcAdapter;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -58,6 +63,9 @@
 
     private Context mContext;
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Mock
     private PackageManager mPackageManager;
 
@@ -98,7 +106,19 @@
     }
 
     @Test
-    public void getNonIndexableKey_primaryUser_returnsTrue() {
+    @RequiresFlagsEnabled(android.permission.flags.Flags.FLAG_WALLET_ROLE_ENABLED)
+    public void getNonIndexableKey_primaryUser_returnsFalse_walletRoleEnabled() {
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true);
+
+        final List<String> niks =
+                PaymentSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
+
+        assertThat(niks).containsAtLeast(FOREGROUND_KEY, PAYMENT_KEY);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(android.permission.flags.Flags.FLAG_WALLET_ROLE_ENABLED)
+    public void getNonIndexableKey_primaryUser_returnsTrue_walletRoleDisabled() {
         when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true);
 
         final List<String> niks =