[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:keywords="@string/calls_and_sms"
settings:useAdminDisabledSummary="true" /> settings:useAdminDisabledSummary="true" />
<com.android.settings.widget.AddPreference <com.android.settingslib.RestrictedPreference
android:key="mobile_network_list" android:key="mobile_network_list"
android:title="@string/provider_network_settings_title" android:title="@string/provider_network_settings_title"
android:summary="@string/summary_placeholder" 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.dashboard.DashboardFragment;
import com.android.settings.network.telephony.MobileNetworkUtils; 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.settingslib.RestrictedPreference;
import com.android.settingslib.Utils; import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -58,7 +58,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
private final MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
private UserManager mUserManager; private UserManager mUserManager;
private AddPreference mPreference; private RestrictedPreference mPreference;
private MobileNetworkRepository mMobileNetworkRepository; private MobileNetworkRepository mMobileNetworkRepository;
private List<SubscriptionInfoEntity> mSubInfoEntityList; private List<SubscriptionInfoEntity> mSubInfoEntityList;
@@ -89,6 +89,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
mUserManager = context.getSystemService(UserManager.class); mUserManager = context.getSystemService(UserManager.class);
mLifecycleOwner = lifecycleOwner; mLifecycleOwner = lifecycleOwner;
mMobileNetworkRepository = MobileNetworkRepository.create(context, this); mMobileNetworkRepository = MobileNetworkRepository.create(context, this);
mIsAirplaneModeOn = mMobileNetworkRepository.isAirplaneModeOn();
if (lifecycle != null) { if (lifecycle != null) {
lifecycle.addObserver(this); lifecycle.addObserver(this);
} }
@@ -152,7 +153,6 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
private void initPreference() { private void initPreference() {
refreshSummary(mPreference); refreshSummary(mPreference);
mPreference.setOnPreferenceClickListener(null); mPreference.setOnPreferenceClickListener(null);
mPreference.setOnAddClickListener(null);
mPreference.setFragment(null); mPreference.setFragment(null);
mPreference.setEnabled(!mIsAirplaneModeOn); mPreference.setEnabled(!mIsAirplaneModeOn);
} }
@@ -179,33 +179,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
return; return;
} }
// We have one or more existing subscriptions, so we want the plus button if eSIM is mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());
// 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());
}
} }
@Override @Override
@@ -221,8 +195,10 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
@Override @Override
public void onAirplaneModeChanged(boolean airplaneModeEnabled) { public void onAirplaneModeChanged(boolean airplaneModeEnabled) {
mIsAirplaneModeOn = airplaneModeEnabled; if (mIsAirplaneModeOn != airplaneModeEnabled) {
update(); mIsAirplaneModeOn = airplaneModeEnabled;
update();
}
} }
@Override @Override
@@ -239,14 +215,19 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
@Override @Override
public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) { public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
mUiccInfoEntityList = uiccInfoEntityList; if (DataServiceUtils.shouldUpdateEntityList(mUiccInfoEntityList, uiccInfoEntityList)) {
update(); mUiccInfoEntityList = uiccInfoEntityList;
update();
}
} }
@Override @Override
public void onAllMobileNetworkInfoChanged( public void onAllMobileNetworkInfoChanged(
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) { List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList; if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList,
update(); mobileNetworkInfoEntityList)) {
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
update();
}
} }
} }