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:
@@ -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) {
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user