Null Check MCC and MNC for CellIdentity Location

In CDMA the MCC and MNC can be null, and the existing
checks for invalid PLMN didn't actually check for
invalid PLMN. Add a simple set of null checks as the
smallest possible change.

Bug: 141416587
Test: manual with CDMA
Change-Id: Ib34fa65fefd7fc17ee77e698b1269f8c40ce5688
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index 2a5f45c..b95fc06 100755
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -3339,10 +3339,13 @@
             // camped on a cell either to attempt registration or for emergency services, then
             // for purposes of setting the locale, we don't care if registration fails or is
             // incomplete.
-            String localeOperator = isInvalidOperatorNumeric(operatorNumeric)
-                    && (mCellIdentity != null)
-                    ? mCellIdentity.getMccString() + mCellIdentity.getMncString()
-                    : operatorNumeric;
+            // CellIdentity can return a null MCC and MNC in CDMA
+            String localeOperator = operatorNumeric;
+            if (isInvalidOperatorNumeric(operatorNumeric) && (mCellIdentity != null)
+                    && mCellIdentity.getMccString() != null
+                    && mCellIdentity.getMncString() != null) {
+                localeOperator = mCellIdentity.getMccString() + mCellIdentity.getMncString();
+            }
 
             if (isInvalidOperatorNumeric(localeOperator)) {
                 if (DBG) log("localeOperator " + localeOperator + " is invalid");