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

Commit 3dc4d36a authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "Disable the phone number when no subscription" into main

parents ec151702 8aeca8e7
Loading
Loading
Loading
Loading
+7 −16
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
        for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) {
            final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
            simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
            simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
            setPhoneNumber(simSlotNumber);
        }
    }

@@ -93,24 +93,15 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
        return true;
    }

    private CharSequence getFirstPhoneNumber() {
        final List<SubscriptionInfo> subscriptionInfoList =
                mSubscriptionManager.getActiveSubscriptionInfoList();
        if (subscriptionInfoList == null || subscriptionInfoList.isEmpty()) {
            return mContext.getText(R.string.device_info_default);
        }

        // For now, We only return first result for slice view.
        return getFormattedPhoneNumber(subscriptionInfoList.get(0));
    }

    private CharSequence getPhoneNumber(int simSlot) {
    private void setPhoneNumber(int simSlot) {
        final Preference simStatusPreference = mPreferenceList.get(simSlot);
        final SubscriptionInfo subscriptionInfo = getSubscriptionInfo(simSlot);
        simStatusPreference.setEnabled(subscriptionInfo != null);
        if (subscriptionInfo == null) {
            return mContext.getText(R.string.device_info_default);
            simStatusPreference.setSummary(mContext.getString(R.string.device_info_not_available));
        } else {
            simStatusPreference.setSummary(getFormattedPhoneNumber(subscriptionInfo));
        }

        return getFormattedPhoneNumber(subscriptionInfo);
    }

    private CharSequence getPreferenceTitle(int simSlot) {
+5 −6
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.settings.R;
import com.android.settings.testutils.ResourcesUtils;

import org.junit.Before;
@@ -135,25 +136,23 @@ public class PhoneNumberPreferenceControllerTest {
    }

    @Test
    public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowUnknown() {
    public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowNotAvailable() {
        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
        mController.displayPreference(mScreen);

        mController.updateState(mPreference);

        verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
                mContext, "device_info_default"));
        verify(mPreference).setSummary(mContext.getString(R.string.device_info_not_available));
    }

    @Test
    public void getSummary_getEmptySubscriptionInfo_shouldShowUnknown() {
    public void getSummary_getEmptySubscriptionInfo_shouldShowNotAvailable() {
        List<SubscriptionInfo> infos = new ArrayList<>();
        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(infos);

        mController.displayPreference(mScreen);
        mController.updateState(mPreference);

        verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
                mContext, "device_info_default"));
        verify(mPreference).setSummary(mContext.getString(R.string.device_info_not_available));
    }
}