diff options
author | Cassie Han <xih@google.com> | 2017-11-17 18:47:59 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-11-17 18:47:59 +0000 |
commit | 3df706dcd96a9db6515611cbad2ac28d4166c6b7 (patch) | |
tree | da3ced7c077a5dbf56d573e371df3a7438e72a34 | |
parent | 913f396c11fddc3113c1895763f8683f31e6bbb2 (diff) | |
parent | ae5885d54e21d7d5e45838572479db5835edabfa (diff) | |
download | base-3df706dcd96a9db6515611cbad2ac28d4166c6b7.tar.gz |
Merge "Allow unknown mcc/mnc when constructing a CellIdentity from Parcel."
-rw-r--r-- | telephony/java/android/telephony/CellIdentityGsm.java | 19 | ||||
-rw-r--r-- | telephony/java/android/telephony/CellIdentityLte.java | 19 | ||||
-rw-r--r-- | telephony/java/android/telephony/CellIdentityWcdma.java | 19 |
3 files changed, 39 insertions, 18 deletions
diff --git a/telephony/java/android/telephony/CellIdentityGsm.java b/telephony/java/android/telephony/CellIdentityGsm.java index 6276626afae2..dc897a2e007e 100644 --- a/telephony/java/android/telephony/CellIdentityGsm.java +++ b/telephony/java/android/telephony/CellIdentityGsm.java @@ -115,22 +115,29 @@ 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"); + // TODO: b/69384059 Should throw IllegalArgumentException for the invalid MCC format + // after the bug got fixed. + mMccStr = null; + log("invalid MCC format: " + mccStr); } 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"); + // TODO: b/69384059 Should throw IllegalArgumentException for the invalid MNC format + // after the bug got fixed. + mMncStr = null; + log("invalid MNC format: " + mncStr); } mAlphaLong = alphal; diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java index 74d2966b25bc..f234b0a4d911 100644 --- a/telephony/java/android/telephony/CellIdentityLte.java +++ b/telephony/java/android/telephony/CellIdentityLte.java @@ -114,22 +114,29 @@ 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"); + // TODO: b/69384059 Should throw IllegalArgumentException for the invalid MCC format + // after the bug got fixed. + mMccStr = null; + log("invalid MCC format: " + mccStr); } 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"); + // TODO: b/69384059 Should throw IllegalArgumentException for the invalid MNC format + // after the bug got fixed. + mMncStr = null; + log("invalid MNC format: " + mncStr); } mAlphaLong = alphal; diff --git a/telephony/java/android/telephony/CellIdentityWcdma.java b/telephony/java/android/telephony/CellIdentityWcdma.java index 51b11aa82b9a..1a461f20b131 100644 --- a/telephony/java/android/telephony/CellIdentityWcdma.java +++ b/telephony/java/android/telephony/CellIdentityWcdma.java @@ -114,22 +114,29 @@ 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"); + // TODO: b/69384059 Should throw IllegalArgumentException for the invalid MCC format + // after the bug got fixed. + mMccStr = null; + log("invalid MCC format: " + mccStr); } 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"); + // TODO: b/69384059 Should throw IllegalArgumentException for the invalid MNC format + // after the bug got fixed. + mMncStr = null; + log("invalid MNC format: " + mncStr); } mAlphaLong = alphal; |