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++) {
|
for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) {
|
||||||
final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
|
final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
|
||||||
simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
|
simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
|
||||||
simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
|
setPhoneNumber(simSlotNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,24 +93,15 @@ public class PhoneNumberPreferenceController extends BasePreferenceController {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CharSequence getFirstPhoneNumber() {
|
private void setPhoneNumber(int simSlot) {
|
||||||
final List<SubscriptionInfo> subscriptionInfoList =
|
final Preference simStatusPreference = mPreferenceList.get(simSlot);
|
||||||
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) {
|
|
||||||
final SubscriptionInfo subscriptionInfo = getSubscriptionInfo(simSlot);
|
final SubscriptionInfo subscriptionInfo = getSubscriptionInfo(simSlot);
|
||||||
|
simStatusPreference.setEnabled(subscriptionInfo != null);
|
||||||
if (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) {
|
private CharSequence getPreferenceTitle(int simSlot) {
|
||||||
|
@@ -37,6 +37,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
import com.android.settings.testutils.ResourcesUtils;
|
import com.android.settings.testutils.ResourcesUtils;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -135,25 +136,23 @@ public class PhoneNumberPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowUnknown() {
|
public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowNotAvailable() {
|
||||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
|
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
|
verify(mPreference).setSummary(mContext.getString(R.string.device_info_not_available));
|
||||||
mContext, "device_info_default"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSummary_getEmptySubscriptionInfo_shouldShowUnknown() {
|
public void getSummary_getEmptySubscriptionInfo_shouldShowNotAvailable() {
|
||||||
List<SubscriptionInfo> infos = new ArrayList<>();
|
List<SubscriptionInfo> infos = new ArrayList<>();
|
||||||
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(infos);
|
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(infos);
|
||||||
|
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
|
verify(mPreference).setSummary(mContext.getString(R.string.device_info_not_available));
|
||||||
mContext, "device_info_default"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user