summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJonathan Basseri <misterikkit@google.com>2015-06-23 22:28:37 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-23 22:28:37 +0000
commit40aa25f1f10d5b773a45c1ed3faeb472224db993 (patch)
tree2725af430a2f59227d01b93ffe1ed95355d79f84 /src
parent0deda1e1a51397e627a7304b277c9ebdbf8345a5 (diff)
parent6c8cffb50a5e21cbadbf715a69a57c749ef2626f (diff)
downloadandroid_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.java17
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;