Merge "[Settings] Change the way in InternetPreferenceController for getting the subscription info from room db part4"
This commit is contained in:
@@ -29,11 +29,13 @@ import android.content.Context;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.IdRes;
|
import androidx.annotation.IdRes;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.lifecycle.Lifecycle;
|
import androidx.lifecycle.Lifecycle;
|
||||||
import androidx.lifecycle.LifecycleObserver;
|
import androidx.lifecycle.LifecycleObserver;
|
||||||
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
import androidx.lifecycle.OnLifecycleEvent;
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
@@ -43,9 +45,14 @@ import com.android.settings.widget.SummaryUpdater;
|
|||||||
import com.android.settings.wifi.WifiSummaryUpdater;
|
import com.android.settings.wifi.WifiSummaryUpdater;
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
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 com.android.settingslib.utils.ThreadUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,7 +60,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class InternetPreferenceController extends AbstractPreferenceController implements
|
public class InternetPreferenceController extends AbstractPreferenceController implements
|
||||||
LifecycleObserver, SummaryUpdater.OnSummaryChangeListener,
|
LifecycleObserver, SummaryUpdater.OnSummaryChangeListener,
|
||||||
InternetUpdater.InternetChangeListener {
|
InternetUpdater.InternetChangeListener, MobileNetworkRepository.MobileNetworkCallback {
|
||||||
|
|
||||||
public static final String KEY = "internet_settings";
|
public static final String KEY = "internet_settings";
|
||||||
|
|
||||||
@@ -61,6 +68,9 @@ public class InternetPreferenceController extends AbstractPreferenceController i
|
|||||||
private final WifiSummaryUpdater mSummaryHelper;
|
private final WifiSummaryUpdater mSummaryHelper;
|
||||||
private InternetUpdater mInternetUpdater;
|
private InternetUpdater mInternetUpdater;
|
||||||
private @InternetUpdater.InternetType int mInternetType;
|
private @InternetUpdater.InternetType int mInternetType;
|
||||||
|
private LifecycleOwner mLifecycleOwner;
|
||||||
|
private MobileNetworkRepository mMobileNetworkRepository;
|
||||||
|
private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static Map<Integer, Integer> sIconMap = new HashMap<>();
|
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);
|
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);
|
super(context);
|
||||||
if (lifecycle == null) {
|
if (lifecycle == null) {
|
||||||
throw new IllegalArgumentException("Lifecycle must be set");
|
throw new IllegalArgumentException("Lifecycle must be set");
|
||||||
@@ -89,6 +100,8 @@ public class InternetPreferenceController extends AbstractPreferenceController i
|
|||||||
mSummaryHelper = new WifiSummaryUpdater(mContext, this);
|
mSummaryHelper = new WifiSummaryUpdater(mContext, this);
|
||||||
mInternetUpdater = new InternetUpdater(context, lifecycle, this);
|
mInternetUpdater = new InternetUpdater(context, lifecycle, this);
|
||||||
mInternetType = mInternetUpdater.getInternetType();
|
mInternetType = mInternetUpdater.getInternetType();
|
||||||
|
mLifecycleOwner = lifecycleOwner;
|
||||||
|
mMobileNetworkRepository = new MobileNetworkRepository(context, this);
|
||||||
lifecycle.addObserver(this);
|
lifecycle.addObserver(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,12 +156,14 @@ public class InternetPreferenceController extends AbstractPreferenceController i
|
|||||||
/** @OnLifecycleEvent(ON_RESUME) */
|
/** @OnLifecycleEvent(ON_RESUME) */
|
||||||
@OnLifecycleEvent(ON_RESUME)
|
@OnLifecycleEvent(ON_RESUME)
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
|
mMobileNetworkRepository.addRegister(mLifecycleOwner);
|
||||||
mSummaryHelper.register(true);
|
mSummaryHelper.register(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @OnLifecycleEvent(ON_PAUSE) */
|
/** @OnLifecycleEvent(ON_PAUSE) */
|
||||||
@OnLifecycleEvent(ON_PAUSE)
|
@OnLifecycleEvent(ON_PAUSE)
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
|
mMobileNetworkRepository.removeRegister();
|
||||||
mSummaryHelper.register(false);
|
mSummaryHelper.register(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,27 +202,43 @@ public class InternetPreferenceController extends AbstractPreferenceController i
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void updateCellularSummary() {
|
void updateCellularSummary() {
|
||||||
final SubscriptionManager subscriptionManager =
|
CharSequence summary = null;
|
||||||
mContext.getSystemService(SubscriptionManager.class);
|
for (SubscriptionInfoEntity subInfo : mSubInfoEntityList) {
|
||||||
if (subscriptionManager == null) {
|
if (subInfo.isSubscriptionVisible && subInfo.isActiveDataSubscriptionId) {
|
||||||
return;
|
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());
|
if (summary == null) {
|
||||||
SubscriptionInfo defaultSubInfo = subscriptionManager.getDefaultDataSubscriptionInfo();
|
|
||||||
subInfo = subscriptionManager.isSubscriptionVisible(subInfo) ? subInfo : defaultSubInfo;
|
|
||||||
if (subInfo == null) {
|
|
||||||
return;
|
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));
|
|
||||||
}
|
|
||||||
mPreference.setSummary(summary);
|
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) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -348,7 +348,8 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
mSubscriptionManager.getDefaultVoiceSubscriptionId() == mSubId,
|
mSubscriptionManager.getDefaultVoiceSubscriptionId() == mSubId,
|
||||||
mSubscriptionManager.getDefaultSmsSubscriptionId() == mSubId,
|
mSubscriptionManager.getDefaultSmsSubscriptionId() == mSubId,
|
||||||
mSubscriptionManager.getDefaultDataSubscriptionId() == mSubId,
|
mSubscriptionManager.getDefaultDataSubscriptionId() == mSubId,
|
||||||
mSubscriptionManager.getDefaultSubscriptionId() == mSubId);
|
mSubscriptionManager.getDefaultSubscriptionId() == mSubId,
|
||||||
|
mSubscriptionManager.getActiveDataSubscriptionId() == mSubId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -97,7 +97,7 @@ public class NetworkDashboardFragment extends DashboardFragment implements
|
|||||||
final MobilePlanPreferenceController mobilePlanPreferenceController =
|
final MobilePlanPreferenceController mobilePlanPreferenceController =
|
||||||
new MobilePlanPreferenceController(context, mobilePlanHost);
|
new MobilePlanPreferenceController(context, mobilePlanHost);
|
||||||
final InternetPreferenceController internetPreferenceController =
|
final InternetPreferenceController internetPreferenceController =
|
||||||
new InternetPreferenceController(context, lifecycle);
|
new InternetPreferenceController(context, lifecycle, lifecycleOwner);
|
||||||
|
|
||||||
final VpnPreferenceController vpnPreferenceController =
|
final VpnPreferenceController vpnPreferenceController =
|
||||||
new VpnPreferenceController(context);
|
new VpnPreferenceController(context);
|
||||||
|
@@ -42,6 +42,7 @@ import android.telephony.SubscriptionInfo;
|
|||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
|
|
||||||
import androidx.lifecycle.Lifecycle;
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
@@ -73,6 +74,7 @@ public class InternetPreferenceControllerTest {
|
|||||||
private InternetPreferenceController mController;
|
private InternetPreferenceController mController;
|
||||||
private PreferenceScreen mScreen;
|
private PreferenceScreen mScreen;
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
private LifecycleOwner mLifecycleOwner;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -84,7 +86,8 @@ public class InternetPreferenceControllerTest {
|
|||||||
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(wifiManager);
|
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(wifiManager);
|
||||||
when(wifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
|
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);
|
mController.sIconMap.put(INTERNET_WIFI, 0);
|
||||||
if (Looper.myLooper() == null) {
|
if (Looper.myLooper() == null) {
|
||||||
Looper.prepare();
|
Looper.prepare();
|
||||||
|
@@ -170,8 +170,8 @@ public class NetworkProviderCallsSmsControllerTest {
|
|||||||
TelephonyManager.DEFAULT_PORT_INDEX, false, null,
|
TelephonyManager.DEFAULT_PORT_INDEX, false, null,
|
||||||
SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
||||||
"1234567890", true, "default", false, isValid,
|
"1234567890", true, "default", false, isValid,
|
||||||
true, isActive, isAvailable, isDefaultCall,
|
true, isActive, isAvailable, isDefaultCall, isDefaultSms, false, false,
|
||||||
isDefaultSms, false, false);
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -150,7 +150,7 @@ public class NetworkProviderDownloadedSimListControllerTest {
|
|||||||
mcc, mnc, countryIso, true, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
|
mcc, mnc, countryIso, true, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
|
||||||
null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
||||||
"1234567890", true, defaultSimConfig.toString(), false, isValid, true, isActive,
|
"1234567890", true, defaultSimConfig.toString(), false, isValid, true, isActive,
|
||||||
isAvailable, isDefaultCall, isDefaultSms, isDefaultData, false);
|
isAvailable, isDefaultCall, isDefaultSms, isDefaultData, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String setSummaryResId(String resName) {
|
private String setSummaryResId(String resName) {
|
||||||
|
@@ -156,8 +156,7 @@ public class NetworkProviderSimListControllerTest {
|
|||||||
mcc, mnc, countryIso, false, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
|
mcc, mnc, countryIso, false, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
|
||||||
null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
|
||||||
"1234567890", true, defaultSimConfig.toString(), false, isValid, true, isActive,
|
"1234567890", true, defaultSimConfig.toString(), false, isValid, true, isActive,
|
||||||
isAvailable,
|
isAvailable, isDefaultCall, isDefaultSms, false, false, false);
|
||||||
isDefaultCall, isDefaultSms, false, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String setSummaryResId(String resName, String value) {
|
private String setSummaryResId(String resName, String value) {
|
||||||
|
Reference in New Issue
Block a user