diff options
author | Jonathan Basseri <misterikkit@google.com> | 2015-06-23 22:28:37 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-23 22:28:37 +0000 |
commit | 40aa25f1f10d5b773a45c1ed3faeb472224db993 (patch) | |
tree | 2725af430a2f59227d01b93ffe1ed95355d79f84 /src | |
parent | 0deda1e1a51397e627a7304b277c9ebdbf8345a5 (diff) | |
parent | 6c8cffb50a5e21cbadbf715a69a57c749ef2626f (diff) | |
download | android_packages_apps_CarrierConfig-40aa25f1f10d5b773a45c1ed3faeb472224db993.tar.gz android_packages_apps_CarrierConfig-40aa25f1f10d5b773a45c1ed3faeb472224db993.tar.bz2 android_packages_apps_CarrierConfig-40aa25f1f10d5b773a45c1ed3faeb472224db993.zip |
Merge "Read XML files as InputStream." into mnc-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/carrierconfig/DefaultCarrierConfigService.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/com/android/carrierconfig/DefaultCarrierConfigService.java b/src/com/android/carrierconfig/DefaultCarrierConfigService.java index 9d61e1b..2317156 100644 --- a/src/com/android/carrierconfig/DefaultCarrierConfigService.java +++ b/src/com/android/carrierconfig/DefaultCarrierConfigService.java @@ -11,6 +11,7 @@ import android.util.Log; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; import java.io.File; import java.io.FileOutputStream; @@ -34,8 +35,11 @@ public class DefaultCarrierConfigService extends CarrierService { private static final String TAG = "DefaultCarrierConfigService"; + private XmlPullParserFactory mFactory; + public DefaultCarrierConfigService() { Log.d(TAG, "Service created"); + mFactory = null; } /** @@ -56,16 +60,21 @@ public class DefaultCarrierConfigService extends CarrierService { String fileName = "carrier_config_" + id.getMcc() + id.getMnc() + ".xml"; try { - XmlPullParser input = - getApplicationContext().getAssets().openXmlResourceParser(fileName); - PersistableBundle config = readConfigFromXml(input, id); + synchronized (this) { + if (mFactory == null) { + mFactory = XmlPullParserFactory.newInstance(); + } + } + XmlPullParser parser = mFactory.newPullParser(); + parser.setInput(getApplicationContext().getAssets().open(fileName), "utf-8"); + PersistableBundle config = readConfigFromXml(parser, id); // Treat vendor.xml as if it were appended to the carrier config file we read. XmlPullParser vendorInput = getApplicationContext().getResources().getXml(R.xml.vendor); PersistableBundle vendorConfig = readConfigFromXml(vendorInput, id); config.putAll(vendorConfig); return config; } - catch (IOException e) { + catch (IOException | XmlPullParserException e) { // Return null for unknown networks - they should use the defaults. Log.e(TAG, e.toString()); return null; |