[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.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 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
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;
}

View File

@@ -36,7 +36,6 @@ import androidx.preference.PreferenceCategory;
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 @@ public class NetworkProviderDownloadedSimListController extends
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);

View File

@@ -36,7 +36,7 @@ import androidx.preference.PreferenceCategory;
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 @@ public class NetworkProviderSimListController extends AbstractPreferenceControll
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;
});

View File

@@ -55,7 +55,6 @@ import androidx.preference.PreferenceScreen;
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 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
});
mSubsGearPref.setOnGearClickListener(p ->
startMobileNetworkActivity(mContext, subInfo.getSubscriptionId()));
MobileNetworkUtils.launchMobileNetworkSettings(mContext, subInfo));
}
if (!(mContext.getSystemService(UserManager.class)).isAdminUser()) {
@@ -335,14 +334,6 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
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);

View File

@@ -45,6 +45,7 @@ import android.graphics.drawable.LayerDrawable;
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.internal.util.ArrayUtils;
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 @@ public class MobileNetworkUtils {
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();
}
}