Handle NFC settings page routing for the default

wallet role.

Bug: 326592915
Test: SettingsRoboTestStub
Change-Id: I24d9dcfc8cc90f110d4fef036aaabbf8b4f64926
This commit is contained in:
Omer Ozer
2024-02-28 01:37:07 +00:00
parent 08b25d04ff
commit eb0672b36d

View File

@@ -38,6 +38,7 @@ import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.permission.flags.Flags;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@@ -56,6 +57,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.settings.Settings.WifiSettingsActivity; import com.android.settings.Settings.WifiSettingsActivity;
import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.connecteddevice.NfcAndPaymentFragment;
import com.android.settings.core.OnActivityResultListener; import com.android.settings.core.OnActivityResultListener;
import com.android.settings.core.SettingsBaseActivity; import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.core.SubSettingLauncher; 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.dashboard.DashboardFeatureProvider;
import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SettingsHomepageActivity;
import com.android.settings.homepage.TopLevelSettings; import com.android.settings.homepage.TopLevelSettings;
import com.android.settings.nfc.PaymentSettings;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.PasswordUtils; import com.android.settings.password.PasswordUtils;
import com.android.settings.wfd.WifiDisplaySettings; import com.android.settings.wfd.WifiDisplaySettings;
@@ -828,12 +831,29 @@ public class SettingsActivity extends SettingsBaseActivity
if (ai == null || ai.metaData == null) return; if (ai == null || ai.metaData == null) return;
mFragmentClass = ai.metaData.getString(META_DATA_KEY_FRAGMENT_CLASS); mFragmentClass = ai.metaData.getString(META_DATA_KEY_FRAGMENT_CLASS);
mHighlightMenuKey = ai.metaData.getString(META_DATA_KEY_HIGHLIGHT_MENU_KEY); 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) { } catch (NameNotFoundException nnfe) {
// No recovery // No recovery
Log.d(LOG_TAG, "Cannot get Metadata for: " + getComponentName().toString()); 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 // give subclasses access to the Next button
public boolean hasNextButton() { public boolean hasNextButton() {
return mNextButton != null; return mNextButton != null;