summaryrefslogtreecommitdiffstats
path: root/src/android/support/v7/mms/DefaultCarrierConfigValuesLoader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/support/v7/mms/DefaultCarrierConfigValuesLoader.java')
-rw-r--r--src/android/support/v7/mms/DefaultCarrierConfigValuesLoader.java126
1 files changed, 0 insertions, 126 deletions
diff --git a/src/android/support/v7/mms/DefaultCarrierConfigValuesLoader.java b/src/android/support/v7/mms/DefaultCarrierConfigValuesLoader.java
deleted file mode 100644
index 1d45f8f..0000000
--- a/src/android/support/v7/mms/DefaultCarrierConfigValuesLoader.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.support.v7.mms;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.content.res.XmlResourceParser;
-import android.os.Bundle;
-import android.util.Log;
-import android.util.SparseArray;
-
-import com.android.messaging.R;
-
-/**
- * The default implementation of loader for carrier config values
- */
-class DefaultCarrierConfigValuesLoader implements CarrierConfigValuesLoader {
- /*
- * Key types
- */
- public static final String KEY_TYPE_INT = "int";
- public static final String KEY_TYPE_BOOL = "bool";
- public static final String KEY_TYPE_STRING = "string";
-
- private final Context mContext;
-
- // Cached values for subIds
- private final SparseArray<Bundle> mValuesCache;
-
- DefaultCarrierConfigValuesLoader(final Context context) {
- mContext = context;
- mValuesCache = new SparseArray<>();
- }
-
- @Override
- public Bundle get(int subId) {
- subId = Utils.getEffectiveSubscriptionId(subId);
- Bundle values;
- boolean didLoad = false;
- synchronized (this) {
- values = mValuesCache.get(subId);
- if (values == null) {
- values = new Bundle();
- mValuesCache.put(subId, values);
- loadLocked(subId, values);
- didLoad = true;
- }
- }
- if (didLoad) {
- Log.i(MmsService.TAG, "Carrier configs loaded: " + values);
- }
- return values;
- }
-
- private void loadLocked(final int subId, final Bundle values) {
- // For K and earlier, load from resources
- loadFromResources(subId, values);
- if (Utils.hasMmsApi()) {
- // For L and later, also load from system MMS service
- loadFromSystem(subId, values);
- }
- }
-
- /**
- * Load from system, using MMS API
- *
- * @param subId which SIM to load for
- * @param values the result to add to
- */
- private static void loadFromSystem(final int subId, final Bundle values) {
- try {
- final Bundle systemValues = Utils.getSmsManager(subId).getCarrierConfigValues();
- if (systemValues != null) {
- values.putAll(systemValues);
- }
- } catch (final Exception e) {
- Log.w(MmsService.TAG, "Calling system getCarrierConfigValues exception", e);
- }
- }
-
- private void loadFromResources(final int subId, final Bundle values) {
- // Get a subscription-dependent context for loading the mms_config.xml
- final Context subContext = Utils.getSubDepContext(mContext, subId);
- XmlResourceParser xml = null;
- try {
- xml = subContext.getResources().getXml(R.xml.mms_config);
- new CarrierConfigXmlParser(xml, new CarrierConfigXmlParser.KeyValueProcessor() {
- @Override
- public void process(String type, String key, String value) {
- try {
- if (KEY_TYPE_INT.equals(type)) {
- values.putInt(key, Integer.parseInt(value));
- } else if (KEY_TYPE_BOOL.equals(type)) {
- values.putBoolean(key, Boolean.parseBoolean(value));
- } else if (KEY_TYPE_STRING.equals(type)) {
- values.putString(key, value);
- }
- } catch (final NumberFormatException e) {
- Log.w(MmsService.TAG, "Load carrier value from resources: "
- + "invalid " + key + "," + value + "," + type);
- }
- }
- }).parse();
- } catch (final Resources.NotFoundException e) {
- Log.w(MmsService.TAG, "Can not get mms_config.xml");
- } finally {
- if (xml != null) {
- xml.close();
- }
- }
- }
-}