diff --git a/telephony/java/android/telephony/CellIdentityGsm.java b/telephony/java/android/telephony/CellIdentityGsm.java index 6276626afae26..4d7c71febd6f5 100644 --- a/telephony/java/android/telephony/CellIdentityGsm.java +++ b/telephony/java/android/telephony/CellIdentityGsm.java @@ -115,10 +115,11 @@ public final class CellIdentityGsm implements Parcelable { // for inbound parcels mBsic = (bsic == 0xFF) ? Integer.MAX_VALUE : bsic; + // Only allow INT_MAX if unknown string mcc/mnc if (mccStr == null || mccStr.matches("^[0-9]{3}$")) { mMccStr = mccStr; - } else if (mccStr.isEmpty()) { - // If the mccStr parsed from Parcel is empty, set it as null. + } else if (mccStr.isEmpty() || mccStr.equals(String.valueOf(Integer.MAX_VALUE))) { + // If the mccStr is empty or unknown, set it as null. mMccStr = null; } else { throw new IllegalArgumentException("invalid MCC format"); @@ -126,8 +127,8 @@ public final class CellIdentityGsm implements Parcelable { if (mncStr == null || mncStr.matches("^[0-9]{2,3}$")) { mMncStr = mncStr; - } else if (mncStr.isEmpty()) { - // If the mncStr parsed from Parcel is empty, set it as null. + } else if (mncStr.isEmpty() || mncStr.equals(String.valueOf(Integer.MAX_VALUE))) { + // If the mncStr is empty or unknown, set it as null. mMncStr = null; } else { throw new IllegalArgumentException("invalid MNC format"); diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java index 74d2966b25bca..fd837fc0ac26f 100644 --- a/telephony/java/android/telephony/CellIdentityLte.java +++ b/telephony/java/android/telephony/CellIdentityLte.java @@ -114,10 +114,11 @@ public final class CellIdentityLte implements Parcelable { mTac = tac; mEarfcn = earfcn; + // Only allow INT_MAX if unknown string mcc/mnc if (mccStr == null || mccStr.matches("^[0-9]{3}$")) { mMccStr = mccStr; - } else if (mccStr.isEmpty()) { - // If the mccStr parsed from Parcel is empty, set it as null. + } else if (mccStr.isEmpty() || mccStr.equals(String.valueOf(Integer.MAX_VALUE))) { + // If the mccStr is empty or unknown, set it as null. mMccStr = null; } else { throw new IllegalArgumentException("invalid MCC format"); @@ -125,8 +126,8 @@ public final class CellIdentityLte implements Parcelable { if (mncStr == null || mncStr.matches("^[0-9]{2,3}$")) { mMncStr = mncStr; - } else if (mncStr.isEmpty()) { - // If the mncStr parsed from Parcel is empty, set it as null. + } else if (mncStr.isEmpty() || mncStr.equals(String.valueOf(Integer.MAX_VALUE))) { + // If the mncStr is empty or unknown, set it as null. mMncStr = null; } else { throw new IllegalArgumentException("invalid MNC format"); diff --git a/telephony/java/android/telephony/CellIdentityWcdma.java b/telephony/java/android/telephony/CellIdentityWcdma.java index 51b11aa82b9a3..1597245c6fa21 100644 --- a/telephony/java/android/telephony/CellIdentityWcdma.java +++ b/telephony/java/android/telephony/CellIdentityWcdma.java @@ -114,10 +114,11 @@ public final class CellIdentityWcdma implements Parcelable { mPsc = psc; mUarfcn = uarfcn; + // Only allow INT_MAX if unknown string mcc/mnc if (mccStr == null || mccStr.matches("^[0-9]{3}$")) { mMccStr = mccStr; - } else if (mccStr.isEmpty()) { - // If the mccStr parsed from Parcel is empty, set it as null. + } else if (mccStr.isEmpty() || mccStr.equals(String.valueOf(Integer.MAX_VALUE))) { + // If the mccStr is empty or unknown, set it as null. mMccStr = null; } else { throw new IllegalArgumentException("invalid MCC format"); @@ -125,8 +126,8 @@ public final class CellIdentityWcdma implements Parcelable { if (mncStr == null || mncStr.matches("^[0-9]{2,3}$")) { mMncStr = mncStr; - } else if (mncStr.isEmpty()) { - // If the mncStr parsed from Parcel is empty, set it as null. + } else if (mncStr.isEmpty() || mncStr.equals(String.valueOf(Integer.MAX_VALUE))) { + // If the mncStr is empty or unknown, set it as null. mMncStr = null; } else { throw new IllegalArgumentException("invalid MNC format"); @@ -135,7 +136,7 @@ public final class CellIdentityWcdma implements Parcelable { mAlphaLong = alphal; mAlphaShort = alphas; } - + private CellIdentityWcdma(CellIdentityWcdma cid) { this(cid.mLac, cid.mCid, cid.mPsc, cid.mUarfcn, cid.mMccStr, cid.mMncStr, cid.mAlphaLong, cid.mAlphaShort);