Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f172189e authored by Zoey Chen's avatar Zoey Chen
Browse files

[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
parent b04d06a4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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"
+17 −36
Original line number Diff line number Diff line
@@ -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,34 +179,8 @@ 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());
    }
    }

    @Override
    public boolean isAvailable() {
@@ -221,9 +195,11 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController

    @Override
    public void onAirplaneModeChanged(boolean airplaneModeEnabled) {
        if (mIsAirplaneModeOn != airplaneModeEnabled) {
            mIsAirplaneModeOn = airplaneModeEnabled;
            update();
        }
    }

    @Override
    public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
@@ -239,14 +215,19 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController

    @Override
    public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
        if (DataServiceUtils.shouldUpdateEntityList(mUiccInfoEntityList, uiccInfoEntityList)) {
            mUiccInfoEntityList = uiccInfoEntityList;
            update();
        }
    }

    @Override
    public void onAllMobileNetworkInfoChanged(
            List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
        if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList,
                mobileNetworkInfoEntityList)) {
            mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
            update();
        }
    }
}