Loading src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java +13 −4 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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( Loading Loading @@ -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 null; } return mContext.getText(R.string.device_info_not_available); private CharSequence getCarrierName(int simSlot) { SubscriptionInfo subInfo = getSubscriptionInfo(simSlot); return (subInfo != null) ? subInfo.getCarrierName() : mContext.getText(R.string.device_info_not_available); } @VisibleForTesting Loading tests/unit/src/com/android/settings/deviceinfo/simstatus/SlotSimStatusTest.java +12 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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)); } Loading Loading
src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java +13 −4 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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( Loading Loading @@ -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 null; } return mContext.getText(R.string.device_info_not_available); private CharSequence getCarrierName(int simSlot) { SubscriptionInfo subInfo = getSubscriptionInfo(simSlot); return (subInfo != null) ? subInfo.getCarrierName() : mContext.getText(R.string.device_info_not_available); } @VisibleForTesting Loading
tests/unit/src/com/android/settings/deviceinfo/simstatus/SlotSimStatusTest.java +12 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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)); } Loading