aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorJared Tsai <Jared.Tsai@microsoft.com>2021-08-17 22:11:04 +0800
committerJared Tsai <Jared.Tsai@microsoft.com>2021-08-18 09:52:59 +0800
commit80d87d33397971ee03cf2cdc02eb116a95137424 (patch)
tree8afde500aea7deaa2fbb6d48ed91dcfc535232b6 /java
parent5dd439e18dafecd9336b67e758a55b6c17cf7753 (diff)
downloadplatform_tools_carrier_settings-master.tar.gz
platform_tools_carrier_settings-master.tar.bz2
platform_tools_carrier_settings-master.zip
Load no-mcc-mnc config for carriers w/o configsHEADandroid-s-beta-5masterandroid-s-beta-5
Issue: when carrier config for mcc/mnc 000/000 doesn't exist, no-mcc-mnc config in vendor.xml is not applied to carriers w/o any customized configs in assets or vendor.xml. Solution: Generate a 000/000 carrier if no-mcc-mnc config exists in vendor.xml, so no-mcc-mnc config will be applied as the default config for carriers without configs. Bug: 181589307 Change-Id: Id2868f4469167834f928d915217803c5ab353b37
Diffstat (limited to 'java')
-rw-r--r--java/CarrierConfigConverterV2.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/java/CarrierConfigConverterV2.java b/java/CarrierConfigConverterV2.java
index cca6462..2f8d254 100644
--- a/java/CarrierConfigConverterV2.java
+++ b/java/CarrierConfigConverterV2.java
@@ -102,6 +102,8 @@ public final class CarrierConfigConverterV2 {
@Parameter(names = "--version", description = "The version number for all output textpb.")
private long version = 1L;
+ private static final String MCCMNC_FOR_DEFAULT_SETTINGS = "000000";
+
// Resource file path to the AOSP carrier list file
private static final String RESOURCE_CARRIER_LIST =
"/assets/latest_carrier_id/carrier_list.textpb";
@@ -238,11 +240,18 @@ public final class CarrierConfigConverterV2 {
// Then, try to parse CarrierId
CarrierId.Builder id = parseCarrierId(element);
// A valid mccmnc is 5- or 6-digit. But vendor.xml see special cases below:
- // <carrier_config> element may have just "mcc" and not "mnc" for
+ // Case 1: a <carrier_config> element may have neither "mcc" nor "mnc".
+ // Such a tag provides configs that should be applied to all carriers, including to
+ // unspecified carriers via the 000/000 default configs. Make sure 000/000 exists as
+ // a carrier.
+ // Case 2: a <carrier_config> element may have just "mcc" and not "mnc" for
// country-wise config. Such a element doesn't make a carrier; but still keep it so
// can be used if a mccmnc appears in APNs later.
- if (id.getMccMnc().length() == 3) {
- // special case
+ if (id.getMccMnc().isEmpty()) {
+ // special case 1
+ carriers.add(id.setMccMnc(MCCMNC_FOR_DEFAULT_SETTINGS).build());
+ } else if (id.getMccMnc().length() == 3) {
+ // special case 2
carriers.add(id.build());
} else if (id.getMccMnc().length() == 5 || id.getMccMnc().length() == 6) {
// Normal mcc+mnc