[Settings] Remove the intent receiver due to the register exception
Bug: 274899027
Test: atest SystemUIMicrobenchmark:android.platform.test.scenario.sysui.quicksettings
Change-Id: Ia19b91cfd1073f22180cc9679025447b4d5fecd9
diff --git a/src/com/android/settings/network/DefaultSubscriptionReceiver.java b/src/com/android/settings/network/DefaultSubscriptionReceiver.java
new file mode 100644
index 0000000..cdaf48f
--- /dev/null
+++ b/src/com/android/settings/network/DefaultSubscriptionReceiver.java
@@ -0,0 +1,59 @@
+package com.android.settings.network;
+
+import static com.android.internal.telephony.TelephonyIntents.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+public class DefaultSubscriptionReceiver extends BroadcastReceiver {
+
+ private Context mContext;
+ private DefaultSubscriptionListener mListener;
+
+ public DefaultSubscriptionReceiver(Context context, DefaultSubscriptionListener listener) {
+ mContext = context;
+ mListener = listener;
+ }
+
+ public void registerReceiver() {
+ final IntentFilter filter = new IntentFilter();
+ filter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
+ filter.addAction(SubscriptionManager.ACTION_DEFAULT_SUBSCRIPTION_CHANGED);
+ filter.addAction(ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED);
+ filter.addAction(SubscriptionManager.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED);
+ mContext.registerReceiver(this, filter);
+ }
+
+ public void unRegisterReceiver() {
+ mContext.unregisterReceiver(this);
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED.equals(action)) {
+ mListener.onDefaultDataChanged(SubscriptionManager.getDefaultDataSubscriptionId());
+ } else if (SubscriptionManager.ACTION_DEFAULT_SUBSCRIPTION_CHANGED.equals(action)) {
+ mListener.onDefaultSubInfoChanged(SubscriptionManager.getDefaultSubscriptionId());
+ } else if (TelephonyManager.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED.equals(action)) {
+ mListener.onDefaultVoiceChanged(SubscriptionManager.getDefaultVoiceSubscriptionId());
+ } else if (SubscriptionManager.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED.equals(action)) {
+ mListener.onDefaultSmsChanged(SubscriptionManager.getDefaultSmsSubscriptionId());
+ }
+ }
+
+ public interface DefaultSubscriptionListener {
+ default void onDefaultSubInfoChanged(int defaultSubId) {
+ }
+ default void onDefaultDataChanged(int defaultDataSubId) {
+ }
+ default void onDefaultVoiceChanged(int defaultVoiceSubId) {
+ }
+ default void onDefaultSmsChanged(int defaultSmsSubId) {
+ }
+ }
+}
diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java
index 898585c..bc2e71e 100644
--- a/src/com/android/settings/network/InternetPreferenceController.java
+++ b/src/com/android/settings/network/InternetPreferenceController.java
@@ -27,9 +27,7 @@
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;
@@ -45,9 +43,7 @@
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;
@@ -60,7 +56,8 @@
*/
public class InternetPreferenceController extends AbstractPreferenceController implements
LifecycleObserver, SummaryUpdater.OnSummaryChangeListener,
- InternetUpdater.InternetChangeListener, MobileNetworkRepository.MobileNetworkCallback {
+ InternetUpdater.InternetChangeListener, MobileNetworkRepository.MobileNetworkCallback,
+ DefaultSubscriptionReceiver.DefaultSubscriptionListener {
public static final String KEY = "internet_settings";
@@ -71,6 +68,8 @@
private LifecycleOwner mLifecycleOwner;
private MobileNetworkRepository mMobileNetworkRepository;
private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();
+ private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
@VisibleForTesting
static Map<Integer, Integer> sIconMap = new HashMap<>();
@@ -102,6 +101,7 @@
mInternetType = mInternetUpdater.getInternetType();
mLifecycleOwner = lifecycleOwner;
mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
+ mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
lifecycle.addObserver(this);
}
@@ -160,6 +160,8 @@
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mMobileNetworkRepository.updateEntity();
mSummaryHelper.register(true);
+ mDataSubscriptionChangedReceiver.registerReceiver();
+ mDefaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
}
/** @OnLifecycleEvent(ON_PAUSE) */
@@ -167,6 +169,7 @@
public void onPause() {
mMobileNetworkRepository.removeRegister(this);
mSummaryHelper.register(false);
+ mDataSubscriptionChangedReceiver.unRegisterReceiver();
}
/**
@@ -212,11 +215,11 @@
if (subInfo.isActiveDataSubscriptionId) {
activeSubInfo = subInfo;
}
- if (subInfo.isDefaultDataSubscription) {
+ if (subInfo.getSubId() == getDefaultDataSubscriptionId()) {
defaultSubInfo = subInfo;
}
}
- if (activeSubInfo == null) {
+ if (activeSubInfo == null || defaultSubInfo == null) {
return;
}
activeSubInfo = activeSubInfo.isSubscriptionVisible ? activeSubInfo : defaultSubInfo;
@@ -237,9 +240,20 @@
return mSubInfoEntityList;
}
+ @VisibleForTesting
+ protected int getDefaultDataSubscriptionId() {
+ return mDefaultDataSubId;
+ }
+
@Override
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
mSubInfoEntityList = subInfoEntityList;
updateState(mPreference);
}
+
+ @Override
+ public void onDefaultDataChanged(int defaultDataSubId) {
+ mDefaultDataSubId = defaultDataSubId;
+ updateState(mPreference);
+ }
}
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index bec65e2..8543056 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -18,14 +18,9 @@
import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;
import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;
-import static com.android.internal.telephony.TelephonyIntents.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED;
-
import android.annotation.NonNull;
import android.app.settings.SettingsEnums;
-import android.content.BroadcastReceiver;
import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
@@ -98,7 +93,6 @@
private AirplaneModeObserver mAirplaneModeObserver;
private Uri mAirplaneModeSettingUri;
private MetricsFeatureProvider mMetricsFeatureProvider;
- private IntentFilter mFilter = new IntentFilter();
private Map<Integer, MobileDataContentObserver> mDataContentObserverMap = new HashMap<>();
private int mPhysicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
private int mLogicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
@@ -111,12 +105,7 @@
private Map<Integer, SubscriptionInfo> mSubscriptionInfoMap = new ArrayMap<>();
private Map<Integer, TelephonyManager> mTelephonyManagerMap = new HashMap<>();
private Map<Integer, PhoneCallStateTelephonyCallback> mTelephonyCallbackMap = new HashMap<>();
- private BroadcastReceiver mDataSubscriptionChangedReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- onSubscriptionsChanged();
- }
- };
+
@NonNull
public static MobileNetworkRepository getInstance(Context context) {
synchronized (sInstanceLock) {
@@ -142,10 +131,6 @@
mMobileNetworkInfoDao = mMobileNetworkDatabase.mMobileNetworkInfoDao();
mAirplaneModeObserver = new AirplaneModeObserver(new Handler(Looper.getMainLooper()));
mAirplaneModeSettingUri = Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON);
- mFilter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
- mFilter.addAction(SubscriptionManager.ACTION_DEFAULT_SUBSCRIPTION_CHANGED);
- mFilter.addAction(ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED);
- mFilter.addAction(SubscriptionManager.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED);
}
private class AirplaneModeObserver extends ContentObserver {
@@ -187,7 +172,6 @@
mSubscriptionManager.addOnSubscriptionsChangedListener(mContext.getMainExecutor(),
this);
mAirplaneModeObserver.register(mContext);
- mContext.registerReceiver(mDataSubscriptionChangedReceiver, mFilter);
if (DEBUG) {
Log.d(TAG, "addRegister done");
}
@@ -270,7 +254,6 @@
if (sCallbacks.isEmpty()) {
mSubscriptionManager.removeOnSubscriptionsChangedListener(this);
mAirplaneModeObserver.unRegister(mContext);
- mContext.unregisterReceiver(mDataSubscriptionChangedReceiver);
mDataContentObserverMap.forEach((id, observer) -> {
observer.unRegister(mContext);
});
@@ -523,16 +506,11 @@
SubscriptionUtil.getFormattedPhoneNumber(context, subInfo),
firstRemovableSubInfo == null ? false
: firstRemovableSubInfo.getSubscriptionId() == subId,
- String.valueOf(SubscriptionUtil.getDefaultSimConfig(context, subId)),
SubscriptionUtil.isDefaultSubscription(context, subId),
mSubscriptionManager.isValidSubscriptionId(subId),
mSubscriptionManager.isUsableSubscriptionId(subId),
mSubscriptionManager.isActiveSubscriptionId(subId),
true /*availableSubInfo*/,
- mSubscriptionManager.getDefaultVoiceSubscriptionId() == subId,
- mSubscriptionManager.getDefaultSmsSubscriptionId() == subId,
- mSubscriptionManager.getDefaultDataSubscriptionId() == subId,
- mSubscriptionManager.getDefaultSubscriptionId() == subId,
mSubscriptionManager.getActiveDataSubscriptionId() == subId);
}
}
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.java b/src/com/android/settings/network/NetworkProviderCallsSmsController.java
index 0c71aa7..5eec3d9 100644
--- a/src/com/android/settings/network/NetworkProviderCallsSmsController.java
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.java
@@ -38,14 +38,13 @@
import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
import java.util.List;
public class NetworkProviderCallsSmsController extends AbstractPreferenceController implements
- LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback {
+ LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback,
+ DefaultSubscriptionReceiver.DefaultSubscriptionListener {
private static final String TAG = "NetworkProviderCallsSmsController";
private static final String KEY = "calls_and_sms";
@@ -58,6 +57,9 @@
private LifecycleOwner mLifecycleOwner;
private MobileNetworkRepository mMobileNetworkRepository;
private List<SubscriptionInfoEntity> mSubInfoEntityList;
+ private int mDefaultVoiceSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ private int mDefaultSmsSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
/**
* The summary text and click behavior of the "Calls & SMS" item on the
@@ -73,6 +75,7 @@
== View.LAYOUT_DIRECTION_RTL;
mLifecycleOwner = lifecycleOwner;
mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
+ mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
if (lifecycle != null) {
lifecycle.addObserver(this);
}
@@ -83,11 +86,15 @@
mMobileNetworkRepository.addRegister(mLifecycleOwner, this,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mMobileNetworkRepository.updateEntity();
+ mDataSubscriptionChangedReceiver.registerReceiver();
+ mDefaultVoiceSubId = SubscriptionManager.getDefaultVoiceSubscriptionId();
+ mDefaultSmsSubId = SubscriptionManager.getDefaultSmsSubscriptionId();
}
@OnLifecycleEvent(Event.ON_PAUSE)
public void onPause() {
mMobileNetworkRepository.removeRegister(this);
+ mDataSubscriptionChangedReceiver.unRegisterReceiver();
}
@Override
@@ -145,16 +152,16 @@
protected CharSequence getPreferredStatus(SubscriptionInfoEntity subInfo, int subsSize,
int subId) {
String status = "";
- boolean isDataPreferred = subInfo.isDefaultVoiceSubscription;
- boolean isSmsPreferred = subInfo.isDefaultSmsSubscription;
+ boolean isCallPreferred = subInfo.getSubId() == getDefaultVoiceSubscriptionId();
+ boolean isSmsPreferred = subInfo.getSubId() == getDefaultSmsSubscriptionId();
if (!subInfo.isValidSubscription || !isInService(subId)) {
status = setSummaryResId(subsSize > 1 ? R.string.calls_sms_unavailable :
R.string.calls_sms_temp_unavailable);
} else {
- if (isDataPreferred && isSmsPreferred) {
+ if (isCallPreferred && isSmsPreferred) {
status = setSummaryResId(R.string.calls_sms_preferred);
- } else if (isDataPreferred) {
+ } else if (isCallPreferred) {
status = setSummaryResId(R.string.calls_sms_calls_preferred);
} else if (isSmsPreferred) {
status = setSummaryResId(R.string.calls_sms_sms_preferred);
@@ -226,4 +233,26 @@
mSubInfoEntityList = activeSubInfoList;
update();
}
+
+ @VisibleForTesting
+ protected int getDefaultVoiceSubscriptionId() {
+ return mDefaultVoiceSubId;
+ }
+
+ @VisibleForTesting
+ protected int getDefaultSmsSubscriptionId() {
+ return mDefaultSmsSubId;
+ }
+
+ @Override
+ public void onDefaultVoiceChanged(int defaultVoiceSubId) {
+ mDefaultVoiceSubId = defaultVoiceSubId;
+ update();
+ }
+
+ @Override
+ public void onDefaultSmsChanged(int defaultSmsSubId) {
+ mDefaultSmsSubId = defaultSmsSubId;
+ update();
+ }
}
diff --git a/src/com/android/settings/network/NetworkProviderSimListController.java b/src/com/android/settings/network/NetworkProviderSimListController.java
index db27291..89cb73c 100644
--- a/src/com/android/settings/network/NetworkProviderSimListController.java
+++ b/src/com/android/settings/network/NetworkProviderSimListController.java
@@ -23,7 +23,6 @@
import android.graphics.drawable.Drawable;
import android.telephony.SubscriptionManager;
import android.util.ArrayMap;
-import android.util.Log;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.LifecycleOwner;
@@ -38,16 +37,15 @@
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class NetworkProviderSimListController extends AbstractPreferenceController implements
- LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback {
+ LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback,
+ DefaultSubscriptionReceiver.DefaultSubscriptionListener {
private static final String TAG = "NetworkProviderSimListCtrl";
private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
private static final String KEY_PREFERENCE_SIM = "provider_model_sim_list";
@@ -58,6 +56,7 @@
private LifecycleOwner mLifecycleOwner;
private MobileNetworkRepository mMobileNetworkRepository;
private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();
+ private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
public NetworkProviderSimListController(Context context, Lifecycle lifecycle,
LifecycleOwner lifecycleOwner) {
@@ -66,6 +65,7 @@
mPreferences = new ArrayMap<>();
mLifecycleOwner = lifecycleOwner;
mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
+ mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
lifecycle.addObserver(this);
}
@@ -74,11 +74,13 @@
mMobileNetworkRepository.addRegister(mLifecycleOwner, this,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mMobileNetworkRepository.updateEntity();
+ mDataSubscriptionChangedReceiver.registerReceiver();
}
@OnLifecycleEvent(ON_PAUSE)
public void onPause() {
mMobileNetworkRepository.removeRegister(this);
+ mDataSubscriptionChangedReceiver.unRegisterReceiver();
}
@Override
@@ -130,7 +132,8 @@
public CharSequence getSummary(SubscriptionInfoEntity subInfo, CharSequence displayName) {
if (subInfo.isActiveSubscriptionId) {
- CharSequence config = subInfo.defaultSimConfig;
+ CharSequence config = SubscriptionUtil.getDefaultSimConfig(mContext,
+ subInfo.getSubId());
CharSequence summary = mContext.getResources().getString(
R.string.sim_category_active_sim);
if (config == "") {
@@ -185,4 +188,22 @@
refreshSummary(mPreferenceCategory);
update();
}
+
+ @Override
+ public void onDefaultDataChanged(int defaultDataSubId) {
+ refreshSummary(mPreferenceCategory);
+ update();
+ }
+
+ @Override
+ public void onDefaultVoiceChanged(int defaultVoiceSubId) {
+ refreshSummary(mPreferenceCategory);
+ update();
+ }
+
+ @Override
+ public void onDefaultSmsChanged(int defaultSmsSubId) {
+ refreshSummary(mPreferenceCategory);
+ update();
+ }
}
diff --git a/src/com/android/settings/network/telephony/CallsDefaultSubscriptionController.java b/src/com/android/settings/network/telephony/CallsDefaultSubscriptionController.java
index de45e62..249c855 100644
--- a/src/com/android/settings/network/telephony/CallsDefaultSubscriptionController.java
+++ b/src/com/android/settings/network/telephony/CallsDefaultSubscriptionController.java
@@ -40,10 +40,12 @@
@Override
protected int getDefaultSubscriptionId() {
+ int defaultCallSubId = SubscriptionManager.getDefaultVoiceSubscriptionId();
for (SubscriptionInfoEntity subInfo : mSubInfoEntityList) {
- if (subInfo.isActiveSubscriptionId && subInfo.isDefaultVoiceSubscription) {
+ int subId = subInfo.getSubId();
+ if (subInfo.isActiveSubscriptionId && subId == defaultCallSubId) {
mSubscriptionInfoEntity = subInfo;
- return Integer.parseInt(subInfo.subId);
+ return subId;
}
}
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
diff --git a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
index c8f7acf..cb18b33 100644
--- a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
+++ b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
@@ -36,11 +36,10 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
+import com.android.settings.network.DefaultSubscriptionReceiver;
import com.android.settings.network.MobileNetworkRepository;
import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
import java.util.ArrayList;
import java.util.List;
@@ -52,7 +51,8 @@
*/
public abstract class DefaultSubscriptionController extends TelephonyBasePreferenceController
implements LifecycleObserver, Preference.OnPreferenceChangeListener,
- MobileNetworkRepository.MobileNetworkCallback {
+ MobileNetworkRepository.MobileNetworkCallback,
+ DefaultSubscriptionReceiver.DefaultSubscriptionListener {
private static final String TAG = "DefaultSubController";
protected ListPreference mPreference;
@@ -60,6 +60,7 @@
protected TelecomManager mTelecomManager;
protected MobileNetworkRepository mMobileNetworkRepository;
protected LifecycleOwner mLifecycleOwner;
+ private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
private static final String EMERGENCY_ACCOUNT_HANDLE_ID = "E";
private static final ComponentName PSTN_CONNECTION_SERVICE_COMPONENT =
@@ -76,6 +77,7 @@
mIsRtlMode = context.getResources().getConfiguration().getLayoutDirection()
== View.LAYOUT_DIRECTION_RTL;
mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
+ mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
mLifecycleOwner = lifecycleOwner;
if (lifecycle != null) {
lifecycle.addObserver(this);
@@ -110,12 +112,13 @@
// Can not get default subId from database until get the callback, add register by subId
// later.
mMobileNetworkRepository.addRegisterBySubId(getDefaultSubscriptionId());
-
+ mDataSubscriptionChangedReceiver.registerReceiver();
}
@OnLifecycleEvent(ON_PAUSE)
public void onPause() {
mMobileNetworkRepository.removeRegister(this);
+ mDataSubscriptionChangedReceiver.unRegisterReceiver();
}
@Override
@@ -308,4 +311,16 @@
updateEntries();
refreshSummary(mPreference);
}
+
+ @Override
+ public void onDefaultVoiceChanged(int defaultVoiceSubId) {
+ updateEntries();
+ refreshSummary(mPreference);
+ }
+
+ @Override
+ public void onDefaultSmsChanged(int defaultSmsSubId) {
+ updateEntries();
+ refreshSummary(mPreference);
+ }
}
diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
index cf78942..4b6a728 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -20,8 +20,6 @@
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.content.Context;
-import android.os.Handler;
-import android.os.Looper;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
@@ -36,13 +34,11 @@
import androidx.preference.SwitchPreference;
import com.android.settings.R;
-import com.android.settings.network.MobileDataContentObserver;
import com.android.settings.network.MobileNetworkRepository;
import com.android.settings.wifi.WifiPickerTrackerHelper;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
import java.util.ArrayList;
import java.util.List;
@@ -234,13 +230,14 @@
public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
mSubscriptionInfoEntityList = subInfoEntityList;
mSubscriptionInfoEntityList.forEach(entity -> {
- if (Integer.parseInt(entity.subId) == mSubId) {
+ if (entity.getSubId() == mSubId) {
mSubscriptionInfoEntity = entity;
}
});
+ int subId = mSubscriptionInfoEntity.getSubId();
if (mSubscriptionInfoEntity != null
- && mSubscriptionInfoEntity.isDefaultDataSubscription) {
- mDefaultSubId = Integer.parseInt(mSubscriptionInfoEntity.subId);
+ && subId == SubscriptionManager.getDefaultDataSubscriptionId()) {
+ mDefaultSubId = subId;
}
update();
refreshSummary(mPreference);
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index 265eb16..02455a1 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -1011,7 +1011,7 @@
private static CharSequence getPreferredCallStatus(Context context,
SubscriptionInfoEntity subInfo) {
String status = "";
- if (subInfo.isDefaultVoiceSubscription) {
+ if (subInfo.getSubId() == SubscriptionManager.getDefaultVoiceSubscriptionId()) {
status = setSummaryResId(context, R.string.calls_sms_preferred);
}
@@ -1021,7 +1021,7 @@
private static CharSequence getPreferredSmsStatus(Context context,
SubscriptionInfoEntity subInfo) {
String status = "";
- if (subInfo.isDefaultSmsSubscription) {
+ if (subInfo.getSubId() == SubscriptionManager.getDefaultSmsSubscriptionId()) {
status = setSummaryResId(context, R.string.calls_sms_preferred);
}
diff --git a/src/com/android/settings/network/telephony/SmsDefaultSubscriptionController.java b/src/com/android/settings/network/telephony/SmsDefaultSubscriptionController.java
index fddd358..be37513 100644
--- a/src/com/android/settings/network/telephony/SmsDefaultSubscriptionController.java
+++ b/src/com/android/settings/network/telephony/SmsDefaultSubscriptionController.java
@@ -44,10 +44,12 @@
@Override
protected int getDefaultSubscriptionId() {
+ int defaultSmsSubId = SubscriptionManager.getDefaultSmsSubscriptionId();
for (SubscriptionInfoEntity subInfo : mSubInfoEntityList) {
- if (subInfo.isActiveSubscriptionId && subInfo.isDefaultSmsSubscription) {
+ int subId = subInfo.getSubId();
+ if (subInfo.isActiveSubscriptionId && subId == defaultSmsSubId) {
mSubscriptionInfoEntity = subInfo;
- return Integer.parseInt(subInfo.subId);
+ return subId;
}
}
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
diff --git a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
index 8beeffb..4e9339f 100644
--- a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
@@ -129,6 +129,8 @@
private class MockInternetPreferenceController extends
com.android.settings.network.InternetPreferenceController {
+
+ private int mDefaultDataSubscriptionId;
public MockInternetPreferenceController(Context context, Lifecycle lifecycle,
LifecycleOwner lifecycleOwner) {
super(context, lifecycle, lifecycleOwner);
@@ -145,18 +147,26 @@
mSubscriptionInfoEntity = list;
}
+ @Override
+ protected int getDefaultDataSubscriptionId() {
+ return mDefaultDataSubscriptionId;
+ }
+
+ public void setDefaultDataSubscriptionId(int subscriptionId) {
+ mDefaultDataSubscriptionId = subscriptionId;
+ }
+
}
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
int carrierId, String displayName, String mcc, String mnc, String countryIso,
int cardId, boolean isVisible, boolean isValid, boolean isActive, boolean isAvailable,
- boolean isDefaultData, boolean isActiveData) {
+ boolean isActiveData) {
return new SubscriptionInfoEntity(subId, slotId, carrierId,
displayName, displayName, 0, mcc, mnc, countryIso, false, cardId,
TelephonyManager.DEFAULT_PORT_INDEX, false, null,
SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, isVisible,
- "1234567890", true, "default", false, isValid, true, isActive, isAvailable, false,
- false, isDefaultData, false, isActiveData);
+ "1234567890", true, false, isValid, true, isActive, isAvailable, isActiveData);
}
@Test
@@ -183,7 +193,7 @@
mController.onResume();
mController.onPause();
- verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
+ verify(mContext, times(2)).unregisterReceiver(any(BroadcastReceiver.class));
verify(mConnectivityManager, times(2)).unregisterNetworkCallback(
any(ConnectivityManager.NetworkCallback.class));
}
@@ -218,10 +228,11 @@
@Test
public void updateCellularSummary_getActiveSubscriptionInfo_cbrs() {
+ mController.setDefaultDataSubscriptionId(Integer.parseInt(SUB_ID_2));
mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, false, true, true, true, false, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, false, true, true, true, true);
mDefaultDataSubInfo = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, false, true, true, true, true, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, false, true, true, true, false);
mSubscriptionInfoEntityList.add(mActiveSubInfo);
mSubscriptionInfoEntityList.add(mDefaultDataSubInfo);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -231,7 +242,7 @@
assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_2);
mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, false, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
mSubscriptionInfoEntityList.add(mActiveSubInfo);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
mController.onAvailableSubInfoChanged(mSubscriptionInfoEntityList);
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
index 007251a..51aecc5 100644
--- a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
@@ -100,6 +100,8 @@
private List<SubscriptionInfoEntity> mSubscriptionInfoEntity;
private boolean mIsInService;
+ private int mDefaultVoiceSubscriptionId;
+ private int mDefaultSmsSubscriptionId;
@Override
protected List<SubscriptionInfoEntity> getSubscriptionInfoList() {
@@ -118,6 +120,24 @@
public void setInService(boolean inService) {
mIsInService = inService;
}
+
+ @Override
+ protected int getDefaultVoiceSubscriptionId() {
+ return mDefaultVoiceSubscriptionId;
+ }
+
+ @Override
+ protected int getDefaultSmsSubscriptionId() {
+ return mDefaultSmsSubscriptionId;
+ }
+
+ public void setDefaultVoiceSubscriptionId(int subscriptionId) {
+ mDefaultVoiceSubscriptionId = subscriptionId;
+ }
+
+ public void setDefaultSmsSubscriptionId(int subscriptionId) {
+ mDefaultSmsSubscriptionId = subscriptionId;
+ }
}
@Before
@@ -163,15 +183,13 @@
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
int carrierId, String displayName, String mcc, String mnc, String countryIso,
- int cardId, boolean isValid, boolean isActive, boolean isAvailable,
- boolean isDefaultCall, boolean isDefaultSms) {
+ int cardId, boolean isValid, boolean isActive, boolean isAvailable) {
return new SubscriptionInfoEntity(subId, slotId, carrierId,
displayName, displayName, 0, mcc, mnc, countryIso, false, cardId,
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,
- false);
+ "1234567890", true, false, isValid,
+ true, isActive, isAvailable, false);
}
@Test
@@ -181,7 +199,7 @@
mSubInfo1 = setupSubscriptionInfoEntity(INVALID_SUB_ID,
SubscriptionManager.INVALID_SIM_SLOT_INDEX, TelephonyManager.UNKNOWN_CARRIER_ID,
DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1, SUB_COUNTRY_ISO_1,
- TelephonyManager.UNINITIALIZED_CARD_ID, false, true, true, false, false);
+ TelephonyManager.UNINITIALIZED_CARD_ID, false, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
displayPreferenceWithLifecycle();
@@ -202,9 +220,9 @@
mSubInfo1 = setupSubscriptionInfoEntity(INVALID_SUB_ID,
SubscriptionManager.INVALID_SIM_SLOT_INDEX, TelephonyManager.UNKNOWN_CARRIER_ID,
DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1, SUB_COUNTRY_ISO_1,
- TelephonyManager.UNINITIALIZED_CARD_ID, false, true, true, false, false);
+ TelephonyManager.UNINITIALIZED_CARD_ID, false, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -226,7 +244,7 @@
public void getSummary_oneSubscription_returnDisplayName() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, false, false);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
displayPreferenceWithLifecycle();
@@ -239,9 +257,9 @@
public void getSummary_allSubscriptionsHaveNoPreferredStatus_returnDisplayName() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, false, false);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -257,10 +275,13 @@
@UiThreadTest
public void getSummary_oneSubscriptionsIsCallPreferredTwoIsSmsPreferred_returnStatus() {
+ mController.setDefaultVoiceSubscriptionId(Integer.parseInt(SUB_ID_1));
+ mController.setDefaultSmsSubscriptionId(Integer.parseInt(SUB_ID_2));
+
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, false);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, true);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -284,10 +305,13 @@
@UiThreadTest
public void getSummary_oneSubscriptionsIsSmsPreferredTwoIsCallPreferred_returnStatus() {
+ mController.setDefaultSmsSubscriptionId(Integer.parseInt(SUB_ID_1));
+ mController.setDefaultVoiceSubscriptionId(Integer.parseInt(SUB_ID_2));
+
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, false, true);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, true, false);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 2, 2, DISPLAY_NAME_2, SUB_MCC_2,
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -311,10 +335,13 @@
@UiThreadTest
public void getSummary_oneSubscriptionsIsSmsPreferredAndIsCallPreferred_returnStatus() {
+ mController.setDefaultSmsSubscriptionId(Integer.parseInt(SUB_ID_1));
+ mController.setDefaultVoiceSubscriptionId(Integer.parseInt(SUB_ID_1));
+
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
index 1c4238a..c4e0f64 100644
--- a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
@@ -152,13 +152,11 @@
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
int carrierId, String displayName, String mcc, String mnc, String countryIso,
- int cardId, CharSequence defaultSimConfig, boolean isValid, boolean isActive,
- boolean isAvailable, boolean isDefaultCall, boolean isDefaultSms) {
+ int cardId, boolean isValid, boolean isActive, boolean isAvailable) {
return new SubscriptionInfoEntity(subId, slotId, carrierId, displayName, displayName, 0,
mcc, mnc, countryIso, false, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
- "1234567890", true, defaultSimConfig.toString(), false, isValid, true, isActive,
- isAvailable, isDefaultCall, isDefaultSms, false, false, false);
+ "1234567890", true, false, isValid, true, isActive, isAvailable, false);
}
private String setSummaryResId(String resName, String value) {
@@ -173,7 +171,7 @@
@UiThreadTest
public void getSummary_tapToActivePSim() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, "", true, false, true, false, false);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, false, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
displayPreferenceWithLifecycle();
@@ -186,7 +184,7 @@
@UiThreadTest
public void getSummary_inactivePSim() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, "", true, false, true, false, false);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, false, true);
doReturn(true).when(mSubscriptionManager).canDisablePhysicalSubscription();
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -201,15 +199,13 @@
@UiThreadTest
public void getSummary_defaultCalls() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1,
- setSummaryResId("sim_category_default_active_sim",
- setSummaryResId("default_active_sim_calls")), true, true, true, true,
- false);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
displayPreferenceWithLifecycle();
- CharSequence defaultCall = mSubInfo1.defaultSimConfig;
+ CharSequence defaultCall = SubscriptionUtil.getDefaultSimConfig(mContext,
+ Integer.parseInt(SUB_ID_1));
final StringBuilder summary = new StringBuilder();
summary.append(setSummaryResId("sim_category_active_sim", null))
.append(defaultCall);
@@ -225,14 +221,13 @@
.append(", ")
.append(setSummaryResId("default_active_sim_sms"));
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1,
- setSummaryResId("sim_category_default_active_sim", defaultConfig.toString()), true,
- true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
displayPreferenceWithLifecycle();
- CharSequence defaultCall = mSubInfo1.defaultSimConfig;
+ CharSequence defaultCall = SubscriptionUtil.getDefaultSimConfig(mContext,
+ Integer.parseInt(SUB_ID_1));
final StringBuilder summary = new StringBuilder();
summary.append(setSummaryResId("sim_category_active_sim", null))
.append(defaultCall);
@@ -245,9 +240,9 @@
@UiThreadTest
public void getAvailablePhysicalSubscription_withTwoPhysicalSims_returnTwo() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, "", true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, "", true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
diff --git a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
index ffc9f9b..bbec5bb 100644
--- a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
@@ -135,15 +135,12 @@
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
int carrierId, String displayName, String mcc, String mnc, String countryIso,
- int cardId, boolean isValid, boolean isActive, boolean isAvailable,
- boolean isDefaultCall, boolean isDefaultSms) {
+ int cardId, boolean isValid, boolean isActive, boolean isAvailable) {
return new SubscriptionInfoEntity(subId, slotId, carrierId,
displayName, displayName, 0, mcc, mnc, countryIso, false, cardId,
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, false);
+ "1234567890", true, false, isValid, true, isActive, isAvailable, false);
}
@Test
@@ -164,9 +161,9 @@
@Test
public void onPreferenceChange_prefChangedToSub2_callbackCalledCorrectly() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -181,9 +178,9 @@
@Test
public void onPreferenceChange_prefChangedToAlwaysAsk_callbackCalledCorrectly() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -201,9 +198,9 @@
public void onPreferenceChange_prefBecomesAvailable_onPreferenceChangeCallbackNotNull() {
// Start with only one sub active, so the pref is not available
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -225,9 +222,9 @@
@Test
public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -246,9 +243,9 @@
@Test
public void onSubscriptionsChanged_goFromTwoSubscriptionsToOne_prefDisappears() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -273,9 +270,9 @@
@UiThreadTest
public void onSubscriptionsChanged_goFromOneSubscriptionToTwo_prefAppears() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -297,11 +294,11 @@
@Test
public void onSubscriptionsChanged_goFromTwoToThreeSubscriptions_listGetsUpdated() {
mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false);
+ SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
mSubInfo3 = setupSubscriptionInfoEntity(SUB_ID_3, 1, 1, DISPLAY_NAME_3, SUB_MCC_3,
- SUB_MNC_3, SUB_COUNTRY_ISO_3, 1, true, true, true, false, false);
+ SUB_MNC_3, SUB_COUNTRY_ISO_3, 1, true, true, true);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
index 16e3963..0373396 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
@@ -114,15 +114,13 @@
}
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, String displayName,
- boolean isOpportunistic, boolean isValid, boolean isActive, boolean isAvailable,
- boolean isDefaultData) {
+ boolean isOpportunistic, boolean isValid, boolean isActive, boolean isAvailable) {
int id = Integer.parseInt(subId);
return new SubscriptionInfoEntity(subId, id, id,
displayName, displayName, 0, "mcc", "mnc", "countryIso", false, id,
TelephonyManager.DEFAULT_PORT_INDEX, isOpportunistic, null,
SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
- "1234567890", true, "default", false, isValid, true, isActive, isAvailable, false,
- false, isDefaultData, false, false);
+ "1234567890", true, false, isValid, true, isActive, isAvailable, false);
}
private MobileNetworkInfoEntity setupMobileNetworkInfoEntity(String subId,
@@ -141,8 +139,7 @@
@Test
public void isDialogNeeded_disableSingleSim_returnFalse() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true,
- true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
doReturn(1).when(mTelephonyManager).getActiveModemCount();
@@ -151,14 +148,12 @@
@Test
public void isDialogNeeded_enableNonDefaultSimInMultiSimMode_returnTrue() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true,
- false);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), false);
doReturn(1).when(mTelephonyManager).getActiveModemCount();
// Ideally, it would be better if we could set the default data subscription to
// SUB_ID_OTHER, and set that as an active subscription id.
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, false, true, true, true,
- true);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, false, true, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
doReturn(2).when(mTelephonyManager).getActiveModemCount();
@@ -180,8 +175,7 @@
@Test
public void onPreferenceChange_singleSim_On_shouldEnableData() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true,
- true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
mController.setSubscriptionInfoEntity(mSubInfo1);
mController.setMobileNetworkInfoEntity(mNetworkInfo1);
@@ -194,8 +188,7 @@
@Test
public void onPreferenceChange_multiSim_On_shouldEnableData() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true,
- true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
mController.setSubscriptionInfoEntity(mSubInfo1);
mController.setMobileNetworkInfoEntity(mNetworkInfo1);
@@ -219,8 +212,7 @@
@Test
public void updateState_opportunistic_disabled() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true,
- true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
mController.init(mFragmentManager, SUB_ID, mSubInfo1, mNetworkInfo1);
mController.updateState(mPreference);
@@ -232,8 +224,7 @@
@Test
public void updateState_notOpportunistic_enabled() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true,
- true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
mController.init(mFragmentManager, SUB_ID, mSubInfo1, mNetworkInfo1);
mController.updateState(mPreference);