[Large Screen] Launch MobileNetworkSettings by SubSettingsLauncher
Test: atest
Bug: 197609014
Bug: 209606859
Change-Id: Icda934a26daeee13f663c986ebcbc92c952f9c2e
diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java
index 94d1ff5..1a85a7f 100644
--- a/src/com/android/settings/network/MobileNetworkSummaryController.java
+++ b/src/com/android/settings/network/MobileNetworkSummaryController.java
@@ -36,7 +36,7 @@
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.network.helper.SubscriptionAnnotation;
-import com.android.settings.network.telephony.MobileNetworkActivity;
+import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.AddPreference;
import com.android.settingslib.Utils;
@@ -190,12 +190,8 @@
SubscriptionAnnotation info = subs.get(0);
if (info.getSubInfo().isEmbedded() || info.isActive()
|| mStatusCache.isPhysicalSimDisableSupport()) {
- final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
- intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId());
- // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane.
- MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(mContext, intent,
- null);
- mContext.startActivity(intent);
+ MobileNetworkUtils.launchMobileNetworkSettings(mContext,
+ info.getSubInfo());
return true;
}
diff --git a/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java b/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java
index 1bb50cb..48cd8aa 100644
--- a/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java
+++ b/src/com/android/settings/network/NetworkProviderDownloadedSimListController.java
@@ -36,7 +36,6 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -128,11 +127,7 @@
pref.setSummary(getSummary(subId));
pref.setOnPreferenceClickListener(clickedPref -> {
- final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
- intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId());
- // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane.
- MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(mContext, intent, null);
- mContext.startActivity(intent);
+ MobileNetworkUtils.launchMobileNetworkSettings(mContext, info);
return true;
});
mPreferences.put(subId, pref);
diff --git a/src/com/android/settings/network/NetworkProviderSimListController.java b/src/com/android/settings/network/NetworkProviderSimListController.java
index d6eaab8..77d665a 100644
--- a/src/com/android/settings/network/NetworkProviderSimListController.java
+++ b/src/com/android/settings/network/NetworkProviderSimListController.java
@@ -36,7 +36,7 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.network.telephony.MobileNetworkActivity;
+import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -126,12 +126,7 @@
SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId,
true);
} else {
- final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
- intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId());
- // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane.
- MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(mContext, intent,
- null);
- mContext.startActivity(intent);
+ MobileNetworkUtils.launchMobileNetworkSettings(mContext, info);
}
return true;
});
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index 5541888..87c4697 100644
--- a/src/com/android/settings/network/SubscriptionsPreferenceController.java
+++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java
@@ -55,7 +55,6 @@
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.network.telephony.DataConnectivityListener;
-import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.SignalStrengthListener;
import com.android.settings.network.telephony.TelephonyDisplayInfoListener;
@@ -237,7 +236,7 @@
});
mSubsGearPref.setOnGearClickListener(p ->
- startMobileNetworkActivity(mContext, subInfo.getSubscriptionId()));
+ MobileNetworkUtils.launchMobileNetworkSettings(mContext, subInfo));
}
if (!(mContext.getSystemService(UserManager.class)).isAdminUser()) {
@@ -335,14 +334,6 @@
mSubsGearPref.setSummary("");
}
- private static void startMobileNetworkActivity(Context context, int subId) {
- final Intent intent = new Intent(context, MobileNetworkActivity.class);
- intent.putExtra(Settings.EXTRA_SUB_ID, subId);
- // MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane.
- MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(context, intent, null);
- context.startActivity(intent);
- }
-
@VisibleForTesting
boolean shouldInflateSignalStrength(int subId) {
return SignalStrengthUtil.shouldInflateSignalStrength(mContext, subId);
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index 658f650..e2d158d 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -45,6 +45,7 @@
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
+import android.os.Bundle;
import android.os.PersistableBundle;
import android.os.SystemClock;
import android.os.SystemProperties;
@@ -73,9 +74,11 @@
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
+import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import com.android.settingslib.graph.SignalDrawable;
import com.android.settingslib.utils.ThreadUtils;
@@ -1008,4 +1011,21 @@
return context.getResources().getString(resId);
}
+ public static void launchMobileNetworkSettings(Context context, SubscriptionInfo info) {
+ final int subId = info.getSubscriptionId();
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ Log.d(TAG, "launchMobileNetworkSettings fail, subId is invalid");
+ return;
+ }
+
+ final Bundle extra = new Bundle();
+ extra.putInt(Settings.EXTRA_SUB_ID, subId);
+ new SubSettingLauncher(context)
+ .setTitleText(SubscriptionUtil.getUniqueSubscriptionDisplayName(info, context))
+ .setDestination(MobileNetworkSettings.class.getCanonicalName())
+ .setSourceMetricsCategory(Instrumentable.METRICS_CATEGORY_UNKNOWN)
+ .setArguments(extra)
+ .launch();
+ }
+
}