[Large Screen] Launch MobileNetworkSettings by SubSettingsLauncher

Test: atest
Bug: 197609014
Bug: 209606859
Change-Id: Icda934a26daeee13f663c986ebcbc92c952f9c2e
This commit is contained in:
Zoey Chen
2021-11-22 18:39:00 +08:00
parent 989dd669b2
commit 6f914da06a
5 changed files with 27 additions and 30 deletions

View File

@@ -36,7 +36,7 @@ import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.network.helper.SubscriptionAnnotation; 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.overlay.FeatureFactory;
import com.android.settings.widget.AddPreference; import com.android.settings.widget.AddPreference;
import com.android.settingslib.Utils; import com.android.settingslib.Utils;
@@ -190,12 +190,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
SubscriptionAnnotation info = subs.get(0); SubscriptionAnnotation info = subs.get(0);
if (info.getSubInfo().isEmbedded() || info.isActive() if (info.getSubInfo().isEmbedded() || info.isActive()
|| mStatusCache.isPhysicalSimDisableSupport()) { || mStatusCache.isPhysicalSimDisableSupport()) {
final Intent intent = new Intent(mContext, MobileNetworkActivity.class); MobileNetworkUtils.launchMobileNetworkSettings(mContext,
intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId()); info.getSubInfo());
// MobileNetworkActivity is singleTask, set SplitPairRule to show in 2-pane.
MobileNetworkTwoPaneUtils.registerTwoPaneForMobileNetwork(mContext, intent,
null);
mContext.startActivity(intent);
return true; return true;
} }

View File

@@ -36,7 +36,6 @@ import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -128,11 +127,7 @@ public class NetworkProviderDownloadedSimListController extends
pref.setSummary(getSummary(subId)); pref.setSummary(getSummary(subId));
pref.setOnPreferenceClickListener(clickedPref -> { pref.setOnPreferenceClickListener(clickedPref -> {
final Intent intent = new Intent(mContext, MobileNetworkActivity.class); MobileNetworkUtils.launchMobileNetworkSettings(mContext, info);
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);
return true; return true;
}); });
mPreferences.put(subId, pref); mPreferences.put(subId, pref);

View File

@@ -36,7 +36,7 @@ import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R; 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.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -126,12 +126,7 @@ public class NetworkProviderSimListController extends AbstractPreferenceControll
SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId, SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId,
true); true);
} else { } else {
final Intent intent = new Intent(mContext, MobileNetworkActivity.class); MobileNetworkUtils.launchMobileNetworkSettings(mContext, info);
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);
} }
return true; return true;
}); });

View File

@@ -55,7 +55,6 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.network.telephony.DataConnectivityListener; 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.MobileNetworkUtils;
import com.android.settings.network.telephony.SignalStrengthListener; import com.android.settings.network.telephony.SignalStrengthListener;
import com.android.settings.network.telephony.TelephonyDisplayInfoListener; import com.android.settings.network.telephony.TelephonyDisplayInfoListener;
@@ -237,7 +236,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
}); });
mSubsGearPref.setOnGearClickListener(p -> mSubsGearPref.setOnGearClickListener(p ->
startMobileNetworkActivity(mContext, subInfo.getSubscriptionId())); MobileNetworkUtils.launchMobileNetworkSettings(mContext, subInfo));
} }
if (!(mContext.getSystemService(UserManager.class)).isAdminUser()) { if (!(mContext.getSystemService(UserManager.class)).isAdminUser()) {
@@ -335,14 +334,6 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
mSubsGearPref.setSummary(""); 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 @VisibleForTesting
boolean shouldInflateSignalStrength(int subId) { boolean shouldInflateSignalStrength(int subId) {
return SignalStrengthUtil.shouldInflateSignalStrength(mContext, subId); return SignalStrengthUtil.shouldInflateSignalStrength(mContext, subId);

View File

@@ -45,6 +45,7 @@ import android.graphics.drawable.LayerDrawable;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.Network; import android.net.Network;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.os.Bundle;
import android.os.PersistableBundle; import android.os.PersistableBundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.os.SystemProperties; import android.os.SystemProperties;
@@ -73,9 +74,11 @@ import com.android.internal.util.ArrayUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.ims.WifiCallingQueryImsState; import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants; 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.development.DevelopmentSettingsEnabler;
import com.android.settingslib.graph.SignalDrawable; import com.android.settingslib.graph.SignalDrawable;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
@@ -1008,4 +1011,21 @@ public class MobileNetworkUtils {
return context.getResources().getString(resId); 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();
}
} }