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

Commit 93b0b686 authored by Zoey Chen's avatar Zoey Chen Committed by Android (Google) Code Review
Browse files

Merge "[Settings] Change the way in InternetPreferenceController for getting...

Merge "[Settings] Change the way in InternetPreferenceController for getting the subscription info from room db part4"
parents 8fd8da3b 1c4a1989
Loading
Loading
Loading
Loading
+51 −20
Original line number Diff line number Diff line
@@ -29,11 +29,13 @@ import android.content.Context;
import android.graphics.drawable.Drawable;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.util.Log;

import androidx.annotation.IdRes;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -43,9 +45,14 @@ import com.android.settings.widget.SummaryUpdater;
import com.android.settings.wifi.WifiSummaryUpdater;
import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
import com.android.settingslib.utils.ThreadUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
@@ -53,7 +60,7 @@ import java.util.Map;
 */
public class InternetPreferenceController extends AbstractPreferenceController implements
        LifecycleObserver, SummaryUpdater.OnSummaryChangeListener,
        InternetUpdater.InternetChangeListener {
        InternetUpdater.InternetChangeListener, MobileNetworkRepository.MobileNetworkCallback  {

    public static final String KEY = "internet_settings";

@@ -61,6 +68,9 @@ public class InternetPreferenceController extends AbstractPreferenceController i
    private final WifiSummaryUpdater mSummaryHelper;
    private InternetUpdater mInternetUpdater;
    private @InternetUpdater.InternetType int mInternetType;
    private LifecycleOwner mLifecycleOwner;
    private MobileNetworkRepository mMobileNetworkRepository;
    private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();

    @VisibleForTesting
    static Map<Integer, Integer> sIconMap = new HashMap<>();
@@ -81,7 +91,8 @@ public class InternetPreferenceController extends AbstractPreferenceController i
        sSummaryMap.put(INTERNET_ETHERNET, R.string.to_switch_networks_disconnect_ethernet);
    }

    public InternetPreferenceController(Context context, Lifecycle lifecycle) {
    public InternetPreferenceController(Context context, Lifecycle lifecycle,
            LifecycleOwner lifecycleOwner) {
        super(context);
        if (lifecycle == null) {
            throw new IllegalArgumentException("Lifecycle must be set");
@@ -89,6 +100,8 @@ public class InternetPreferenceController extends AbstractPreferenceController i
        mSummaryHelper = new WifiSummaryUpdater(mContext, this);
        mInternetUpdater = new InternetUpdater(context, lifecycle, this);
        mInternetType = mInternetUpdater.getInternetType();
        mLifecycleOwner = lifecycleOwner;
        mMobileNetworkRepository = new MobileNetworkRepository(context, this);
        lifecycle.addObserver(this);
    }

@@ -143,12 +156,14 @@ public class InternetPreferenceController extends AbstractPreferenceController i
    /** @OnLifecycleEvent(ON_RESUME) */
    @OnLifecycleEvent(ON_RESUME)
    public void onResume() {
        mMobileNetworkRepository.addRegister(mLifecycleOwner);
        mSummaryHelper.register(true);
    }

    /** @OnLifecycleEvent(ON_PAUSE) */
    @OnLifecycleEvent(ON_PAUSE)
    public void onPause() {
        mMobileNetworkRepository.removeRegister();
        mSummaryHelper.register(false);
    }

@@ -187,27 +202,43 @@ public class InternetPreferenceController extends AbstractPreferenceController i

    @VisibleForTesting
    void updateCellularSummary() {
        final SubscriptionManager subscriptionManager =
                mContext.getSystemService(SubscriptionManager.class);
        if (subscriptionManager == null) {
            return;
        CharSequence summary = null;
        for (SubscriptionInfoEntity subInfo : mSubInfoEntityList) {
            if (subInfo.isSubscriptionVisible && subInfo.isActiveDataSubscriptionId) {
                summary = subInfo.uniqueName;
                break;
            } else if (subInfo.isDefaultDataSubscription) {
                summary = mContext.getString(
                        R.string.mobile_data_temp_using, subInfo.uniqueName);
            }
        SubscriptionInfo subInfo = subscriptionManager.getActiveSubscriptionInfo(
                SubscriptionManager.getActiveDataSubscriptionId());
        SubscriptionInfo defaultSubInfo = subscriptionManager.getDefaultDataSubscriptionInfo();
        subInfo = subscriptionManager.isSubscriptionVisible(subInfo) ? subInfo : defaultSubInfo;
        if (subInfo == null) {
            return;
        }
        CharSequence summary;
        if (subInfo.equals(defaultSubInfo)) {
            // DDS is active
            summary = SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext);
        } else {
            summary = mContext.getString(
                    R.string.mobile_data_temp_using,
                    SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext));

        if (summary == null) {
            return;
        }
        mPreference.setSummary(summary);
    }

    @Override
    public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
        if ((mSubInfoEntityList != null &&
                (subInfoEntityList.isEmpty() || !subInfoEntityList.equals(mSubInfoEntityList)))
                || (!subInfoEntityList.isEmpty() && mSubInfoEntityList == null)) {
            mSubInfoEntityList = subInfoEntityList;
            updateState(mPreference);
        }
    }

    @Override
    public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) {
    }

    @Override
    public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
    }

    @Override
    public void onAllMobileNetworkInfoChanged(
            List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -348,7 +348,8 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
                    mSubscriptionManager.getDefaultVoiceSubscriptionId() == mSubId,
                    mSubscriptionManager.getDefaultSmsSubscriptionId() == mSubId,
                    mSubscriptionManager.getDefaultDataSubscriptionId() == mSubId,
                    mSubscriptionManager.getDefaultSubscriptionId() == mSubId);
                    mSubscriptionManager.getDefaultSubscriptionId() == mSubId,
                    mSubscriptionManager.getActiveDataSubscriptionId() == mSubId);
        }
    }

+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ public class NetworkDashboardFragment extends DashboardFragment implements
        final MobilePlanPreferenceController mobilePlanPreferenceController =
                new MobilePlanPreferenceController(context, mobilePlanHost);
        final InternetPreferenceController internetPreferenceController =
                new InternetPreferenceController(context, lifecycle);
                new InternetPreferenceController(context, lifecycle, lifecycleOwner);

        final VpnPreferenceController vpnPreferenceController =
                new VpnPreferenceController(context);
+4 −1
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;

import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
@@ -73,6 +74,7 @@ public class InternetPreferenceControllerTest {
    private InternetPreferenceController mController;
    private PreferenceScreen mScreen;
    private Preference mPreference;
    private LifecycleOwner mLifecycleOwner;

    @Before
    public void setUp() {
@@ -84,7 +86,8 @@ public class InternetPreferenceControllerTest {
        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(wifiManager);
        when(wifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);

        mController = new InternetPreferenceController(mContext, mock(Lifecycle.class));
        mController = new InternetPreferenceController(mContext, mock(Lifecycle.class),
                mLifecycleOwner);
        mController.sIconMap.put(INTERNET_WIFI, 0);
        if (Looper.myLooper() == null) {
            Looper.prepare();
+2 −2
Original line number Diff line number Diff line
@@ -170,8 +170,8 @@ public class NetworkProviderCallsSmsControllerTest {
                TelephonyManager.DEFAULT_PORT_INDEX, false, null,
                SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
                "1234567890", true, "default", false, isValid,
                true, isActive, isAvailable, isDefaultCall,
                isDefaultSms, false, false);
                true, isActive, isAvailable, isDefaultCall, isDefaultSms, false, false,
                false);
    }

    @Test
Loading