Disable the phone number when no subscription

To align with SIM status, if no sim in this slot, show "Not available"
and disable instead.

Fix: 333386151
Flag: EXEMPT bug fix
Test: manual - on about phone
Test: unit test
Change-Id: I5053863cc69ff468036df87a8c87447ab0c2aaed
This commit is contained in:
Chaohui Wang
2024-10-10 14:41:24 +08:00
parent 8dde780a3f
commit 8aeca8e755
2 changed files with 12 additions and 22 deletions

View File

@@ -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) {

View File

@@ -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));
}
}