From 9d87cd9126a759fc6f35ffafd05f614d830ee798 Mon Sep 17 00:00:00 2001 From: Jeremy Goldman Date: Fri, 15 Jan 2021 16:32:07 +0800 Subject: [PATCH] SubscriptionsPreferenceController shows the unique sim description. Bug: 148303118 Bug: 150370656 Test: atest -c SubscriptionsPreferenceControllerTest Change-Id: I041536fe0148087a068c6000383b382b0ff4e17c --- src/com/android/settings/IccLockSettings.java | 4 ++- src/com/android/settings/ResetNetwork.java | 4 ++- .../datausage/CellDataPreference.java | 9 +++-- .../settings/datausage/DataUsageSummary.java | 7 ++-- .../network/MobileNetworkListController.java | 18 +++++----- .../MobileNetworkSummaryController.java | 12 ++++--- .../NetworkProviderCallsSmsController.java | 8 +++-- .../network/ProviderModelSliceHelper.java | 3 +- .../SubscriptionsPreferenceController.java | 7 ++-- .../ContactDiscoveryPreferenceController.java | 2 +- .../DefaultSubscriptionController.java | 7 ++-- ...DeleteEuiccSubscriptionDialogActivity.java | 5 +-- .../telephony/MobileDataDialogFragment.java | 7 ++-- .../network/telephony/MobileDataSlice.java | 2 +- .../telephony/MobileNetworkActivity.java | 4 +-- .../NetworkProviderWifiCallingGroup.java | 4 +-- .../RenameMobileNetworkDialogFragment.java | 4 ++- .../ToggleSubscriptionDialogActivity.java | 36 ++++++++++++------- .../sim/PreferredSimDialogFragment.java | 5 ++- .../settings/sim/SimActivationNotifier.java | 6 ++-- .../settings/sim/SimListDialogFragment.java | 3 +- .../settings/sim/SimSelectNotification.java | 3 +- .../settings/wifi/WifiConfigController.java | 5 +-- .../settings/wifi/WifiConfigController2.java | 5 +-- .../wifi/calling/WifiCallingSettings.java | 3 +- .../WifiDetailPreferenceController2.java | 7 ++-- .../MobileNetworkSummaryControllerTest.java | 5 +++ .../sim/PreferredSimDialogFragmentTest.java | 5 +++ .../sim/SimSelectNotificationTest.java | 6 ++++ .../wifi/WifiConfigController2Test.java | 2 ++ .../wifi/WifiConfigControllerTest.java | 2 ++ .../wifi/calling/WifiCallingSettingsTest.java | 5 +++ .../network/ProviderModelSliceHelperTest.java | 19 +++++++--- 33 files changed, 153 insertions(+), 71 deletions(-) diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java index a9b5b31010e..e89e84b9dfb 100644 --- a/src/com/android/settings/IccLockSettings.java +++ b/src/com/android/settings/IccLockSettings.java @@ -56,6 +56,7 @@ import androidx.preference.Preference; import androidx.preference.SwitchPreference; import com.android.settings.network.ProxySubscriptionManager; +import com.android.settings.network.SubscriptionUtil; import java.util.ArrayList; import java.util.List; @@ -310,7 +311,8 @@ public class IccLockSettings extends SettingsPreferenceFragment mTabHost.addTab(buildTabSpec(tag, String.valueOf(subInfo == null ? getContext().getString(R.string.sim_editor_title, slot + 1) - : subInfo.getDisplayName()))); + : SubscriptionUtil.getUniqueSubscriptionDisplayName( + subInfo, getContext())))); } mTabHost.setCurrentTabByTag(getTagForSlotId(mSlotId)); diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java index c4fa90d3bc8..854a2375f20 100644 --- a/src/com/android/settings/ResetNetwork.java +++ b/src/com/android/settings/ResetNetwork.java @@ -47,6 +47,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.core.InstrumentedFragment; import com.android.settings.core.SubSettingLauncher; import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.ConfirmLockPattern; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; @@ -194,7 +195,8 @@ public class ResetNetwork extends InstrumentedFragment { // Set the first selected value to the default selectedIndex = subscriptionNames.size(); } - String name = record.getDisplayName().toString(); + String name = SubscriptionUtil.getUniqueSubscriptionDisplayName( + record, getContext()).toString(); if (TextUtils.isEmpty(name)) { name = record.getNumber(); } diff --git a/src/com/android/settings/datausage/CellDataPreference.java b/src/com/android/settings/datausage/CellDataPreference.java index 6dc40e86aa9..0e47bc4f2c4 100644 --- a/src/com/android/settings/datausage/CellDataPreference.java +++ b/src/com/android/settings/datausage/CellDataPreference.java @@ -36,6 +36,7 @@ import androidx.preference.PreferenceViewHolder; import com.android.settings.R; import com.android.settings.network.MobileDataEnabledListener; import com.android.settings.network.ProxySubscriptionManager; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.CustomDialogPreferenceCompat; @@ -200,12 +201,14 @@ public class CellDataPreference extends CustomDialogPreferenceCompat final String previousName = (nextSir == null) ? 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.setMessage(getContext().getString(R.string.sim_change_data_message, - String.valueOf(currentSir != null ? currentSir.getDisplayName() : null), - previousName)); + String.valueOf(currentSir != null + ? SubscriptionUtil.getUniqueSubscriptionDisplayName(currentSir, getContext()) + : null), previousName)); builder.setPositiveButton(R.string.okay, listener); builder.setNegativeButton(R.string.cancel, null); diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java index 9d9bf9c65ae..b11935f0c84 100644 --- a/src/com/android/settings/datausage/DataUsageSummary.java +++ b/src/com/android/settings/datausage/DataUsageSummary.java @@ -35,6 +35,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.network.ProxySubscriptionManager; +import com.android.settings.network.SubscriptionUtil; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.core.AbstractPreferenceController; @@ -170,9 +171,11 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage category.setTemplate(DataUsageLib.getMobileTemplate(getContext(), subId), subId, 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); - title.setTitle(subInfo.getDisplayName()); + title.setTitle(displayName); } } diff --git a/src/com/android/settings/network/MobileNetworkListController.java b/src/com/android/settings/network/MobileNetworkListController.java index 77c93ffec1f..cd7375c16ed 100644 --- a/src/com/android/settings/network/MobileNetworkListController.java +++ b/src/com/android/settings/network/MobileNetworkListController.java @@ -26,6 +26,12 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; 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.settings.R; import com.android.settings.network.telephony.MobileNetworkActivity; @@ -35,12 +41,6 @@ import com.android.settingslib.core.AbstractPreferenceController; import java.util.List; 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 * 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()); mPreferenceScreen.addPreference(pref); } - pref.setTitle(info.getDisplayName()); + final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + info, mContext); + pref.setTitle(displayName); if (info.isEmbedded()) { if (mSubscriptionManager.isActiveSubscriptionId(subId)) { @@ -121,7 +123,7 @@ public class MobileNetworkListController extends AbstractPreferenceController im pref.setSummary(mContext.getString(R.string.mobile_network_inactive_sim)); } else { pref.setSummary(mContext.getString(R.string.mobile_network_tap_to_activate, - SubscriptionUtil.getDisplayName(info))); + displayName)); } } diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java index 08da41abfa4..abffe112010 100644 --- a/src/com/android/settings/network/MobileNetworkSummaryController.java +++ b/src/com/android/settings/network/MobileNetworkSummaryController.java @@ -116,13 +116,14 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController return null; } else if (subs.size() == 1) { final SubscriptionInfo info = subs.get(0); + final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + info, mContext); final int subId = info.getSubscriptionId(); if (!info.isEmbedded() && !mSubscriptionManager.isActiveSubscriptionId(subId) && !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) { - return mContext.getString(R.string.mobile_network_tap_to_activate, - SubscriptionUtil.getDisplayName(info)); + return mContext.getString(R.string.mobile_network_tap_to_activate, displayName); } else { - return subs.get(0).getDisplayName(); + return displayName; } } else { if (com.android.settings.Utils.isProviderModelEnabled(mContext)) { @@ -135,8 +136,9 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController } private CharSequence getSummaryForProviderModel(List subs) { - return String.join(", ", subs.stream().map(SubscriptionInfo::getDisplayName) - .collect(Collectors.toList())); + return String.join(", ", subs.stream().map(subInfo -> { + return SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext); + }).collect(Collectors.toList())); } private void startAddSimFlow() { diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.java b/src/com/android/settings/network/NetworkProviderCallsSmsController.java index 3a228dced19..417c4a91c7e 100644 --- a/src/com/android/settings/network/NetworkProviderCallsSmsController.java +++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.java @@ -91,20 +91,22 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl final StringBuilder summary = new StringBuilder(); for (SubscriptionInfo subInfo : subs) { int subsSize = subs.size(); + final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + subInfo, mContext); // Set displayName as summary if there is only one valid SIM. if (subsSize == 1 && SubscriptionManager.isValidSubscriptionId(subInfo.getSubscriptionId())) { - return subInfo.getDisplayName(); + return displayName; } CharSequence status = getPreferredStatus(subInfo); if (status.toString().isEmpty()) { // If there are 2 or more SIMs and one of these has no preferred status, // set only its displayName as summary. - summary.append(subInfo.getDisplayName()); + summary.append(displayName); } else { - summary.append(subInfo.getDisplayName()) + summary.append(displayName) .append(" (") .append(status) .append(")"); diff --git a/src/com/android/settings/network/ProviderModelSliceHelper.java b/src/com/android/settings/network/ProviderModelSliceHelper.java index dd8aa60c151..6c678ec9e39 100644 --- a/src/com/android/settings/network/ProviderModelSliceHelper.java +++ b/src/com/android/settings/network/ProviderModelSliceHelper.java @@ -261,7 +261,8 @@ public class ProviderModelSliceHelper { final SubscriptionInfo defaultSubscription = mSubscriptionManager.getActiveSubscriptionInfo( mSubscriptionManager.getDefaultDataSubscriptionId()); if (defaultSubscription != null) { - title = defaultSubscription.getDisplayName().toString(); + title = SubscriptionUtil.getUniqueSubscriptionDisplayName( + defaultSubscription, mContext).toString(); } return title; } diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java index ada1c895651..d028c5835e2 100644 --- a/src/com/android/settings/network/SubscriptionsPreferenceController.java +++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java @@ -241,7 +241,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl startMobileNetworkActivity(mContext, subInfo.getSubscriptionId())); } - mSubsGearPref.setTitle(subInfo.getDisplayName()); + mSubsGearPref.setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName( + subInfo, mContext)); mSubsGearPref.setOrder(mStartOrder); mSubsGearPref.setSummary(getMobilePreferenceSummary(subInfo.getSubscriptionId())); mSubsGearPref.setIcon(getIcon(subInfo.getSubscriptionId())); @@ -322,7 +323,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl pref = new Preference(mPreferenceGroup.getContext()); mPreferenceGroup.addPreference(pref); } - pref.setTitle(info.getDisplayName()); + pref.setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName(info, mContext)); final boolean isDefaultForData = (subId == dataDefaultSubId); pref.setSummary(getSummary(subId, isDefaultForData)); setIcon(pref, subId, isDefaultForData); @@ -584,4 +585,4 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl NO_CELL_DATA_TYPE_ICON, cutOut); } } -} \ No newline at end of file +} diff --git a/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java b/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java index eead41fe5cc..b231da26892 100644 --- a/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java +++ b/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java @@ -145,7 +145,7 @@ public class ContactDiscoveryPreferenceController extends TelephonyTogglePrefere for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(context)) { if (mSubId == info.getSubscriptionId()) { - result = info.getDisplayName(); + result = SubscriptionUtil.getUniqueSubscriptionDisplayName(info, context); break; } } diff --git a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java index 560922c8310..4fb6cff75d0 100644 --- a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java +++ b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java @@ -126,7 +126,7 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere final SubscriptionInfo info = getDefaultSubscriptionInfo(); if (info != null) { // display subscription based account - return info.getDisplayName(); + return SubscriptionUtil.getUniqueSubscriptionDisplayName(info, mContext); } else { if (isAskEverytimeSupported()) { 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) { mPreference.setEnabled(false); - mPreference.setSummary(subs.get(0).getDisplayName()); + mPreference.setSummary(SubscriptionUtil.getUniqueSubscriptionDisplayName( + subs.get(0), mContext)); return; } @@ -171,7 +172,7 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere if (sub.isOpportunistic()) { continue; } - displayNames.add(sub.getDisplayName()); + displayNames.add(SubscriptionUtil.getUniqueSubscriptionDisplayName(sub, mContext)); final int subId = sub.getSubscriptionId(); subscriptionIds.add(Integer.toString(subId)); if (subId == serviceDefaultSubId) { diff --git a/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java index 8257bf3a987..f429f8b59c0 100644 --- a/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java +++ b/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java @@ -16,7 +16,6 @@ package com.android.settings.network.telephony; -import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.os.Bundle; @@ -141,7 +140,9 @@ public class DeleteEuiccSubscriptionDialogActivity extends SubscriptionActionDia DIALOG_TAG_DELETE_SIM_CONFIRMATION, getString(R.string.erase_sim_dialog_title), 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.cancel)); } diff --git a/src/com/android/settings/network/telephony/MobileDataDialogFragment.java b/src/com/android/settings/network/telephony/MobileDataDialogFragment.java index 180d5037d80..9533827fc9e 100644 --- a/src/com/android/settings/network/telephony/MobileDataDialogFragment.java +++ b/src/com/android/settings/network/telephony/MobileDataDialogFragment.java @@ -28,6 +28,7 @@ import androidx.appcompat.app.AlertDialog; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.wifi.WifiPickerTrackerHelper; @@ -97,12 +98,14 @@ public class MobileDataDialogFragment extends InstrumentedDialogFragment impleme final String previousName = (nextSubInfo == null) ? getContext().getResources().getString( R.string.sim_selection_required_pref) - : nextSubInfo.getDisplayName().toString(); + : SubscriptionUtil.getUniqueSubscriptionDisplayName( + nextSubInfo, getContext()).toString(); final String newName = (currentSubInfo == null) ? getContext().getResources().getString( R.string.sim_selection_required_pref) - : currentSubInfo.getDisplayName().toString(); + : SubscriptionUtil.getUniqueSubscriptionDisplayName( + currentSubInfo, getContext()).toString(); return new AlertDialog.Builder(context) .setTitle(context.getString(R.string.sim_change_data_title, newName)) diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java index 106f3368638..7ec31becb3f 100644 --- a/src/com/android/settings/network/telephony/MobileDataSlice.java +++ b/src/com/android/settings/network/telephony/MobileDataSlice.java @@ -167,7 +167,7 @@ public class MobileDataSlice implements CustomSliceable { return null; // no summary text } - return defaultSubscription.getDisplayName(); + return SubscriptionUtil.getUniqueSubscriptionDisplayName(defaultSubscription, mContext); } private PendingIntent getPrimaryAction() { diff --git a/src/com/android/settings/network/telephony/MobileNetworkActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java index b1b2321eeea..20b37c14834 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkActivity.java +++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java @@ -207,7 +207,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity // title will just default to the label for this activity that's already specified in // AndroidManifest.xml. if (subscription != null) { - setTitle(subscription.getDisplayName()); + setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName(subscription, this)); } } @@ -299,7 +299,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity CharSequence carrierName = ""; if (info != null) { 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 // associated dialog only if the opt-in has not been granted yet. diff --git a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java index 50e7d9b051d..44fd029f5bc 100644 --- a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java +++ b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java @@ -32,13 +32,11 @@ import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.ArrayMap; import android.util.ArraySet; -import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; -import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; @@ -194,7 +192,7 @@ public class NetworkProviderWifiCallingGroup extends mPreferenceGroup.addPreference(pref); } - CharSequence title = info.getDisplayName(); + CharSequence title = SubscriptionUtil.getUniqueSubscriptionDisplayName(info, mContext); if (getPhoneAccountHandleForSubscriptionId(subId) != null) { final Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext, getPhoneAccountHandleForSubscriptionId(subId)); diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java index 2a7bc02c61c..c782b66c677 100644 --- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java +++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java @@ -47,6 +47,7 @@ import androidx.appcompat.app.AlertDialog; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import com.android.settings.network.SubscriptionUtil; import com.android.settingslib.DeviceInfoUtils; import com.google.common.collect.ImmutableMap; @@ -163,7 +164,8 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId); return; } - final CharSequence displayName = info.getDisplayName(); + final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + info, getContext()); mNameView.setText(displayName); if (!TextUtils.isEmpty(displayName)) { mNameView.setSelection(displayName.length()); diff --git a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java index 4af42babb4a..c1be63c5972 100644 --- a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java +++ b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java @@ -201,7 +201,8 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc showProgressDialog( getString( R.string.sim_action_switch_sub_dialog_progress, - mSubInfo.getDisplayName())); + SubscriptionUtil.getUniqueSubscriptionDisplayName( + mSubInfo, this))); mSwitchToEuiccSubscriptionSidecar.run(mSubInfo.getSubscriptionId()); return; } @@ -345,13 +346,14 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc /* Displays the SIM toggling confirmation dialog. */ private void showDisableSimConfirmDialog() { + final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + mSubInfo, this); String title = - mSubInfo == null || TextUtils.isEmpty(mSubInfo.getDisplayName()) + mSubInfo == null || TextUtils.isEmpty(displayName) ? getString( R.string.privileged_action_disable_sub_dialog_title_without_carrier) : getString( - R.string.privileged_action_disable_sub_dialog_title, - mSubInfo.getDisplayName()); + R.string.privileged_action_disable_sub_dialog_title, displayName); ConfirmDialogFragment.show( this, @@ -402,40 +404,48 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc private String getSwitchDialogPosBtnText() { return mIsEsimOperation ? 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); } 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, mSubInfo.getDisplayName()); + return getString(R.string.sim_action_enable_sub_dialog_title, displayName); } private String getSwitchSubscriptionTitle() { if (mIsEsimOperation) { 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); } private String getSwitchDialogBodyMsg(SubscriptionInfo activeSub, boolean betweenEsim) { + final CharSequence subInfoName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + mSubInfo, this); + final CharSequence activeSubName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + activeSub, this); if (betweenEsim && mIsEsimOperation) { return getString( R.string.sim_action_switch_sub_dialog_text_downloaded, - mSubInfo.getDisplayName(), - activeSub.getDisplayName()); + subInfoName, + activeSubName); } else if (mIsEsimOperation) { return getString( R.string.sim_action_switch_sub_dialog_text, - mSubInfo.getDisplayName(), - activeSub.getDisplayName()); + subInfoName, + activeSubName); } else { return getString( R.string.sim_action_switch_sub_dialog_text_single_sim, - activeSub.getDisplayName()); + activeSubName); } } diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java index 29f4c655340..c4a9484f653 100644 --- a/src/com/android/settings/sim/PreferredSimDialogFragment.java +++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java @@ -30,6 +30,7 @@ import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; 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" @@ -86,7 +87,9 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements return; } 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); } diff --git a/src/com/android/settings/sim/SimActivationNotifier.java b/src/com/android/settings/sim/SimActivationNotifier.java index 85d3da2cd35..4a4edefcbfa 100644 --- a/src/com/android/settings/sim/SimActivationNotifier.java +++ b/src/com/android/settings/sim/SimActivationNotifier.java @@ -117,10 +117,12 @@ public class SimActivationNotifier { return; } + CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + activeRemovableSub, mContext); String carrierName = - TextUtils.isEmpty(activeRemovableSub.getDisplayName()) + TextUtils.isEmpty(displayName) ? mContext.getString(R.string.sim_card_label) - : activeRemovableSub.getDisplayName().toString(); + : displayName.toString(); String title = mContext.getString( R.string.post_dsds_reboot_notification_title_with_carrier, carrierName); diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java index d1fb3740e76..2e3cfc7dbb2 100644 --- a/src/com/android/settings/sim/SimListDialogFragment.java +++ b/src/com/android/settings/sim/SimListDialogFragment.java @@ -38,6 +38,7 @@ import androidx.appcompat.app.AlertDialog; import com.android.settings.R; import com.android.settings.Utils; +import com.android.settings.network.SubscriptionUtil; import java.util.ArrayList; import java.util.List; @@ -179,7 +180,7 @@ public class SimListDialogFragment extends SimDialogFragment implements icon.setImageTintList( Utils.getColorAttr(mContext, android.R.attr.textColorSecondary)); } else { - title.setText(sub.getDisplayName()); + title.setText(SubscriptionUtil.getUniqueSubscriptionDisplayName(sub, mContext)); summary.setText(isMdnProvisioned(sub.getNumber()) ? sub.getNumber() : ""); icon.setImageBitmap(sub.createIconBitmap(mContext)); diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java index 4b46939ace3..7dab4c0557a 100644 --- a/src/com/android/settings/sim/SimSelectNotification.java +++ b/src/com/android/settings/sim/SimSelectNotification.java @@ -139,7 +139,8 @@ public class SimSelectNotification extends BroadcastReceiver { } 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); diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 4602bb42949..cfee53cac1d 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -69,6 +69,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.ProxySelector; import com.android.settings.R; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.Utils; import com.android.settingslib.utils.ThreadUtils; @@ -1473,8 +1474,8 @@ public class WifiConfigController implements TextWatcher, } // Shows display name of each active subscription. - final String[] displayNames = mActiveSubscriptionInfos.stream().map( - SubscriptionInfo::getDisplayName).toArray(String[]::new); + final String[] displayNames = SubscriptionUtil.getUniqueSubscriptionDisplayNames( + mContext).values().stream().toArray(String[]::new); mEapSimSpinner.setAdapter(getSpinnerAdapter(displayNames)); mEapSimSpinner.setSelection(0 /* position */); if (displayNames.length == 1) { diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java index f398f2638b4..62f23529cba 100644 --- a/src/com/android/settings/wifi/WifiConfigController2.java +++ b/src/com/android/settings/wifi/WifiConfigController2.java @@ -67,6 +67,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.ProxySelector; import com.android.settings.R; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.Utils; @@ -1437,8 +1438,8 @@ public class WifiConfigController2 implements TextWatcher, } // Shows display name of each active subscription. - final String[] displayNames = mActiveSubscriptionInfos.stream().map( - SubscriptionInfo::getDisplayName).toArray(String[]::new); + final String[] displayNames = SubscriptionUtil.getUniqueSubscriptionDisplayNames( + mContext).values().stream().toArray(String[]::new); mEapSimSpinner.setAdapter(getSpinnerAdapter(displayNames)); mEapSimSpinner.setSelection(0 /* position */); if (displayNames.length == 1) { diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java index 6cceb492599..79f34c79962 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java @@ -163,7 +163,8 @@ public class WifiCallingSettings extends InstrumentedFragment implements HelpRes @Override public CharSequence getPageTitle(int position) { - return String.valueOf(mSil.get(position).getDisplayName()); + return String.valueOf(SubscriptionUtil.getUniqueSubscriptionDisplayName( + mSil.get(position), getContext())); } @Override diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index a2b143ea516..c9cddcc5590 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -69,6 +69,7 @@ import com.android.settings.Utils; import com.android.settings.core.FeatureFlags; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.widget.EntityHeaderController; import com.android.settings.wifi.WifiDialog2; import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener; @@ -696,8 +697,10 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle final int defaultDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId(); if (activeSubscriptionInfos != null) { for (SubscriptionInfo subscriptionInfo : activeSubscriptionInfos) { + final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( + subscriptionInfo, mContext); if (config.carrierId == subscriptionInfo.getCarrierId()) { - mEapSimSubscriptionPref.setSummary(subscriptionInfo.getDisplayName()); + mEapSimSubscriptionPref.setSummary(displayName); return; } @@ -705,7 +708,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle // defaultDataSubscriptionId. if (config.carrierId == TelephonyManager.UNKNOWN_CARRIER_ID && defaultDataSubscriptionId == subscriptionInfo.getSubscriptionId()) { - mEapSimSubscriptionPref.setSummary(subscriptionInfo.getDisplayName()); + mEapSimSubscriptionPref.setSummary(displayName); return; } } diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java index a32f98126ea..6de83a64a35 100644 --- a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java @@ -155,6 +155,7 @@ public class MobileNetworkSummaryControllerTest { when(sub1.getSubscriptionId()).thenReturn(1); when(sub1.getDisplayName()).thenReturn("sub1"); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); mController.displayPreference(mPreferenceScreen); mController.onResume(); assertThat(mController.getSummary()).isEqualTo("sub1"); @@ -194,6 +195,7 @@ public class MobileNetworkSummaryControllerTest { when(sub1.getSubscriptionId()).thenReturn(1); when(sub1.getDisplayName()).thenReturn("sub1"); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); when(mSubscriptionManager.isActiveSubscriptionId(eq(1))).thenReturn(false); when(mSubscriptionManager.canDisablePhysicalSubscription()).thenReturn(true); @@ -238,6 +240,7 @@ public class MobileNetworkSummaryControllerTest { when(sub2.getDisplayName()).thenReturn("sub2"); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); mController.displayPreference(mPreferenceScreen); mController.onResume(); assertThat(mController.getSummary()).isEqualTo("2 SIMs"); @@ -267,6 +270,7 @@ public class MobileNetworkSummaryControllerTest { when(sub2.getDisplayName()).thenReturn("sub2"); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1)); + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); mController.displayPreference(mPreferenceScreen); mController.onResume(); assertThat(mController.getSummary()).isEqualTo("sub1"); @@ -295,6 +299,7 @@ public class MobileNetworkSummaryControllerTest { when(sub2.getDisplayName()).thenReturn("sub2"); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2)); + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL, true); mController.displayPreference(mPreferenceScreen); mController.onResume(); diff --git a/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java b/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java index 0b85c37aae9..62c2fc5ded3 100644 --- a/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java @@ -33,6 +33,7 @@ import android.content.DialogInterface; import androidx.appcompat.app.AlertDialog; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import org.junit.Test; @@ -40,6 +41,8 @@ import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; +import java.util.Arrays; + @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowAlertDialogCompat.class) public class PreferredSimDialogFragmentTest extends @@ -72,6 +75,7 @@ public class PreferredSimDialogFragmentTest extends @Test public void onCreateDialog_twoSimsSelectFirst_correctMessage() { + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2)); mIntent.putExtra(PREFERRED_SIM, 0); final AlertDialog alertDialog = startDialog(); @@ -83,6 +87,7 @@ public class PreferredSimDialogFragmentTest extends @Test public void onCreateDialog_twoSimsSelectSecond_correctMessage() { + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2)); mIntent.putExtra(PREFERRED_SIM, 1); final AlertDialog alertDialog = startDialog(); diff --git a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java index e08893bd823..d6a132611f9 100644 --- a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java +++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java @@ -62,6 +62,7 @@ import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import com.android.settings.R; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import org.junit.Before; @@ -73,6 +74,8 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; +import java.util.Arrays; + @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowAlertDialogCompat.class) public class SimSelectNotificationTest { @@ -117,6 +120,7 @@ public class SimSelectNotificationTest { .thenReturn(mNotificationManager); when(mContext.getSystemService(Context.TELEPHONY_SERVICE)) .thenReturn(mTelephonyManager); + when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)) .thenReturn(mSubscriptionManager); when(mContext.getApplicationInfo()).thenReturn(new ApplicationInfo()); @@ -126,8 +130,10 @@ public class SimSelectNotificationTest { when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager); when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false); + SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSubInfo)); when(mSubscriptionManager.isActiveSubscriptionId(mSubId)).thenReturn(true); when(mSubscriptionManager.getActiveSubscriptionInfo(mSubId)).thenReturn(mSubInfo); + when(mSubInfo.getSubscriptionId()).thenReturn(mSubId); when(mSubInfo.getDisplayName()).thenReturn(mFakeDisplayName); when(mContext.getResources()).thenReturn(mResources); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java index 5689b9fcde9..80091e6e17b 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java @@ -830,6 +830,8 @@ public class WifiConfigController2Test { when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP); final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class); final int carrierId = 6; + when(subscriptionInfo.getSubscriptionId()).thenReturn(carrierId); + when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getCarrierId()).thenReturn(carrierId); when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER"); mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo)); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java index e5017bd2d0c..305f41d3ab9 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java @@ -625,6 +625,8 @@ public class WifiConfigControllerTest { when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP); final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class); final int carrierId = 6; + when(subscriptionInfo.getSubscriptionId()).thenReturn(carrierId); + when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER"); when(subscriptionInfo.getCarrierId()).thenReturn(carrierId); when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER"); mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo)); diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java index 1ba8e7a44fa..0159f49095a 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java @@ -54,6 +54,8 @@ import java.util.Collections; public class WifiCallingSettingsTest { private static final int SUB_ID1 = 111; private static final int SUB_ID2 = 222; + private static final CharSequence DISPLAY_NAME1 = "Carrier1"; + private static final CharSequence DISPLAY_NAME2 = "Carrier2"; private Context mContext; @@ -87,6 +89,7 @@ public class WifiCallingSettingsTest { @Test public void setupFragment_noSubscriptions_noCrash() { + SubscriptionUtil.setActiveSubscriptionsForTesting(null); FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId*/, null /* bundle */); } @@ -119,6 +122,8 @@ public class WifiCallingSettingsTest { final SubscriptionInfo info2 = mock(SubscriptionInfo.class); when(info1.getSubscriptionId()).thenReturn(SUB_ID1); when(info2.getSubscriptionId()).thenReturn(SUB_ID2); + when(info1.getDisplayName()).thenReturn(DISPLAY_NAME1); + when(info2.getDisplayName()).thenReturn(DISPLAY_NAME2); SubscriptionUtil.setActiveSubscriptionsForTesting(new ArrayList<>( Arrays.asList(info1, info2))); diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java index be008d6606c..bee48d122cf 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java @@ -61,10 +61,13 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @RunWith(AndroidJUnit4.class) public class ProviderModelSliceHelperTest { + private static final int DEFAULT_SUBID = 1; + private Context mContext; private MockProviderModelSliceHelper mProviderModelSliceHelper; private PersistableBundle mBundle; @@ -168,10 +171,15 @@ public class ProviderModelSliceHelperTest { String expectDisplayName = "Name1"; String expectedSubtitle = "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( mDefaultDataSubscriptionInfo); - when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName); + when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( + Arrays.asList(mDefaultDataSubscriptionInfo)); + when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE); mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false); addNetworkTransportType(NetworkCapabilities.TRANSPORT_WIFI); @@ -194,10 +202,13 @@ public class ProviderModelSliceHelperTest { String expectedSubtitle = ResourcesUtils.getResourcesString(mContext, "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( mDefaultDataSubscriptionInfo); - when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName); + when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( + Arrays.asList(mDefaultDataSubscriptionInfo)); when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE); mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false); addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);