[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
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
|
if (getSimSlotIndex() == SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
|
||||||
|
return UNSUPPORTED_ON_DEVICE;
|
||||||
|
}
|
||||||
boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) &&
|
boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) &&
|
||||||
mContext.getSystemService(UserManager.class).isAdminUser() &&
|
mContext.getSystemService(UserManager.class).isAdminUser() &&
|
||||||
!Utils.isWifiOnly(mContext);
|
!Utils.isWifiOnly(mContext);
|
||||||
@@ -81,7 +84,7 @@ public class SimStatusPreferenceController extends BasePreferenceController {
|
|||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
|
if ((!SubscriptionUtil.isSimHardwareVisible(mContext)) || (mSlotSimStatus == null)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String basePreferenceKey = mSlotSimStatus.getPreferenceKey(
|
String basePreferenceKey = mSlotSimStatus.getPreferenceKey(
|
||||||
@@ -133,17 +136,23 @@ public class SimStatusPreferenceController extends BasePreferenceController {
|
|||||||
R.string.sim_status_title);
|
R.string.sim_status_title);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CharSequence getCarrierName(int simSlot) {
|
private SubscriptionInfo getSubscriptionInfo(int simSlot) {
|
||||||
final List<SubscriptionInfo> subscriptionInfoList =
|
final List<SubscriptionInfo> subscriptionInfoList =
|
||||||
mSubscriptionManager.getActiveSubscriptionInfoList();
|
mSubscriptionManager.getActiveSubscriptionInfoList();
|
||||||
if (subscriptionInfoList != null) {
|
if (subscriptionInfoList != null) {
|
||||||
for (SubscriptionInfo info : subscriptionInfoList) {
|
for (SubscriptionInfo info : subscriptionInfoList) {
|
||||||
if (info.getSimSlotIndex() == simSlot) {
|
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
|
@VisibleForTesting
|
||||||
|
@@ -19,6 +19,7 @@ package com.android.settings.deviceinfo.simstatus;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -30,17 +31,22 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.ArgumentCaptor;
|
||||||
|
import org.mockito.Captor;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
public class SlotSimStatusTest {
|
public class SlotSimStatusTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
|
@Mock
|
||||||
|
private Executor mExecutor;
|
||||||
|
@Captor
|
||||||
|
private ArgumentCaptor<Runnable> mRunnableCaptor;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
@@ -65,8 +71,10 @@ public class SlotSimStatusTest {
|
|||||||
public void size_returnNumberOfPhone_whenQueryInBackgroundThread() {
|
public void size_returnNumberOfPhone_whenQueryInBackgroundThread() {
|
||||||
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
doReturn(2).when(mTelephonyManager).getPhoneCount();
|
||||||
|
|
||||||
ExecutorService executor = Executors.newSingleThreadExecutor();
|
SlotSimStatus target = new SlotSimStatus(mContext, mExecutor);
|
||||||
SlotSimStatus target = new SlotSimStatus(mContext, executor);
|
|
||||||
|
verify(mExecutor).execute(mRunnableCaptor.capture());
|
||||||
|
mRunnableCaptor.getValue().run();
|
||||||
|
|
||||||
assertEquals(new Integer(target.size()), new Integer(2));
|
assertEquals(new Integer(target.size()), new Integer(2));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user