summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorJonathan Basseri <misterikkit@google.com>2015-06-23 14:42:04 -0700
committerJonathan Basseri <misterikkit@google.com>2015-06-23 15:27:31 -0700
commit6c8cffb50a5e21cbadbf715a69a57c749ef2626f (patch)
tree14363c4b145009a9ee13aa95e13e7f2296b4d546 /src/com
parentfa5565a5bb824723695c8734aa15e8e65eea445e (diff)
downloadandroid_packages_apps_CarrierConfig-6c8cffb50a5e21cbadbf715a69a57c749ef2626f.tar.gz
android_packages_apps_CarrierConfig-6c8cffb50a5e21cbadbf715a69a57c749ef2626f.tar.bz2
android_packages_apps_CarrierConfig-6c8cffb50a5e21cbadbf715a69a57c749ef2626f.zip
Read XML files as InputStream.
Attempting to read XML files in assets/ with openXmlResourceParser was failing with FileNotFound because files in the assets folder are not precompiled into binary XML. Our only choice is to read them as regular text streams. Bug: 21618018 Change-Id: I463791ae4a1dd5f6a72433a114bd02e39cf5a943
Diffstat (limited to 'src/com')
-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;