SubscriptionsPreferenceController shows the unique sim description.

Bug: 148303118
Bug: 150370656
Test: atest -c SubscriptionsPreferenceControllerTest
Change-Id: I041536fe0148087a068c6000383b382b0ff4e17c
This commit is contained in:
Jeremy Goldman
2021-01-15 16:32:07 +08:00
parent 8e2ecd5918
commit 9d87cd9126
33 changed files with 153 additions and 71 deletions

View File

@@ -56,6 +56,7 @@ import androidx.preference.Preference;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import com.android.settings.network.ProxySubscriptionManager; import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.network.SubscriptionUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -310,7 +311,8 @@ public class IccLockSettings extends SettingsPreferenceFragment
mTabHost.addTab(buildTabSpec(tag, mTabHost.addTab(buildTabSpec(tag,
String.valueOf(subInfo == null String.valueOf(subInfo == null
? getContext().getString(R.string.sim_editor_title, slot + 1) ? getContext().getString(R.string.sim_editor_title, slot + 1)
: subInfo.getDisplayName()))); : SubscriptionUtil.getUniqueSubscriptionDisplayName(
subInfo, getContext()))));
} }
mTabHost.setCurrentTabByTag(getTagForSlotId(mSlotId)); mTabHost.setCurrentTabByTag(getTagForSlotId(mSlotId));

View File

@@ -47,6 +47,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.core.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper; import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.ConfirmLockPattern; import com.android.settings.password.ConfirmLockPattern;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -194,7 +195,8 @@ public class ResetNetwork extends InstrumentedFragment {
// Set the first selected value to the default // Set the first selected value to the default
selectedIndex = subscriptionNames.size(); selectedIndex = subscriptionNames.size();
} }
String name = record.getDisplayName().toString(); String name = SubscriptionUtil.getUniqueSubscriptionDisplayName(
record, getContext()).toString();
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {
name = record.getNumber(); name = record.getNumber();
} }

View File

@@ -36,6 +36,7 @@ import androidx.preference.PreferenceViewHolder;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.MobileDataEnabledListener; import com.android.settings.network.MobileDataEnabledListener;
import com.android.settings.network.ProxySubscriptionManager; import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.CustomDialogPreferenceCompat; import com.android.settingslib.CustomDialogPreferenceCompat;
@@ -200,12 +201,14 @@ public class CellDataPreference extends CustomDialogPreferenceCompat
final String previousName = (nextSir == null) final String previousName = (nextSir == null)
? getContext().getResources().getString(R.string.sim_selection_required_pref) ? getContext().getResources().getString(R.string.sim_selection_required_pref)
: nextSir.getDisplayName().toString(); : SubscriptionUtil.getUniqueSubscriptionDisplayName(
nextSir, getContext()).toString();
builder.setTitle(R.string.sim_change_data_title); builder.setTitle(R.string.sim_change_data_title);
builder.setMessage(getContext().getString(R.string.sim_change_data_message, builder.setMessage(getContext().getString(R.string.sim_change_data_message,
String.valueOf(currentSir != null ? currentSir.getDisplayName() : null), String.valueOf(currentSir != null
previousName)); ? SubscriptionUtil.getUniqueSubscriptionDisplayName(currentSir, getContext())
: null), previousName));
builder.setPositiveButton(R.string.okay, listener); builder.setPositiveButton(R.string.okay, listener);
builder.setNegativeButton(R.string.cancel, null); builder.setNegativeButton(R.string.cancel, null);

View File

@@ -35,6 +35,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.datausage.lib.DataUsageLib;
import com.android.settings.network.ProxySubscriptionManager; import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.network.SubscriptionUtil;
import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
@@ -170,9 +171,11 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
category.setTemplate(DataUsageLib.getMobileTemplate(getContext(), subId), category.setTemplate(DataUsageLib.getMobileTemplate(getContext(), subId),
subId, services); subId, services);
category.pushTemplates(services); category.pushTemplates(services);
if (subInfo != null && !TextUtils.isEmpty(subInfo.getDisplayName())) { final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
subInfo, getContext());
if (subInfo != null && !TextUtils.isEmpty(displayName)) {
Preference title = category.findPreference(KEY_MOBILE_USAGE_TITLE); Preference title = category.findPreference(KEY_MOBILE_USAGE_TITLE);
title.setTitle(subInfo.getDisplayName()); title.setTitle(displayName);
} }
} }

View File

@@ -26,6 +26,12 @@ import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.util.ArrayMap; import android.util.ArrayMap;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.telephony.MobileNetworkActivity; import com.android.settings.network.telephony.MobileNetworkActivity;
@@ -35,12 +41,6 @@ import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
/** /**
* This populates the entries on a page which lists all available mobile subscriptions. Each entry * This populates the entries on a page which lists all available mobile subscriptions. Each entry
* has the name of the subscription with some subtext giving additional detail, and clicking on the * has the name of the subscription with some subtext giving additional detail, and clicking on the
@@ -106,7 +106,9 @@ public class MobileNetworkListController extends AbstractPreferenceController im
pref = new Preference(mPreferenceScreen.getContext()); pref = new Preference(mPreferenceScreen.getContext());
mPreferenceScreen.addPreference(pref); mPreferenceScreen.addPreference(pref);
} }
pref.setTitle(info.getDisplayName()); final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
info, mContext);
pref.setTitle(displayName);
if (info.isEmbedded()) { if (info.isEmbedded()) {
if (mSubscriptionManager.isActiveSubscriptionId(subId)) { if (mSubscriptionManager.isActiveSubscriptionId(subId)) {
@@ -121,7 +123,7 @@ public class MobileNetworkListController extends AbstractPreferenceController im
pref.setSummary(mContext.getString(R.string.mobile_network_inactive_sim)); pref.setSummary(mContext.getString(R.string.mobile_network_inactive_sim));
} else { } else {
pref.setSummary(mContext.getString(R.string.mobile_network_tap_to_activate, pref.setSummary(mContext.getString(R.string.mobile_network_tap_to_activate,
SubscriptionUtil.getDisplayName(info))); displayName));
} }
} }

View File

@@ -116,13 +116,14 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
return null; return null;
} else if (subs.size() == 1) { } else if (subs.size() == 1) {
final SubscriptionInfo info = subs.get(0); final SubscriptionInfo info = subs.get(0);
final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
info, mContext);
final int subId = info.getSubscriptionId(); final int subId = info.getSubscriptionId();
if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId) if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId)
&& !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) { && !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
return mContext.getString(R.string.mobile_network_tap_to_activate, return mContext.getString(R.string.mobile_network_tap_to_activate, displayName);
SubscriptionUtil.getDisplayName(info));
} else { } else {
return subs.get(0).getDisplayName(); return displayName;
} }
} else { } else {
if (com.android.settings.Utils.isProviderModelEnabled(mContext)) { if (com.android.settings.Utils.isProviderModelEnabled(mContext)) {
@@ -135,8 +136,9 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
} }
private CharSequence getSummaryForProviderModel(List<SubscriptionInfo> subs) { private CharSequence getSummaryForProviderModel(List<SubscriptionInfo> subs) {
return String.join(", ", subs.stream().map(SubscriptionInfo::getDisplayName) return String.join(", ", subs.stream().map(subInfo -> {
.collect(Collectors.toList())); return SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext);
}).collect(Collectors.toList()));
} }
private void startAddSimFlow() { private void startAddSimFlow() {

View File

@@ -91,20 +91,22 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder();
for (SubscriptionInfo subInfo : subs) { for (SubscriptionInfo subInfo : subs) {
int subsSize = subs.size(); int subsSize = subs.size();
final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
subInfo, mContext);
// Set displayName as summary if there is only one valid SIM. // Set displayName as summary if there is only one valid SIM.
if (subsSize == 1 if (subsSize == 1
&& SubscriptionManager.isValidSubscriptionId(subInfo.getSubscriptionId())) { && SubscriptionManager.isValidSubscriptionId(subInfo.getSubscriptionId())) {
return subInfo.getDisplayName(); return displayName;
} }
CharSequence status = getPreferredStatus(subInfo); CharSequence status = getPreferredStatus(subInfo);
if (status.toString().isEmpty()) { if (status.toString().isEmpty()) {
// If there are 2 or more SIMs and one of these has no preferred status, // If there are 2 or more SIMs and one of these has no preferred status,
// set only its displayName as summary. // set only its displayName as summary.
summary.append(subInfo.getDisplayName()); summary.append(displayName);
} else { } else {
summary.append(subInfo.getDisplayName()) summary.append(displayName)
.append(" (") .append(" (")
.append(status) .append(status)
.append(")"); .append(")");

View File

@@ -261,7 +261,8 @@ public class ProviderModelSliceHelper {
final SubscriptionInfo defaultSubscription = mSubscriptionManager.getActiveSubscriptionInfo( final SubscriptionInfo defaultSubscription = mSubscriptionManager.getActiveSubscriptionInfo(
mSubscriptionManager.getDefaultDataSubscriptionId()); mSubscriptionManager.getDefaultDataSubscriptionId());
if (defaultSubscription != null) { if (defaultSubscription != null) {
title = defaultSubscription.getDisplayName().toString(); title = SubscriptionUtil.getUniqueSubscriptionDisplayName(
defaultSubscription, mContext).toString();
} }
return title; return title;
} }

View File

@@ -241,7 +241,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
startMobileNetworkActivity(mContext, subInfo.getSubscriptionId())); startMobileNetworkActivity(mContext, subInfo.getSubscriptionId()));
} }
mSubsGearPref.setTitle(subInfo.getDisplayName()); mSubsGearPref.setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName(
subInfo, mContext));
mSubsGearPref.setOrder(mStartOrder); mSubsGearPref.setOrder(mStartOrder);
mSubsGearPref.setSummary(getMobilePreferenceSummary(subInfo.getSubscriptionId())); mSubsGearPref.setSummary(getMobilePreferenceSummary(subInfo.getSubscriptionId()));
mSubsGearPref.setIcon(getIcon(subInfo.getSubscriptionId())); mSubsGearPref.setIcon(getIcon(subInfo.getSubscriptionId()));
@@ -322,7 +323,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
pref = new Preference(mPreferenceGroup.getContext()); pref = new Preference(mPreferenceGroup.getContext());
mPreferenceGroup.addPreference(pref); mPreferenceGroup.addPreference(pref);
} }
pref.setTitle(info.getDisplayName()); pref.setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName(info, mContext));
final boolean isDefaultForData = (subId == dataDefaultSubId); final boolean isDefaultForData = (subId == dataDefaultSubId);
pref.setSummary(getSummary(subId, isDefaultForData)); pref.setSummary(getSummary(subId, isDefaultForData));
setIcon(pref, subId, isDefaultForData); setIcon(pref, subId, isDefaultForData);
@@ -584,4 +585,4 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
NO_CELL_DATA_TYPE_ICON, cutOut); NO_CELL_DATA_TYPE_ICON, cutOut);
} }
} }
} }

View File

@@ -145,7 +145,7 @@ public class ContactDiscoveryPreferenceController extends TelephonyTogglePrefere
for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(context)) { for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(context)) {
if (mSubId == info.getSubscriptionId()) { if (mSubId == info.getSubscriptionId()) {
result = info.getDisplayName(); result = SubscriptionUtil.getUniqueSubscriptionDisplayName(info, context);
break; break;
} }
} }

View File

@@ -126,7 +126,7 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere
final SubscriptionInfo info = getDefaultSubscriptionInfo(); final SubscriptionInfo info = getDefaultSubscriptionInfo();
if (info != null) { if (info != null) {
// display subscription based account // display subscription based account
return info.getDisplayName(); return SubscriptionUtil.getUniqueSubscriptionDisplayName(info, mContext);
} else { } else {
if (isAskEverytimeSupported()) { if (isAskEverytimeSupported()) {
return mContext.getString(R.string.calls_and_sms_ask_every_time); return mContext.getString(R.string.calls_and_sms_ask_every_time);
@@ -160,7 +160,8 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere
if (Utils.isProviderModelEnabled(mContext) && subs.size() == 1) { if (Utils.isProviderModelEnabled(mContext) && subs.size() == 1) {
mPreference.setEnabled(false); mPreference.setEnabled(false);
mPreference.setSummary(subs.get(0).getDisplayName()); mPreference.setSummary(SubscriptionUtil.getUniqueSubscriptionDisplayName(
subs.get(0), mContext));
return; return;
} }
@@ -171,7 +172,7 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere
if (sub.isOpportunistic()) { if (sub.isOpportunistic()) {
continue; continue;
} }
displayNames.add(sub.getDisplayName()); displayNames.add(SubscriptionUtil.getUniqueSubscriptionDisplayName(sub, mContext));
final int subId = sub.getSubscriptionId(); final int subId = sub.getSubscriptionId();
subscriptionIds.add(Integer.toString(subId)); subscriptionIds.add(Integer.toString(subId));
if (subId == serviceDefaultSubId) { if (subId == serviceDefaultSubId) {

View File

@@ -16,7 +16,6 @@
package com.android.settings.network.telephony; package com.android.settings.network.telephony;
import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@@ -141,7 +140,9 @@ public class DeleteEuiccSubscriptionDialogActivity extends SubscriptionActionDia
DIALOG_TAG_DELETE_SIM_CONFIRMATION, DIALOG_TAG_DELETE_SIM_CONFIRMATION,
getString(R.string.erase_sim_dialog_title), getString(R.string.erase_sim_dialog_title),
getString( getString(
R.string.erase_sim_dialog_text, mSubscriptionToBeDeleted.getDisplayName()), R.string.erase_sim_dialog_text,
SubscriptionUtil.getUniqueSubscriptionDisplayName(
mSubscriptionToBeDeleted, this)),
getString(R.string.erase_sim_confirm_button), getString(R.string.erase_sim_confirm_button),
getString(R.string.cancel)); getString(R.string.cancel));
} }

View File

@@ -28,6 +28,7 @@ import androidx.appcompat.app.AlertDialog;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.settings.wifi.WifiPickerTrackerHelper;
@@ -97,12 +98,14 @@ public class MobileDataDialogFragment extends InstrumentedDialogFragment impleme
final String previousName = (nextSubInfo == null) final String previousName = (nextSubInfo == null)
? getContext().getResources().getString( ? getContext().getResources().getString(
R.string.sim_selection_required_pref) R.string.sim_selection_required_pref)
: nextSubInfo.getDisplayName().toString(); : SubscriptionUtil.getUniqueSubscriptionDisplayName(
nextSubInfo, getContext()).toString();
final String newName = (currentSubInfo == null) final String newName = (currentSubInfo == null)
? getContext().getResources().getString( ? getContext().getResources().getString(
R.string.sim_selection_required_pref) R.string.sim_selection_required_pref)
: currentSubInfo.getDisplayName().toString(); : SubscriptionUtil.getUniqueSubscriptionDisplayName(
currentSubInfo, getContext()).toString();
return new AlertDialog.Builder(context) return new AlertDialog.Builder(context)
.setTitle(context.getString(R.string.sim_change_data_title, newName)) .setTitle(context.getString(R.string.sim_change_data_title, newName))

View File

@@ -167,7 +167,7 @@ public class MobileDataSlice implements CustomSliceable {
return null; // no summary text return null; // no summary text
} }
return defaultSubscription.getDisplayName(); return SubscriptionUtil.getUniqueSubscriptionDisplayName(defaultSubscription, mContext);
} }
private PendingIntent getPrimaryAction() { private PendingIntent getPrimaryAction() {

View File

@@ -207,7 +207,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity
// title will just default to the label for this activity that's already specified in // title will just default to the label for this activity that's already specified in
// AndroidManifest.xml. // AndroidManifest.xml.
if (subscription != null) { if (subscription != null) {
setTitle(subscription.getDisplayName()); setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName(subscription, this));
} }
} }
@@ -299,7 +299,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity
CharSequence carrierName = ""; CharSequence carrierName = "";
if (info != null) { if (info != null) {
subId = info.getSubscriptionId(); subId = info.getSubscriptionId();
carrierName = info.getDisplayName(); carrierName = SubscriptionUtil.getUniqueSubscriptionDisplayName(info, this);
} }
// If this activity was launched using ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN, show the // If this activity was launched using ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN, show the
// associated dialog only if the opt-in has not been granted yet. // associated dialog only if the opt-in has not been granted yet.

View File

@@ -32,13 +32,11 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Log;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent; import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -194,7 +192,7 @@ public class NetworkProviderWifiCallingGroup extends
mPreferenceGroup.addPreference(pref); mPreferenceGroup.addPreference(pref);
} }
CharSequence title = info.getDisplayName(); CharSequence title = SubscriptionUtil.getUniqueSubscriptionDisplayName(info, mContext);
if (getPhoneAccountHandleForSubscriptionId(subId) != null) { if (getPhoneAccountHandleForSubscriptionId(subId) != null) {
final Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext, final Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
getPhoneAccountHandleForSubscriptionId(subId)); getPhoneAccountHandleForSubscriptionId(subId));

View File

@@ -47,6 +47,7 @@ import androidx.appcompat.app.AlertDialog;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.network.SubscriptionUtil;
import com.android.settingslib.DeviceInfoUtils; import com.android.settingslib.DeviceInfoUtils;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
@@ -163,7 +164,8 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen
Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId); Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId);
return; return;
} }
final CharSequence displayName = info.getDisplayName(); final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
info, getContext());
mNameView.setText(displayName); mNameView.setText(displayName);
if (!TextUtils.isEmpty(displayName)) { if (!TextUtils.isEmpty(displayName)) {
mNameView.setSelection(displayName.length()); mNameView.setSelection(displayName.length());

View File

@@ -201,7 +201,8 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
showProgressDialog( showProgressDialog(
getString( getString(
R.string.sim_action_switch_sub_dialog_progress, R.string.sim_action_switch_sub_dialog_progress,
mSubInfo.getDisplayName())); SubscriptionUtil.getUniqueSubscriptionDisplayName(
mSubInfo, this)));
mSwitchToEuiccSubscriptionSidecar.run(mSubInfo.getSubscriptionId()); mSwitchToEuiccSubscriptionSidecar.run(mSubInfo.getSubscriptionId());
return; return;
} }
@@ -345,13 +346,14 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
/* Displays the SIM toggling confirmation dialog. */ /* Displays the SIM toggling confirmation dialog. */
private void showDisableSimConfirmDialog() { private void showDisableSimConfirmDialog() {
final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
mSubInfo, this);
String title = String title =
mSubInfo == null || TextUtils.isEmpty(mSubInfo.getDisplayName()) mSubInfo == null || TextUtils.isEmpty(displayName)
? getString( ? getString(
R.string.privileged_action_disable_sub_dialog_title_without_carrier) R.string.privileged_action_disable_sub_dialog_title_without_carrier)
: getString( : getString(
R.string.privileged_action_disable_sub_dialog_title, R.string.privileged_action_disable_sub_dialog_title, displayName);
mSubInfo.getDisplayName());
ConfirmDialogFragment.show( ConfirmDialogFragment.show(
this, this,
@@ -402,40 +404,48 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
private String getSwitchDialogPosBtnText() { private String getSwitchDialogPosBtnText() {
return mIsEsimOperation return mIsEsimOperation
? getString( ? getString(
R.string.sim_action_switch_sub_dialog_confirm, mSubInfo.getDisplayName()) R.string.sim_action_switch_sub_dialog_confirm,
SubscriptionUtil.getUniqueSubscriptionDisplayName(mSubInfo, this))
: getString(R.string.sim_switch_button); : getString(R.string.sim_switch_button);
} }
private String getEnableSubscriptionTitle() { private String getEnableSubscriptionTitle() {
if (mSubInfo == null || TextUtils.isEmpty(mSubInfo.getDisplayName())) { final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
mSubInfo, this);
if (mSubInfo == null || TextUtils.isEmpty(displayName)) {
return getString(R.string.sim_action_enable_sub_dialog_title_without_carrier_name); return getString(R.string.sim_action_enable_sub_dialog_title_without_carrier_name);
} }
return getString(R.string.sim_action_enable_sub_dialog_title, mSubInfo.getDisplayName()); return getString(R.string.sim_action_enable_sub_dialog_title, displayName);
} }
private String getSwitchSubscriptionTitle() { private String getSwitchSubscriptionTitle() {
if (mIsEsimOperation) { if (mIsEsimOperation) {
return getString( return getString(
R.string.sim_action_switch_sub_dialog_title, mSubInfo.getDisplayName()); R.string.sim_action_switch_sub_dialog_title,
SubscriptionUtil.getUniqueSubscriptionDisplayName(mSubInfo, this));
} }
return getString(R.string.sim_action_switch_psim_dialog_title); return getString(R.string.sim_action_switch_psim_dialog_title);
} }
private String getSwitchDialogBodyMsg(SubscriptionInfo activeSub, boolean betweenEsim) { private String getSwitchDialogBodyMsg(SubscriptionInfo activeSub, boolean betweenEsim) {
final CharSequence subInfoName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
mSubInfo, this);
final CharSequence activeSubName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
activeSub, this);
if (betweenEsim && mIsEsimOperation) { if (betweenEsim && mIsEsimOperation) {
return getString( return getString(
R.string.sim_action_switch_sub_dialog_text_downloaded, R.string.sim_action_switch_sub_dialog_text_downloaded,
mSubInfo.getDisplayName(), subInfoName,
activeSub.getDisplayName()); activeSubName);
} else if (mIsEsimOperation) { } else if (mIsEsimOperation) {
return getString( return getString(
R.string.sim_action_switch_sub_dialog_text, R.string.sim_action_switch_sub_dialog_text,
mSubInfo.getDisplayName(), subInfoName,
activeSub.getDisplayName()); activeSubName);
} else { } else {
return getString( return getString(
R.string.sim_action_switch_sub_dialog_text_single_sim, R.string.sim_action_switch_sub_dialog_text_single_sim,
activeSub.getDisplayName()); activeSubName);
} }
} }

View File

@@ -30,6 +30,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
/** /**
* Presents a dialog asking the user if they want to update all services to use a given "preferred" * Presents a dialog asking the user if they want to update all services to use a given "preferred"
@@ -86,7 +87,9 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements
return; return;
} }
final String message = final String message =
getContext().getString(R.string.sim_preferred_message, info.getDisplayName()); getContext().getString(
R.string.sim_preferred_message,
SubscriptionUtil.getUniqueSubscriptionDisplayName(info, getContext()));
dialog.setMessage(message); dialog.setMessage(message);
} }

View File

@@ -117,10 +117,12 @@ public class SimActivationNotifier {
return; return;
} }
CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
activeRemovableSub, mContext);
String carrierName = String carrierName =
TextUtils.isEmpty(activeRemovableSub.getDisplayName()) TextUtils.isEmpty(displayName)
? mContext.getString(R.string.sim_card_label) ? mContext.getString(R.string.sim_card_label)
: activeRemovableSub.getDisplayName().toString(); : displayName.toString();
String title = String title =
mContext.getString( mContext.getString(
R.string.post_dsds_reboot_notification_title_with_carrier, carrierName); R.string.post_dsds_reboot_notification_title_with_carrier, carrierName);

View File

@@ -38,6 +38,7 @@ import androidx.appcompat.app.AlertDialog;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.network.SubscriptionUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -179,7 +180,7 @@ public class SimListDialogFragment extends SimDialogFragment implements
icon.setImageTintList( icon.setImageTintList(
Utils.getColorAttr(mContext, android.R.attr.textColorSecondary)); Utils.getColorAttr(mContext, android.R.attr.textColorSecondary));
} else { } else {
title.setText(sub.getDisplayName()); title.setText(SubscriptionUtil.getUniqueSubscriptionDisplayName(sub, mContext));
summary.setText(isMdnProvisioned(sub.getNumber()) ? sub.getNumber() : ""); summary.setText(isMdnProvisioned(sub.getNumber()) ? sub.getNumber() : "");
icon.setImageBitmap(sub.createIconBitmap(mContext)); icon.setImageBitmap(sub.createIconBitmap(mContext));

View File

@@ -139,7 +139,8 @@ public class SimSelectNotification extends BroadcastReceiver {
} }
CharSequence notificationSummary = context.getResources().getString( CharSequence notificationSummary = context.getResources().getString(
R.string.enable_mms_notification_summary, SubscriptionUtil.getDisplayName(info)); R.string.enable_mms_notification_summary,
SubscriptionUtil.getUniqueSubscriptionDisplayName(info, context));
cancelEnableMmsNotification(context); cancelEnableMmsNotification(context);

View File

@@ -69,6 +69,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.ProxySelector; import com.android.settings.ProxySelector;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.Utils; import com.android.settingslib.Utils;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
@@ -1473,8 +1474,8 @@ public class WifiConfigController implements TextWatcher,
} }
// Shows display name of each active subscription. // Shows display name of each active subscription.
final String[] displayNames = mActiveSubscriptionInfos.stream().map( final String[] displayNames = SubscriptionUtil.getUniqueSubscriptionDisplayNames(
SubscriptionInfo::getDisplayName).toArray(String[]::new); mContext).values().stream().toArray(String[]::new);
mEapSimSpinner.setAdapter(getSpinnerAdapter(displayNames)); mEapSimSpinner.setAdapter(getSpinnerAdapter(displayNames));
mEapSimSpinner.setSelection(0 /* position */); mEapSimSpinner.setSelection(0 /* position */);
if (displayNames.length == 1) { if (displayNames.length == 1) {

View File

@@ -67,6 +67,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.ProxySelector; import com.android.settings.ProxySelector;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2; import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2;
import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.Utils; import com.android.settingslib.Utils;
@@ -1437,8 +1438,8 @@ public class WifiConfigController2 implements TextWatcher,
} }
// Shows display name of each active subscription. // Shows display name of each active subscription.
final String[] displayNames = mActiveSubscriptionInfos.stream().map( final String[] displayNames = SubscriptionUtil.getUniqueSubscriptionDisplayNames(
SubscriptionInfo::getDisplayName).toArray(String[]::new); mContext).values().stream().toArray(String[]::new);
mEapSimSpinner.setAdapter(getSpinnerAdapter(displayNames)); mEapSimSpinner.setAdapter(getSpinnerAdapter(displayNames));
mEapSimSpinner.setSelection(0 /* position */); mEapSimSpinner.setSelection(0 /* position */);
if (displayNames.length == 1) { if (displayNames.length == 1) {

View File

@@ -163,7 +163,8 @@ public class WifiCallingSettings extends InstrumentedFragment implements HelpRes
@Override @Override
public CharSequence getPageTitle(int position) { public CharSequence getPageTitle(int position) {
return String.valueOf(mSil.get(position).getDisplayName()); return String.valueOf(SubscriptionUtil.getUniqueSubscriptionDisplayName(
mSil.get(position), getContext()));
} }
@Override @Override

View File

@@ -69,6 +69,7 @@ import com.android.settings.Utils;
import com.android.settings.core.FeatureFlags; import com.android.settings.core.FeatureFlags;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController; import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.widget.EntityHeaderController; import com.android.settings.widget.EntityHeaderController;
import com.android.settings.wifi.WifiDialog2; import com.android.settings.wifi.WifiDialog2;
import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener; import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener;
@@ -696,8 +697,10 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
final int defaultDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId(); final int defaultDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId();
if (activeSubscriptionInfos != null) { if (activeSubscriptionInfos != null) {
for (SubscriptionInfo subscriptionInfo : activeSubscriptionInfos) { for (SubscriptionInfo subscriptionInfo : activeSubscriptionInfos) {
final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
subscriptionInfo, mContext);
if (config.carrierId == subscriptionInfo.getCarrierId()) { if (config.carrierId == subscriptionInfo.getCarrierId()) {
mEapSimSubscriptionPref.setSummary(subscriptionInfo.getDisplayName()); mEapSimSubscriptionPref.setSummary(displayName);
return; return;
} }
@@ -705,7 +708,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
// defaultDataSubscriptionId. // defaultDataSubscriptionId.
if (config.carrierId == TelephonyManager.UNKNOWN_CARRIER_ID if (config.carrierId == TelephonyManager.UNKNOWN_CARRIER_ID
&& defaultDataSubscriptionId == subscriptionInfo.getSubscriptionId()) { && defaultDataSubscriptionId == subscriptionInfo.getSubscriptionId()) {
mEapSimSubscriptionPref.setSummary(subscriptionInfo.getDisplayName()); mEapSimSubscriptionPref.setSummary(displayName);
return; return;
} }
} }

View File

@@ -155,6 +155,7 @@ public class MobileNetworkSummaryControllerTest {
when(sub1.getSubscriptionId()).thenReturn(1); when(sub1.getSubscriptionId()).thenReturn(1);
when(sub1.getDisplayName()).thenReturn("sub1"); when(sub1.getDisplayName()).thenReturn("sub1");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onResume(); mController.onResume();
assertThat(mController.getSummary()).isEqualTo("sub1"); assertThat(mController.getSummary()).isEqualTo("sub1");
@@ -194,6 +195,7 @@ public class MobileNetworkSummaryControllerTest {
when(sub1.getSubscriptionId()).thenReturn(1); when(sub1.getSubscriptionId()).thenReturn(1);
when(sub1.getDisplayName()).thenReturn("sub1"); when(sub1.getDisplayName()).thenReturn("sub1");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
when(mSubscriptionManager.isActiveSubscriptionId(eq(1))).thenReturn(false); when(mSubscriptionManager.isActiveSubscriptionId(eq(1))).thenReturn(false);
when(mSubscriptionManager.canDisablePhysicalSubscription()).thenReturn(true); when(mSubscriptionManager.canDisablePhysicalSubscription()).thenReturn(true);
@@ -238,6 +240,7 @@ public class MobileNetworkSummaryControllerTest {
when(sub2.getDisplayName()).thenReturn("sub2"); when(sub2.getDisplayName()).thenReturn("sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onResume(); mController.onResume();
assertThat(mController.getSummary()).isEqualTo("2 SIMs"); assertThat(mController.getSummary()).isEqualTo("2 SIMs");
@@ -267,6 +270,7 @@ public class MobileNetworkSummaryControllerTest {
when(sub2.getDisplayName()).thenReturn("sub2"); when(sub2.getDisplayName()).thenReturn("sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onResume(); mController.onResume();
assertThat(mController.getSummary()).isEqualTo("sub1"); assertThat(mController.getSummary()).isEqualTo("sub1");
@@ -295,6 +299,7 @@ public class MobileNetworkSummaryControllerTest {
when(sub2.getDisplayName()).thenReturn("sub2"); when(sub2.getDisplayName()).thenReturn("sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL, true); FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL, true);
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onResume(); mController.onResume();

View File

@@ -33,6 +33,7 @@ import android.content.DialogInterface;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import org.junit.Test; import org.junit.Test;
@@ -40,6 +41,8 @@ import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import java.util.Arrays;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowAlertDialogCompat.class) @Config(shadows = ShadowAlertDialogCompat.class)
public class PreferredSimDialogFragmentTest extends public class PreferredSimDialogFragmentTest extends
@@ -72,6 +75,7 @@ public class PreferredSimDialogFragmentTest extends
@Test @Test
public void onCreateDialog_twoSimsSelectFirst_correctMessage() { public void onCreateDialog_twoSimsSelectFirst_correctMessage() {
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 0); mIntent.putExtra(PREFERRED_SIM, 0);
final AlertDialog alertDialog = startDialog(); final AlertDialog alertDialog = startDialog();
@@ -83,6 +87,7 @@ public class PreferredSimDialogFragmentTest extends
@Test @Test
public void onCreateDialog_twoSimsSelectSecond_correctMessage() { public void onCreateDialog_twoSimsSelectSecond_correctMessage() {
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 1); mIntent.putExtra(PREFERRED_SIM, 1);
final AlertDialog alertDialog = startDialog(); final AlertDialog alertDialog = startDialog();

View File

@@ -62,6 +62,7 @@ import android.telephony.TelephonyManager;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import org.junit.Before; import org.junit.Before;
@@ -73,6 +74,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import java.util.Arrays;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowAlertDialogCompat.class) @Config(shadows = ShadowAlertDialogCompat.class)
public class SimSelectNotificationTest { public class SimSelectNotificationTest {
@@ -117,6 +120,7 @@ public class SimSelectNotificationTest {
.thenReturn(mNotificationManager); .thenReturn(mNotificationManager);
when(mContext.getSystemService(Context.TELEPHONY_SERVICE)) when(mContext.getSystemService(Context.TELEPHONY_SERVICE))
.thenReturn(mTelephonyManager); .thenReturn(mTelephonyManager);
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)) when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE))
.thenReturn(mSubscriptionManager); .thenReturn(mSubscriptionManager);
when(mContext.getApplicationInfo()).thenReturn(new ApplicationInfo()); when(mContext.getApplicationInfo()).thenReturn(new ApplicationInfo());
@@ -126,8 +130,10 @@ public class SimSelectNotificationTest {
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false); when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false);
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSubInfo));
when(mSubscriptionManager.isActiveSubscriptionId(mSubId)).thenReturn(true); when(mSubscriptionManager.isActiveSubscriptionId(mSubId)).thenReturn(true);
when(mSubscriptionManager.getActiveSubscriptionInfo(mSubId)).thenReturn(mSubInfo); when(mSubscriptionManager.getActiveSubscriptionInfo(mSubId)).thenReturn(mSubInfo);
when(mSubInfo.getSubscriptionId()).thenReturn(mSubId);
when(mSubInfo.getDisplayName()).thenReturn(mFakeDisplayName); when(mSubInfo.getDisplayName()).thenReturn(mFakeDisplayName);
when(mContext.getResources()).thenReturn(mResources); when(mContext.getResources()).thenReturn(mResources);

View File

@@ -830,6 +830,8 @@ public class WifiConfigController2Test {
when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP); when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class); final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class);
final int carrierId = 6; final int carrierId = 6;
when(subscriptionInfo.getSubscriptionId()).thenReturn(carrierId);
when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER");
when(subscriptionInfo.getCarrierId()).thenReturn(carrierId); when(subscriptionInfo.getCarrierId()).thenReturn(carrierId);
when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo)); mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));

View File

@@ -625,6 +625,8 @@ public class WifiConfigControllerTest {
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP); when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class); final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class);
final int carrierId = 6; final int carrierId = 6;
when(subscriptionInfo.getSubscriptionId()).thenReturn(carrierId);
when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER");
when(subscriptionInfo.getCarrierId()).thenReturn(carrierId); when(subscriptionInfo.getCarrierId()).thenReturn(carrierId);
when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo)); mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));

View File

@@ -54,6 +54,8 @@ import java.util.Collections;
public class WifiCallingSettingsTest { public class WifiCallingSettingsTest {
private static final int SUB_ID1 = 111; private static final int SUB_ID1 = 111;
private static final int SUB_ID2 = 222; private static final int SUB_ID2 = 222;
private static final CharSequence DISPLAY_NAME1 = "Carrier1";
private static final CharSequence DISPLAY_NAME2 = "Carrier2";
private Context mContext; private Context mContext;
@@ -87,6 +89,7 @@ public class WifiCallingSettingsTest {
@Test @Test
public void setupFragment_noSubscriptions_noCrash() { public void setupFragment_noSubscriptions_noCrash() {
SubscriptionUtil.setActiveSubscriptionsForTesting(null);
FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId*/, FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId*/,
null /* bundle */); null /* bundle */);
} }
@@ -119,6 +122,8 @@ public class WifiCallingSettingsTest {
final SubscriptionInfo info2 = mock(SubscriptionInfo.class); final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUB_ID1); when(info1.getSubscriptionId()).thenReturn(SUB_ID1);
when(info2.getSubscriptionId()).thenReturn(SUB_ID2); when(info2.getSubscriptionId()).thenReturn(SUB_ID2);
when(info1.getDisplayName()).thenReturn(DISPLAY_NAME1);
when(info2.getDisplayName()).thenReturn(DISPLAY_NAME2);
SubscriptionUtil.setActiveSubscriptionsForTesting(new ArrayList<>( SubscriptionUtil.setActiveSubscriptionsForTesting(new ArrayList<>(
Arrays.asList(info1, info2))); Arrays.asList(info1, info2)));

View File

@@ -61,10 +61,13 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class ProviderModelSliceHelperTest { public class ProviderModelSliceHelperTest {
private static final int DEFAULT_SUBID = 1;
private Context mContext; private Context mContext;
private MockProviderModelSliceHelper mProviderModelSliceHelper; private MockProviderModelSliceHelper mProviderModelSliceHelper;
private PersistableBundle mBundle; private PersistableBundle mBundle;
@@ -168,10 +171,15 @@ public class ProviderModelSliceHelperTest {
String expectDisplayName = "Name1"; String expectDisplayName = "Name1";
String expectedSubtitle = "5G"; String expectedSubtitle = "5G";
String networkType = "5G"; String networkType = "5G";
int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
final int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
when(mDefaultDataSubscriptionInfo.getSubscriptionId()).thenReturn(defaultDataSubId);
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName);
when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn(
mDefaultDataSubscriptionInfo); mDefaultDataSubscriptionInfo);
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName); when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mDefaultDataSubscriptionInfo));
when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE); when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false); mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false);
addNetworkTransportType(NetworkCapabilities.TRANSPORT_WIFI); addNetworkTransportType(NetworkCapabilities.TRANSPORT_WIFI);
@@ -194,10 +202,13 @@ public class ProviderModelSliceHelperTest {
String expectedSubtitle = ResourcesUtils.getResourcesString(mContext, String expectedSubtitle = ResourcesUtils.getResourcesString(mContext,
"preference_summary_default_combination", connectedText, networkType); "preference_summary_default_combination", connectedText, networkType);
int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId(); final int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
when(mDefaultDataSubscriptionInfo.getSubscriptionId()).thenReturn(defaultDataSubId);
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName);
when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn( when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn(
mDefaultDataSubscriptionInfo); mDefaultDataSubscriptionInfo);
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName); when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mDefaultDataSubscriptionInfo));
when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE); when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false); mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false);
addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);