diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 27a87f3b4e2..02205c1b63a 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; @@ -56,6 +57,7 @@ import com.android.internal.util.ArrayUtils; import com.android.settings.Settings.WifiSettingsActivity; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.applications.manageapplications.ManageApplications; +import com.android.settings.connecteddevice.NfcAndPaymentFragment; import com.android.settings.core.OnActivityResultListener; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.core.SubSettingLauncher; @@ -63,6 +65,7 @@ import com.android.settings.core.gateway.SettingsGateway; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.TopLevelSettings; +import com.android.settings.nfc.PaymentSettings; import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.PasswordUtils; import com.android.settings.wfd.WifiDisplaySettings; @@ -828,12 +831,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() + && TextUtils.equals(PaymentSettings.class.getName(), mFragmentClass); + } + + private void overrideContactlessPaymentRouting() { + mFragmentClass = NfcAndPaymentFragment.class.getName(); + } + // give subclasses access to the Next button public boolean hasNextButton() { return mNextButton != null;