summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/provider/Telephony.java88
-rw-r--r--telephony/common/com/android/internal/telephony/util/TelephonyUtils.java56
-rw-r--r--telephony/java/android/telephony/SubscriptionInfo.java206
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java7
4 files changed, 259 insertions, 98 deletions
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index 194e1b553322..979c5a885c5e 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -53,6 +53,7 @@ import com.android.internal.telephony.SmsApplication;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -4358,6 +4359,12 @@ public final class Telephony {
*/
public static final String COLUMN_NAME_SOURCE = "name_source";
+ /**
+ * The name source is unknown.
+ * @hide
+ */
+ public static final int NAME_SOURCE_UNKNOWN = -1;
+
/** The name_source is from the carrier id. {@hide} */
public static final int NAME_SOURCE_CARRIER_ID = 0;
@@ -4839,5 +4846,86 @@ public final class Telephony {
* @hide
*/
public static final String COLUMN_USER_HANDLE = "user_handle";
+
+ /** All columns in {@link SimInfo} table. */
+ private static final List<String> ALL_COLUMNS = List.of(
+ COLUMN_UNIQUE_KEY_SUBSCRIPTION_ID,
+ COLUMN_ICC_ID,
+ COLUMN_SIM_SLOT_INDEX,
+ COLUMN_DISPLAY_NAME,
+ COLUMN_CARRIER_NAME,
+ COLUMN_NAME_SOURCE,
+ COLUMN_COLOR,
+ COLUMN_NUMBER,
+ COLUMN_DISPLAY_NUMBER_FORMAT,
+ COLUMN_DATA_ROAMING,
+ COLUMN_MCC,
+ COLUMN_MNC,
+ COLUMN_MCC_STRING,
+ COLUMN_MNC_STRING,
+ COLUMN_EHPLMNS,
+ COLUMN_HPLMNS,
+ COLUMN_SIM_PROVISIONING_STATUS,
+ COLUMN_IS_EMBEDDED,
+ COLUMN_CARD_ID,
+ COLUMN_ACCESS_RULES,
+ COLUMN_ACCESS_RULES_FROM_CARRIER_CONFIGS,
+ COLUMN_IS_REMOVABLE,
+ COLUMN_CB_EXTREME_THREAT_ALERT,
+ COLUMN_CB_SEVERE_THREAT_ALERT,
+ COLUMN_CB_AMBER_ALERT,
+ COLUMN_CB_EMERGENCY_ALERT,
+ COLUMN_CB_ALERT_SOUND_DURATION,
+ COLUMN_CB_ALERT_REMINDER_INTERVAL,
+ COLUMN_CB_ALERT_VIBRATE,
+ COLUMN_CB_ALERT_SPEECH,
+ COLUMN_CB_ETWS_TEST_ALERT,
+ COLUMN_CB_CHANNEL_50_ALERT,
+ COLUMN_CB_CMAS_TEST_ALERT,
+ COLUMN_CB_OPT_OUT_DIALOG,
+ COLUMN_ENHANCED_4G_MODE_ENABLED,
+ COLUMN_VT_IMS_ENABLED,
+ COLUMN_WFC_IMS_ENABLED,
+ COLUMN_WFC_IMS_MODE,
+ COLUMN_WFC_IMS_ROAMING_MODE,
+ COLUMN_WFC_IMS_ROAMING_ENABLED,
+ COLUMN_IS_OPPORTUNISTIC,
+ COLUMN_GROUP_UUID,
+ COLUMN_IS_METERED,
+ COLUMN_ISO_COUNTRY_CODE,
+ COLUMN_CARRIER_ID,
+ COLUMN_PROFILE_CLASS,
+ COLUMN_SUBSCRIPTION_TYPE,
+ COLUMN_GROUP_OWNER,
+ COLUMN_DATA_ENABLED_OVERRIDE_RULES,
+ COLUMN_ENABLED_MOBILE_DATA_POLICIES,
+ COLUMN_IMSI,
+ COLUMN_UICC_APPLICATIONS_ENABLED,
+ COLUMN_ALLOWED_NETWORK_TYPES,
+ COLUMN_IMS_RCS_UCE_ENABLED,
+ COLUMN_CROSS_SIM_CALLING_ENABLED,
+ COLUMN_RCS_CONFIG,
+ COLUMN_ALLOWED_NETWORK_TYPES_FOR_REASONS,
+ COLUMN_D2D_STATUS_SHARING,
+ COLUMN_VOIMS_OPT_IN_STATUS,
+ COLUMN_D2D_STATUS_SHARING_SELECTED_CONTACTS,
+ COLUMN_NR_ADVANCED_CALLING_ENABLED,
+ COLUMN_PHONE_NUMBER_SOURCE_CARRIER,
+ COLUMN_PHONE_NUMBER_SOURCE_IMS,
+ COLUMN_PORT_INDEX,
+ COLUMN_USAGE_SETTING,
+ COLUMN_TP_MESSAGE_REF,
+ COLUMN_USER_HANDLE
+ );
+
+ /**
+ * @return All columns in {@link SimInfo} table.
+ *
+ * @hide
+ */
+ @NonNull
+ public static List<String> getAllColumns() {
+ return ALL_COLUMNS;
+ }
}
}
diff --git a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java
index de70dcb9b29c..79ab009d3b92 100644
--- a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java
+++ b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java
@@ -27,6 +27,7 @@ import android.os.Binder;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.os.SystemProperties;
+import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import java.io.PrintWriter;
@@ -192,4 +193,59 @@ public final class TelephonyUtils {
// This is the error case. The well-defined value for UNKNOWN is -1.
return "UNKNOWN(" + state + ")";
}
+
+ /**
+ * Convert display name source to string.
+ *
+ * @param source The display name source.
+ * @return The display name source in string format.
+ */
+ @NonNull
+ public static String displayNameSourceToString(
+ @SubscriptionManager.SimDisplayNameSource int source) {
+ switch (source) {
+ case SubscriptionManager.NAME_SOURCE_UNKNOWN: return "UNKNOWN";
+ case SubscriptionManager.NAME_SOURCE_CARRIER_ID: return "CARRIER_ID";
+ case SubscriptionManager.NAME_SOURCE_SIM_SPN: return "SIM_SPN";
+ case SubscriptionManager.NAME_SOURCE_USER_INPUT: return "USER_INPUT";
+ case SubscriptionManager.NAME_SOURCE_CARRIER: return "CARRIER";
+ case SubscriptionManager.NAME_SOURCE_SIM_PNN: return "SIM_PNN";
+ default:
+ return "UNKNOWN(" + source + ")";
+ }
+ }
+
+ /**
+ * Convert subscription type to string.
+ *
+ * @param type The subscription type.
+ * @return The subscription type in string format.
+ */
+ @NonNull
+ public static String subscriptionTypeToString(@SubscriptionManager.SubscriptionType int type) {
+ switch (type) {
+ case SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM: return "LOCAL_SIM";
+ case SubscriptionManager.SUBSCRIPTION_TYPE_REMOTE_SIM: return "REMOTE_SIM";
+ default:
+ return "UNKNOWN(" + type + ")";
+ }
+ }
+
+ /**
+ * Convert usage setting to string.
+ *
+ * @param usageSetting Usage setting.
+ * @return The usage setting in string format.
+ */
+ @NonNull
+ public static String usageSettingToString(@SubscriptionManager.UsageSetting int usageSetting) {
+ switch (usageSetting) {
+ case SubscriptionManager.USAGE_SETTING_UNKNOWN: return "UNKNOWN";
+ case SubscriptionManager.USAGE_SETTING_DEFAULT: return "DEFAULT";
+ case SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC: return "VOICE_CENTRIC";
+ case SubscriptionManager.USAGE_SETTING_DATA_CENTRIC: return "DATA_CENTRIC";
+ default:
+ return "UNKNOWN(" + usageSetting + ")";
+ }
+ }
}
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index 4d58b22080cd..0d3c80fd8887 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -96,13 +96,6 @@ public class SubscriptionInfo implements Parcelable {
private final CharSequence mCarrierName;
/**
- * The subscription carrier id.
- *
- * @see TelephonyManager#getSimCarrierId()
- */
- private final int mCarrierId;
-
- /**
* The source of the {@link #mDisplayName}.
*/
@SimDisplayNameSource
@@ -127,12 +120,6 @@ public class SubscriptionInfo implements Parcelable {
private final int mDataRoaming;
/**
- * SIM icon bitmap cache.
- */
- @Nullable
- private Bitmap mIconBitmap;
-
- /**
* Mobile Country Code.
*/
@Nullable
@@ -157,15 +144,16 @@ public class SubscriptionInfo implements Parcelable {
private final String[] mHplmns;
/**
- * ISO Country code for the subscription's provider.
+ * Whether the subscription is from eSIM.
*/
- @NonNull
- private final String mCountryIso;
+ private final boolean mIsEmbedded;
/**
- * Whether the subscription is from eSIM.
+ * The string ID of the SIM card. It is the ICCID of the active profile for a UICC card and the
+ * EID for an eUICC card.
*/
- private final boolean mIsEmbedded;
+ @NonNull
+ private final String mCardString;
/**
* The access rules for this subscription, if it is embedded and defines any. This does not
@@ -182,18 +170,6 @@ public class SubscriptionInfo implements Parcelable {
private final UiccAccessRule[] mCarrierConfigAccessRules;
/**
- * The string ID of the SIM card. It is the ICCID of the active profile for a UICC card and the
- * EID for an eUICC card.
- */
- @NonNull
- private final String mCardString;
-
- /**
- * The card ID of the SIM card. This maps uniquely to {@link #mCardString}.
- */
- private final int mCardId;
-
- /**
* Whether the subscription is opportunistic.
*/
private final boolean mIsOpportunistic;
@@ -207,18 +183,17 @@ public class SubscriptionInfo implements Parcelable {
private final ParcelUuid mGroupUuid;
/**
- * A package name that specifies who created the group. Empty if not available.
+ * ISO Country code for the subscription's provider.
*/
@NonNull
- private final String mGroupOwner;
+ private final String mCountryIso;
/**
- * Whether group of the subscription is disabled. This is only useful if it's a grouped
- * opportunistic subscription. In this case, if all primary (non-opportunistic) subscriptions
- * in the group are deactivated (unplugged pSIM or deactivated eSIM profile), we should disable
- * this opportunistic subscription.
+ * The subscription carrier id.
+ *
+ * @see TelephonyManager#getSimCarrierId()
*/
- private final boolean mIsGroupDisabled;
+ private final int mCarrierId;
/**
* The profile class populated from the profile metadata if present. Otherwise,
@@ -236,6 +211,12 @@ public class SubscriptionInfo implements Parcelable {
private final int mType;
/**
+ * A package name that specifies who created the group. Empty if not available.
+ */
+ @NonNull
+ private final String mGroupOwner;
+
+ /**
* Whether uicc applications are configured to enable or disable.
* By default it's true.
*/
@@ -252,6 +233,27 @@ public class SubscriptionInfo implements Parcelable {
@UsageSetting
private final int mUsageSetting;
+ // Below are the fields that do not exist in the database.
+
+ /**
+ * SIM icon bitmap cache.
+ */
+ @Nullable
+ private Bitmap mIconBitmap;
+
+ /**
+ * The card ID of the SIM card. This maps uniquely to {@link #mCardString}.
+ */
+ private final int mCardId;
+
+ /**
+ * Whether group of the subscription is disabled. This is only useful if it's a grouped
+ * opportunistic subscription. In this case, if all primary (non-opportunistic) subscriptions
+ * in the group are deactivated (unplugged pSIM or deactivated eSIM profile), we should disable
+ * this opportunistic subscription.
+ */
+ private final boolean mIsGroupDisabled;
+
/**
* @hide
*
@@ -665,7 +667,8 @@ public class SubscriptionInfo implements Parcelable {
*/
@NonNull
public List<String> getEhplmns() {
- return mEhplmns == null ? Collections.emptyList() : Arrays.asList(mEhplmns);
+ return Collections.unmodifiableList(mEhplmns == null
+ ? Collections.emptyList() : Arrays.asList(mEhplmns));
}
/**
@@ -673,7 +676,8 @@ public class SubscriptionInfo implements Parcelable {
*/
@NonNull
public List<String> getHplmns() {
- return mHplmns == null ? Collections.emptyList() : Arrays.asList(mHplmns);
+ return Collections.unmodifiableList(mHplmns == null
+ ? Collections.emptyList() : Arrays.asList(mHplmns));
}
/**
@@ -777,7 +781,7 @@ public class SubscriptionInfo implements Parcelable {
if (mCarrierConfigAccessRules != null) {
merged.addAll(Arrays.asList(mCarrierConfigAccessRules));
}
- return merged.isEmpty() ? null : merged;
+ return merged.isEmpty() ? null : Collections.unmodifiableList(merged);
}
/**
@@ -957,69 +961,75 @@ public class SubscriptionInfo implements Parcelable {
public String toString() {
String iccIdToPrint = givePrintableIccid(mIccId);
String cardStringToPrint = givePrintableIccid(mCardString);
- return "{id=" + mId + " iccId=" + iccIdToPrint + " simSlotIndex=" + mSimSlotIndex
- + " carrierId=" + mCarrierId + " displayName=" + mDisplayName
- + " carrierName=" + mCarrierName + " nameSource=" + mDisplayNameSource
- + " iconTint=" + mIconTint
- + " number=" + Rlog.pii(TelephonyUtils.IS_DEBUGGABLE, mNumber)
- + " dataRoaming=" + mDataRoaming + " iconBitmap=" + mIconBitmap + " mcc=" + mMcc
- + " mnc=" + mMnc + " countryIso=" + mCountryIso + " isEmbedded=" + mIsEmbedded
- + " nativeAccessRules=" + Arrays.toString(mNativeAccessRules)
- + " cardString=" + cardStringToPrint + " cardId=" + mCardId
+ return "[SubscriptionInfo: id=" + mId
+ + " iccId=" + iccIdToPrint
+ + " simSlotIndex=" + mSimSlotIndex
+ " portIndex=" + mPortIndex
- + " isOpportunistic=" + mIsOpportunistic + " groupUuid=" + mGroupUuid
+ + " isEmbedded=" + mIsEmbedded
+ + " carrierId=" + mCarrierId
+ + " displayName=" + mDisplayName
+ + " carrierName=" + mCarrierName
+ + " isOpportunistic=" + mIsOpportunistic
+ + " groupUuid=" + mGroupUuid
+ + " groupOwner=" + mGroupOwner
+ " isGroupDisabled=" + mIsGroupDisabled
- + " profileClass=" + mProfileClass
+ + " displayNameSource="
+ + TelephonyUtils.displayNameSourceToString(mDisplayNameSource)
+ + " iconTint=" + mIconTint
+ + " number=" + Rlog.pii(TelephonyUtils.IS_DEBUGGABLE, mNumber)
+ + " dataRoaming=" + mDataRoaming
+ + " mcc=" + mMcc
+ + " mnc=" + mMnc
+ " ehplmns=" + Arrays.toString(mEhplmns)
+ " hplmns=" + Arrays.toString(mHplmns)
- + " mType=" + mType
- + " groupOwner=" + mGroupOwner
+ + " cardString=" + cardStringToPrint
+ + " cardId=" + mCardId
+ + " nativeAccessRules=" + Arrays.toString(mNativeAccessRules)
+ " carrierConfigAccessRules=" + Arrays.toString(mCarrierConfigAccessRules)
+ + " countryIso=" + mCountryIso
+ + " profileClass=" + mProfileClass
+ + " mType=" + TelephonyUtils.subscriptionTypeToString(mType)
+ " areUiccApplicationsEnabled=" + mAreUiccApplicationsEnabled
- + " usageSetting=" + mUsageSetting + "}";
+ + " usageSetting=" + TelephonyUtils.usageSettingToString(mUsageSetting)
+ + "]";
}
@Override
- public int hashCode() {
- return Objects.hash(mId, mSimSlotIndex, mDisplayNameSource, mIconTint, mDataRoaming,
- mIsEmbedded, mIsOpportunistic, mGroupUuid, mIccId, mNumber, mMcc, mMnc, mCountryIso,
- mCardString, mCardId, mDisplayName, mCarrierName,
- Arrays.hashCode(mNativeAccessRules), mIsGroupDisabled, mCarrierId, mProfileClass,
- mGroupOwner, mAreUiccApplicationsEnabled, mPortIndex, mUsageSetting);
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ SubscriptionInfo that = (SubscriptionInfo) o;
+ return mId == that.mId && mSimSlotIndex == that.mSimSlotIndex
+ && mDisplayNameSource == that.mDisplayNameSource && mIconTint == that.mIconTint
+ && mDataRoaming == that.mDataRoaming && mIsEmbedded == that.mIsEmbedded
+ && mIsOpportunistic == that.mIsOpportunistic && mCarrierId == that.mCarrierId
+ && mProfileClass == that.mProfileClass && mType == that.mType
+ && mAreUiccApplicationsEnabled == that.mAreUiccApplicationsEnabled
+ && mPortIndex == that.mPortIndex && mUsageSetting == that.mUsageSetting
+ && mCardId == that.mCardId && mIsGroupDisabled == that.mIsGroupDisabled
+ && mIccId.equals(that.mIccId) && mDisplayName.equals(that.mDisplayName)
+ && mCarrierName.equals(that.mCarrierName) && mNumber.equals(that.mNumber)
+ && Objects.equals(mMcc, that.mMcc) && Objects.equals(mMnc,
+ that.mMnc) && Arrays.equals(mEhplmns, that.mEhplmns)
+ && Arrays.equals(mHplmns, that.mHplmns) && mCardString.equals(
+ that.mCardString) && Arrays.equals(mNativeAccessRules,
+ that.mNativeAccessRules) && Arrays.equals(mCarrierConfigAccessRules,
+ that.mCarrierConfigAccessRules) && Objects.equals(mGroupUuid, that.mGroupUuid)
+ && mCountryIso.equals(that.mCountryIso) && mGroupOwner.equals(that.mGroupOwner);
}
@Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- SubscriptionInfo toCompare = (SubscriptionInfo) obj;
- return mId == toCompare.mId
- && mSimSlotIndex == toCompare.mSimSlotIndex
- && mDisplayNameSource == toCompare.mDisplayNameSource
- && mIconTint == toCompare.mIconTint
- && mDataRoaming == toCompare.mDataRoaming
- && mIsEmbedded == toCompare.mIsEmbedded
- && mIsOpportunistic == toCompare.mIsOpportunistic
- && mIsGroupDisabled == toCompare.mIsGroupDisabled
- && mAreUiccApplicationsEnabled == toCompare.mAreUiccApplicationsEnabled
- && mCarrierId == toCompare.mCarrierId
- && Objects.equals(mGroupUuid, toCompare.mGroupUuid)
- && Objects.equals(mIccId, toCompare.mIccId)
- && Objects.equals(mNumber, toCompare.mNumber)
- && Objects.equals(mMcc, toCompare.mMcc)
- && Objects.equals(mMnc, toCompare.mMnc)
- && Objects.equals(mCountryIso, toCompare.mCountryIso)
- && Objects.equals(mCardString, toCompare.mCardString)
- && Objects.equals(mCardId, toCompare.mCardId)
- && mPortIndex == toCompare.mPortIndex
- && Objects.equals(mGroupOwner, toCompare.mGroupOwner)
- && TextUtils.equals(mDisplayName, toCompare.mDisplayName)
- && TextUtils.equals(mCarrierName, toCompare.mCarrierName)
- && Arrays.equals(mNativeAccessRules, toCompare.mNativeAccessRules)
- && mProfileClass == toCompare.mProfileClass
- && Arrays.equals(mEhplmns, toCompare.mEhplmns)
- && Arrays.equals(mHplmns, toCompare.mHplmns)
- && mUsageSetting == toCompare.mUsageSetting;
+ public int hashCode() {
+ int result = Objects.hash(mId, mIccId, mSimSlotIndex, mDisplayName, mCarrierName,
+ mDisplayNameSource, mIconTint, mNumber, mDataRoaming, mMcc, mMnc, mIsEmbedded,
+ mCardString, mIsOpportunistic, mGroupUuid, mCountryIso, mCarrierId, mProfileClass,
+ mType, mGroupOwner, mAreUiccApplicationsEnabled, mPortIndex, mUsageSetting, mCardId,
+ mIsGroupDisabled);
+ result = 31 * result + Arrays.hashCode(mEhplmns);
+ result = 31 * result + Arrays.hashCode(mHplmns);
+ result = 31 * result + Arrays.hashCode(mNativeAccessRules);
+ result = 31 * result + Arrays.hashCode(mCarrierConfigAccessRules);
+ return result;
}
/**
@@ -1031,7 +1041,7 @@ public class SubscriptionInfo implements Parcelable {
/**
* The subscription id.
*/
- private int mId = 0;
+ private int mId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
/**
* The ICCID of the SIM that is associated with this subscription, empty if unknown.
@@ -1064,7 +1074,7 @@ public class SubscriptionInfo implements Parcelable {
* The source of the display name.
*/
@SimDisplayNameSource
- private int mDisplayNameSource = SubscriptionManager.NAME_SOURCE_CARRIER_ID;
+ private int mDisplayNameSource = SubscriptionManager.NAME_SOURCE_UNKNOWN;
/**
* The color to be used for tinting the icon when displaying to the user.
@@ -1141,7 +1151,7 @@ public class SubscriptionInfo implements Parcelable {
/**
* The card ID of the SIM card which contains the subscription.
*/
- private int mCardId = -1;
+ private int mCardId = TelephonyManager.UNINITIALIZED_CARD_ID;
/**
* Whether the subscription is opportunistic or not.
@@ -1205,7 +1215,7 @@ public class SubscriptionInfo implements Parcelable {
/**
* the port index of the Uicc card.
*/
- private int mPortIndex = 0;
+ private int mPortIndex = TelephonyManager.INVALID_PORT_INDEX;
/**
* Subscription's preferred usage setting.
@@ -1433,9 +1443,9 @@ public class SubscriptionInfo implements Parcelable {
}
/**
- * Set the ISO Country code for the subscription's provider.
+ * Set the ISO country code for the subscription's provider.
*
- * @param countryIso The ISO Country code for the subscription's provider.
+ * @param countryIso The ISO country code for the subscription's provider.
* @return The builder.
*/
@NonNull
@@ -1592,7 +1602,7 @@ public class SubscriptionInfo implements Parcelable {
* Set the carrier certificates for this subscription that are saved in carrier configs.
* This does not include access rules from the Uicc, whether embedded or non-embedded.
*
- * @param carrierConfigAccessRules The carrier certificates for this subscription
+ * @param carrierConfigAccessRules The carrier certificates for this subscription.
* @return The builder.
*/
@NonNull
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 193c2c143f98..6189b49bcf79 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -589,6 +589,12 @@ public class SubscriptionManager {
public static final String NAME_SOURCE = SimInfo.COLUMN_NAME_SOURCE;
/**
+ * The name_source is unknown. (for initialization)
+ * @hide
+ */
+ public static final int NAME_SOURCE_UNKNOWN = SimInfo.NAME_SOURCE_UNKNOWN;
+
+ /**
* The name_source is from the carrier id.
* @hide
*/
@@ -623,6 +629,7 @@ public class SubscriptionManager {
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"NAME_SOURCE_"},
value = {
+ NAME_SOURCE_UNKNOWN,
NAME_SOURCE_CARRIER_ID,
NAME_SOURCE_SIM_SPN,
NAME_SOURCE_USER_INPUT,