Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1133353e authored by James Willcox's avatar James Willcox
Browse files

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
Change-Id: I4044d8fcd95db215d4a06b335b3cb96f8a5e3697
parent aa7114cf
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import androidx.annotation.VisibleForTesting;
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 @@ public class PaymentSettings extends DashboardFragment {

                @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()) {
+21 −1
Original line number Diff line number Diff line
@@ -28,6 +28,10 @@ import android.content.pm.PackageManager;
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 androidx.preference.PreferenceScreen;
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 @@ public class PaymentSettingsTest {

    private Context mContext;

    @Rule
    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();

    @Mock
    private PackageManager mPackageManager;

@@ -98,7 +106,19 @@ public class PaymentSettingsTest {
    }

    @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 =