Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca5ef817 authored by Bonian Chen's avatar Bonian Chen Committed by Android (Google) Code Review
Browse files

Merge "[Settings] Code refactor"

parents 691c39b8 09b0edbd
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -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 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
+12 −4
Original line number Diff line number Diff line
@@ -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));
    }