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

Commit edaeb41f authored by tom hsu's avatar tom hsu
Browse files

[Provider Model] Fix preference summary not update.

 - When activity enter onPause, the status will not update, then
 sub id of TelephonyManager keep same value after activity go back.

 - Solution: Everytime update the UI, and always get new
 TelephonyManager with the latest sub id.

Bug: 181196545
Test: atest passed.
Test: Manual test passed.
Change-Id: I1d65bbc06af66b97b6c85f40bed394da03213d06
parent 54e4a309
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -257,9 +257,10 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
    }

    private CharSequence getMobilePreferenceSummary(int subId) {
        TelephonyManager tm = mTelephonyManager.createForSubscriptionId(subId);
        String result = mSubsPrefCtrlInjector.getNetworkType(
                mContext, mConfig, mTelephonyDisplayInfo, subId);
        if (!mTelephonyManager.isDataEnabled()) {
        if (!tm.isDataEnabled()) {
            return mContext.getString(R.string.mobile_data_off_summary);
        }
        if (!result.isEmpty() && mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext)) {
+2 −3
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@ public class SubscriptionsPreferenceControllerTest {
    private LifecycleOwner mLifecycleOwner;
    @Mock
    private WifiPickerTrackerHelper mWifiPickerTrackerHelper;

    private LifecycleRegistry mLifecycleRegistry;
    private int mOnChildUpdatedCount;
    private Context mContext;
@@ -428,7 +429,6 @@ public class SubscriptionsPreferenceControllerTest {
        doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
        doReturn(networkType)
                .when(sInjector).getNetworkType(any(), any(), any(), anyInt());
        when(mTelephonyManager.isDataEnabled()).thenReturn(true);

        mController.onResume();
        mController.displayPreference(mPreferenceScreen);
@@ -447,7 +447,7 @@ public class SubscriptionsPreferenceControllerTest {
        final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
        doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
        doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
        setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true,
        setupGetIconConditions(sub.get(0).getSubscriptionId(), false, false,
                TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
        doReturn(networkType)
                .when(sInjector).getNetworkType(any(), any(), any(), anyInt());
@@ -534,7 +534,6 @@ public class SubscriptionsPreferenceControllerTest {
        doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
        doReturn(networkType)
                .when(sInjector).getNetworkType(any(), any(), any(), anyInt());
        when(mTelephonyManager.isDataEnabled()).thenReturn(true);

        mController.onResume();
        mController.displayPreference(mPreferenceScreen);