From c6eef3a13acdbb75a87f2eb4e3789c4dc88f6d85 Mon Sep 17 00:00:00 2001 From: Omer Ozer Date: Fri, 23 Feb 2024 20:54:57 +0000 Subject: [PATCH] Reroute contactless payment fragments to nfc settings when the wallet role is enabled. Bug: 326592915 Test: SettingsRoboTestStub Change-Id: I06739f5194650281f057bf6299722fae5c6c241c --- src/com/android/settings/SettingsActivity.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 27a87f3b4e2..08155db1215 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -38,6 +38,7 @@ import android.os.AsyncTask; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; +import android.permission.flags.Flags; import android.text.TextUtils; import android.util.Log; import android.view.View; @@ -828,12 +829,29 @@ public class SettingsActivity extends SettingsBaseActivity if (ai == null || ai.metaData == null) return; mFragmentClass = ai.metaData.getString(META_DATA_KEY_FRAGMENT_CLASS); mHighlightMenuKey = ai.metaData.getString(META_DATA_KEY_HIGHLIGHT_MENU_KEY); + /* TODO(b/327036144) Once the Flags.walletRoleEnabled() is rolled out, we will replace + value for the fragment class within the com.android.settings.nfc.PaymentSettings + activity with com.android.settings.connecteddevice.NfcAndPaymentFragment so that this + code can be removed. + */ + if (shouldOverrideContactlessPaymentRouting()) { + overrideContactlessPaymentRouting(); + } } catch (NameNotFoundException nnfe) { // No recovery Log.d(LOG_TAG, "Cannot get Metadata for: " + getComponentName().toString()); } } + private boolean shouldOverrideContactlessPaymentRouting() { + return Flags.walletRoleEnabled() + && mFragmentClass.equals("com.android.settings.nfc.PaymentSettings"); + } + + private void overrideContactlessPaymentRouting() { + mFragmentClass = "com.android.settings.connecteddevice.NfcAndPaymentFragment"; + } + // give subclasses access to the Next button public boolean hasNextButton() { return mNextButton != null;