[Settings] Code refactor

1. Adjust test case for improving testing performance
2. Some code refactor for avoiding from NullPointerException

Bug: 260540995
Test: auto and local
Change-Id: I18bd474304194137166c3c03ff828abdcd58473e
This commit is contained in:
Bonian Chen
2022-12-08 05:42:34 +00:00
parent b04d06a470
commit 09b0edbdee
2 changed files with 25 additions and 8 deletions

View File

@@ -72,6 +72,9 @@ public class SimStatusPreferenceController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
if (getSimSlotIndex() == SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
return UNSUPPORTED_ON_DEVICE;
}
boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) &&
mContext.getSystemService(UserManager.class).isAdminUser() &&
!Utils.isWifiOnly(mContext);
@@ -81,7 +84,7 @@ public class SimStatusPreferenceController extends BasePreferenceController {
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
if ((!SubscriptionUtil.isSimHardwareVisible(mContext)) || (mSlotSimStatus == null)) {
return;
}
String basePreferenceKey = mSlotSimStatus.getPreferenceKey(
@@ -133,17 +136,23 @@ public class SimStatusPreferenceController extends BasePreferenceController {
R.string.sim_status_title);
}
private CharSequence getCarrierName(int simSlot) {
private SubscriptionInfo getSubscriptionInfo(int simSlot) {
final List<SubscriptionInfo> subscriptionInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList();
if (subscriptionInfoList != null) {
for (SubscriptionInfo info : subscriptionInfoList) {
if (info.getSimSlotIndex() == simSlot) {
return info.getCarrierName();
return info;
}
}
}
return mContext.getText(R.string.device_info_not_available);
return null;
}
private CharSequence getCarrierName(int simSlot) {
SubscriptionInfo subInfo = getSubscriptionInfo(simSlot);
return (subInfo != null) ? subInfo.getCarrierName() :
mContext.getText(R.string.device_info_not_available);
}
@VisibleForTesting