Merge "fix issue that carrier id returns zero"
diff --git a/assets/carrier_list.pb b/assets/carrier_list.pb
index 9580a0b..18b18e3 100644
--- a/assets/carrier_list.pb
+++ b/assets/carrier_list.pb
Binary files differ
diff --git a/assets/carrier_list.textpb b/assets/carrier_list.textpb
index b55cf68..07fdc8d 100644
--- a/assets/carrier_list.textpb
+++ b/assets/carrier_list.textpb
@@ -10244,4 +10244,4 @@
     mccmnc_tuple: "44010"
   }
 }
-version: 7
+version: 8
diff --git a/src/com/android/providers/telephony/CarrierIdProvider.java b/src/com/android/providers/telephony/CarrierIdProvider.java
index 97d496b..a2c924c 100644
--- a/src/com/android/providers/telephony/CarrierIdProvider.java
+++ b/src/com/android/providers/telephony/CarrierIdProvider.java
@@ -385,7 +385,11 @@
                     cv = new ContentValues();
                     cv.put(CarrierId.CARRIER_ID, id.canonicalId);
                     cv.put(CarrierId.CARRIER_NAME, id.carrierName);
-                    cv.put(CarrierId.PARENT_CARRIER_ID, id.parentCanonicalId);
+                    // 0 is the default proto value. if parentCanonicalId is unset, apply default
+                    // unknown carrier id -1.
+                    if (id.parentCanonicalId > 0) {
+                        cv.put(CarrierId.PARENT_CARRIER_ID, id.parentCanonicalId);
+                    }
                     cvs = new ArrayList<>();
                     convertCarrierAttrToContentValues(cv, cvs, attr, 0);
                     for (ContentValues contentVal : cvs) {