diff options
| author | 2018-06-08 18:14:21 -0700 | |
|---|---|---|
| committer | 2018-07-10 15:51:26 -0700 | |
| commit | 0c149bd2d84d6e7c21dd4d7fff1e4dcfd51318f3 (patch) | |
| tree | 81a92ea8be1b377ad0bc35f60fe5d95b0c41cea2 | |
| parent | bc103bdf18e10da12bfe5c205c154a91e5daa866 (diff) | |
Update SubscriptionInfo o use strings for mccmnc
Add methods to get mcc/mnc as strings so that the leading-zero
ambiguity is resolved.
Test: manual (db update), unit tests
Bug: 35064313
Change-Id: I45c0bfefb7ffe98e3eab8e68d0e1170881ae9f4c
Merged-In: I45c0bfefb7ffe98e3eab8e68d0e1170881ae9f4c
4 files changed, 61 insertions, 17 deletions
diff --git a/api/current.txt b/api/current.txt index 1ae46d5d8a0e..9d6b6895e750 100644 --- a/api/current.txt +++ b/api/current.txt @@ -40774,8 +40774,10 @@ package android.telephony { method public java.lang.CharSequence getDisplayName(); method public java.lang.String getIccId(); method public int getIconTint(); - method public int getMcc(); - method public int getMnc(); + method public deprecated int getMcc(); + method public java.lang.String getMccString(); + method public deprecated int getMnc(); + method public java.lang.String getMncString(); method public java.lang.String getNumber(); method public int getSimSlotIndex(); method public int getSubscriptionId(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java index d45a5ec70782..9ca8284280ac 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -930,7 +930,7 @@ public class NetworkControllerImpl extends BroadcastReceiver private SubscriptionInfo addSignalController(int id, int simSlotIndex) { SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0, - null, 0, 0, ""); + null, null, null, ""); MobileSignalController controller = new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, info, mSubDefaults, mReceiverHandler.getLooper()); diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java index 936505ca407d..d76e39b83801 100644 --- a/telephony/java/android/telephony/SubscriptionInfo.java +++ b/telephony/java/android/telephony/SubscriptionInfo.java @@ -33,9 +33,9 @@ import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.DisplayMetrics; +import android.util.Log; import java.util.Arrays; -import java.util.ArrayList; import java.util.List; /** @@ -105,12 +105,12 @@ public class SubscriptionInfo implements Parcelable { /** * Mobile Country Code */ - private int mMcc; + private String mMcc; /** * Mobile Network Code */ - private int mMnc; + private String mMnc; /** * ISO Country code for the subscription's provider @@ -138,11 +138,11 @@ public class SubscriptionInfo implements Parcelable { * @hide */ public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName, - CharSequence carrierName, int nameSource, int iconTint, String number, int roaming, - Bitmap icon, int mcc, int mnc, String countryIso) { + CharSequence carrierName, int nameSource, int iconTint, String number, int roaming, + Bitmap icon, String mcc, String mnc, String countryIso) { this(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number, - roaming, icon, mcc, mnc, countryIso, false /* isEmbedded */, - null /* accessRules */, null /* accessRules */); + roaming, icon, mcc, mnc, countryIso, false /* isEmbedded */, + null /* accessRules */, null /* accessRules */); } /** @@ -150,7 +150,7 @@ public class SubscriptionInfo implements Parcelable { */ public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName, CharSequence carrierName, int nameSource, int iconTint, String number, int roaming, - Bitmap icon, int mcc, int mnc, String countryIso, boolean isEmbedded, + Bitmap icon, String mcc, String mnc, String countryIso, boolean isEmbedded, @Nullable UiccAccessRule[] accessRules) { this(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number, roaming, icon, mcc, mnc, countryIso, isEmbedded, accessRules, null /* cardId */); @@ -161,7 +161,7 @@ public class SubscriptionInfo implements Parcelable { */ public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName, CharSequence carrierName, int nameSource, int iconTint, String number, int roaming, - Bitmap icon, int mcc, int mnc, String countryIso, boolean isEmbedded, + Bitmap icon, String mcc, String mnc, String countryIso, boolean isEmbedded, @Nullable UiccAccessRule[] accessRules, String cardId) { this.mId = id; this.mIccId = iccId; @@ -316,15 +316,43 @@ public class SubscriptionInfo implements Parcelable { /** * @return the MCC. + * @deprecated Use {@link #getMccString()} instead. */ + @Deprecated public int getMcc() { - return this.mMcc; + try { + return this.mMcc == null ? 0 : Integer.valueOf(this.mMcc); + } catch (NumberFormatException e) { + Log.w(SubscriptionInfo.class.getSimpleName(), "MCC string is not a number"); + return 0; + } } /** * @return the MNC. + * @deprecated Use {@link #getMncString()} instead. */ + @Deprecated public int getMnc() { + try { + return this.mMnc == null ? 0 : Integer.valueOf(this.mMnc); + } catch (NumberFormatException e) { + Log.w(SubscriptionInfo.class.getSimpleName(), "MNC string is not a number"); + return 0; + } + } + + /** + * @return The MCC, as a string. + */ + public String getMccString() { + return this.mMcc; + } + + /** + * @return The MNC, as a string. + */ + public String getMncString() { return this.mMnc; } @@ -425,8 +453,8 @@ public class SubscriptionInfo implements Parcelable { int iconTint = source.readInt(); String number = source.readString(); int dataRoaming = source.readInt(); - int mcc = source.readInt(); - int mnc = source.readInt(); + String mcc = source.readString(); + String mnc = source.readString(); String countryIso = source.readString(); Bitmap iconBitmap = Bitmap.CREATOR.createFromParcel(source); boolean isEmbedded = source.readBoolean(); @@ -455,8 +483,8 @@ public class SubscriptionInfo implements Parcelable { dest.writeInt(mIconTint); dest.writeString(mNumber); dest.writeInt(mDataRoaming); - dest.writeInt(mMcc); - dest.writeInt(mMnc); + dest.writeString(mMcc); + dest.writeString(mMnc); dest.writeString(mCountryIso); mIconBitmap.writeToParcel(dest, flags); dest.writeBoolean(mIsEmbedded); diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 5a60aa669d80..310d2bf2083b 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -243,6 +243,20 @@ public class SubscriptionManager { public static final int SIM_PROVISIONED = 0; /** + * TelephonyProvider column name for the MCC associated with a SIM, stored as a string. + * <P>Type: TEXT (String)</P> + * @hide + */ + public static final String MCC_STRING = "mcc_string"; + + /** + * TelephonyProvider column name for the MNC associated with a SIM, stored as a string. + * <P>Type: TEXT (String)</P> + * @hide + */ + public static final String MNC_STRING = "mnc_string"; + + /** * TelephonyProvider column name for the MCC associated with a SIM. * <P>Type: INTEGER (int)</P> * @hide |