[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
This commit is contained in:
Zoey Chen
2022-12-08 10:14:19 +00:00
parent b04d06a470
commit f172189e8e
2 changed files with 18 additions and 37 deletions

View File

@@ -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"

View File

@@ -37,7 +37,7 @@ import com.android.settings.core.PreferenceControllerMixin;
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 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
private final MetricsFeatureProvider mMetricsFeatureProvider;
private UserManager mUserManager;
private AddPreference mPreference;
private RestrictedPreference mPreference;
private MobileNetworkRepository mMobileNetworkRepository;
private List<SubscriptionInfoEntity> mSubInfoEntityList;
@@ -89,6 +89,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
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 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
private void initPreference() {
refreshSummary(mPreference);
mPreference.setOnPreferenceClickListener(null);
mPreference.setOnAddClickListener(null);
mPreference.setFragment(null);
mPreference.setEnabled(!mIsAirplaneModeOn);
}
@@ -179,33 +179,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
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 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
@Override
public void onAirplaneModeChanged(boolean airplaneModeEnabled) {
mIsAirplaneModeOn = airplaneModeEnabled;
update();
if (mIsAirplaneModeOn != airplaneModeEnabled) {
mIsAirplaneModeOn = airplaneModeEnabled;
update();
}
}
@Override
@@ -239,14 +215,19 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
@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();
}
}
}