[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:
@@ -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
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.deviceinfo.simstatus;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -30,17 +31,22 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class SlotSimStatusTest {
|
||||
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
private Executor mExecutor;
|
||||
@Captor
|
||||
private ArgumentCaptor<Runnable> mRunnableCaptor;
|
||||
|
||||
private Context mContext;
|
||||
|
||||
@@ -65,8 +71,10 @@ public class SlotSimStatusTest {
|
||||
public void size_returnNumberOfPhone_whenQueryInBackgroundThread() {
|
||||
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
||||
|
||||
ExecutorService executor = Executors.newSingleThreadExecutor();
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, executor);
|
||||
SlotSimStatus target = new SlotSimStatus(mContext, mExecutor);
|
||||
|
||||
verify(mExecutor).execute(mRunnableCaptor.capture());
|
||||
mRunnableCaptor.getValue().run();
|
||||
|
||||
assertEquals(new Integer(target.size()), new Integer(2));
|
||||
}
|
||||
|
Reference in New Issue
Block a user