[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.