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

This commit is contained in:
Chaohui Wang
2024-10-11 02:53:50 +00:00
committed by Android (Google) Code Review
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));
}
}