[Settings] Remove MobileNetworkActivity
- remove the component name when launching the intent, using the action intent to replace.
- remove MobileNetworkActivity and rename SubscriptionSettingsActivity as MobileNetworkActivity.
Bug: 210593601
Test: atest
Change-Id: Icb7adaf9f7c7dfe01ff5c133aee8387c1663546c
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 4e919d6..8d04ab8 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -19,12 +19,17 @@
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.ims.ImsRcsManager;
import android.text.TextUtils;
import android.util.FeatureFlagUtils;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.FeatureFlags;
import com.android.settings.enterprise.EnterprisePrivacySettings;
+import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.security.SecuritySettingsFeatureProvider;
@@ -304,7 +309,51 @@
public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ }
public static class MobileNetworkListActivity extends SettingsActivity {}
public static class PowerMenuSettingsActivity extends SettingsActivity {}
- public static class SubscriptionSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class MobileNetworkActivity extends SettingsActivity {
+
+ public static final String EXTRA_MMS_MESSAGE = "mms_message";
+ public static final String EXTRA_SHOW_CAPABILITY_DISCOVERY_OPT_IN =
+ "show_capability_discovery_opt_in";
+
+ @Override
+ public Intent getIntent() {
+ final Intent intent = new Intent(super.getIntent());
+ int subId = intent.getIntExtra(android.provider.Settings.EXTRA_SUB_ID,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ SubscriptionInfo subInfo = SubscriptionUtil.getSubscriptionOrDefault(
+ getApplicationContext(), subId);
+ CharSequence title = SubscriptionUtil.getUniqueSubscriptionDisplayName(
+ subInfo, getApplicationContext());
+ intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, title);
+ intent.putExtra(android.provider.Settings.EXTRA_SUB_ID, subId);
+ if (android.provider.Settings.ACTION_MMS_MESSAGE_SETTING.equals(intent.getAction())) {
+ // highlight "mms_message" preference.
+ intent.putExtra(EXTRA_FRAGMENT_ARG_KEY, EXTRA_MMS_MESSAGE);
+ }
+
+ if (doesIntentContainOptInAction(intent)) {
+ intent.putExtra(EXTRA_SHOW_CAPABILITY_DISCOVERY_OPT_IN,
+ maybeShowContactDiscoveryDialog(subId));
+ }
+
+ return intent;
+ }
+
+ private boolean maybeShowContactDiscoveryDialog(int subId) {
+ // If this activity was launched using ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN, show the
+ // associated dialog only if the opt-in has not been granted yet.
+ return MobileNetworkUtils.isContactDiscoveryVisible(getApplicationContext(), subId)
+ // has the user already enabled this configuration?
+ && !MobileNetworkUtils.isContactDiscoveryEnabled(
+ getApplicationContext(), subId);
+ }
+
+ public static boolean doesIntentContainOptInAction(Intent intent) {
+ String intentAction = (intent != null ? intent.getAction() : null);
+ return TextUtils.equals(intentAction,
+ ImsRcsManager.ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN);
+ }
+ }
/**
* Activity for BugReportHandlerPicker.