diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java index 6df100ca4ec..421963eb31c 100644 --- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java @@ -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 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) { diff --git a/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java index 9a5399c5f07..05e2f246dbd 100644 --- a/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java @@ -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 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)); } }