[Settings] eSIM transfer: MobileNetworkSummaryController
1. MobileNetworkSummaryController
- No matter single SIM or multiple SIMs, always launch MobileNetworkListFragment
- Remove the + and |
APM off: https://screenshot.googleplex.com/7M8qzsXFesy3nDi.png
APM on: https://screenshot.googleplex.com/C4ZnbpgUTPzTijL.png
2. Fix the APM mode
Bug: 244786012
Bug: 261810065
Test: make RunSettingsRoboTests ROBOTEST_FILTER=MobileNetworkSummaryControllerTest
Change-Id: I8e5c9b8a58ef13b6deaea284e9793077b2da58f6
diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml
index 981afb3..a4b5faa 100644
--- a/res/xml/network_provider_internet.xml
+++ b/res/xml/network_provider_internet.xml
@@ -42,7 +42,7 @@
settings:keywords="@string/calls_and_sms"
settings:useAdminDisabledSummary="true" />
- <com.android.settings.widget.AddPreference
+ <com.android.settingslib.RestrictedPreference
android:key="mobile_network_list"
android:title="@string/provider_network_settings_title"
android:summary="@string/summary_placeholder"
diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java
index 0bb1bb3..0e2ea09 100644
--- a/src/com/android/settings/network/MobileNetworkSummaryController.java
+++ b/src/com/android/settings/network/MobileNetworkSummaryController.java
@@ -37,7 +37,7 @@
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.AddPreference;
+import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -58,7 +58,7 @@
private final MetricsFeatureProvider mMetricsFeatureProvider;
private UserManager mUserManager;
- private AddPreference mPreference;
+ private RestrictedPreference mPreference;
private MobileNetworkRepository mMobileNetworkRepository;
private List<SubscriptionInfoEntity> mSubInfoEntityList;
@@ -89,6 +89,7 @@
mUserManager = context.getSystemService(UserManager.class);
mLifecycleOwner = lifecycleOwner;
mMobileNetworkRepository = MobileNetworkRepository.create(context, this);
+ mIsAirplaneModeOn = mMobileNetworkRepository.isAirplaneModeOn();
if (lifecycle != null) {
lifecycle.addObserver(this);
}
@@ -152,7 +153,6 @@
private void initPreference() {
refreshSummary(mPreference);
mPreference.setOnPreferenceClickListener(null);
- mPreference.setOnAddClickListener(null);
mPreference.setFragment(null);
mPreference.setEnabled(!mIsAirplaneModeOn);
}
@@ -179,33 +179,7 @@
return;
}
- // We have one or more existing subscriptions, so we want the plus button if eSIM is
- // supported.
- if (MobileNetworkUtils.showEuiccSettingsDetecting(mContext)) {
- mPreference.setAddWidgetEnabled(!mIsAirplaneModeOn);
- mPreference.setOnAddClickListener(p -> {
- logPreferenceClick(p);
- startAddSimFlow();
- });
- }
-
- if (mSubInfoEntityList.size() == 1) {
- mPreference.setOnPreferenceClickListener((Preference pref) -> {
- logPreferenceClick(pref);
- SubscriptionInfoEntity info = mSubInfoEntityList.get(0);
- if (info.isEmbedded || mUiccInfoEntityList.get(0).isActive
- || mMobileNetworkInfoEntityList.get(0).showToggleForPhysicalSim) {
- MobileNetworkUtils.launchMobileNetworkSettings(mContext, info);
- return true;
- }
-
- SubscriptionUtil.startToggleSubscriptionDialogActivity(
- mContext, Integer.parseInt(info.subId), true);
- return true;
- });
- } else {
- mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());
- }
+ mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());
}
@Override
@@ -221,8 +195,10 @@
@Override
public void onAirplaneModeChanged(boolean airplaneModeEnabled) {
- mIsAirplaneModeOn = airplaneModeEnabled;
- update();
+ if (mIsAirplaneModeOn != airplaneModeEnabled) {
+ mIsAirplaneModeOn = airplaneModeEnabled;
+ update();
+ }
}
@Override
@@ -239,14 +215,19 @@
@Override
public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
- mUiccInfoEntityList = uiccInfoEntityList;
- update();
+ if (DataServiceUtils.shouldUpdateEntityList(mUiccInfoEntityList, uiccInfoEntityList)) {
+ mUiccInfoEntityList = uiccInfoEntityList;
+ update();
+ }
}
@Override
public void onAllMobileNetworkInfoChanged(
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
- mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
- update();
+ if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList,
+ mobileNetworkInfoEntityList)) {
+ mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
+ update();
+ }
}
}