SubscriptionsPreferenceController shows the unique sim description.
Bug: 148303118 Bug: 150370656 Test: atest -c SubscriptionsPreferenceControllerTest Change-Id: I041536fe0148087a068c6000383b382b0ff4e17c
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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<SubscriptionInfo> 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() {
|
||||
|
@@ -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(")");
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
@@ -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));
|
||||
}
|
||||
|
@@ -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))
|
||||
|
@@ -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() {
|
||||
|
@@ -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.
|
||||
|
@@ -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));
|
||||
|
@@ -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());
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user