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 =