Support PersistableBundle type config values in getConfigByComponentForSubId
PersistableBundle support is required to enable better handling of more
complex carrier configurations.
Bug: 223443016
Test: make, atest CarrierConfigManagerTest
Change-Id: Idb564cf44d7d321b95cccb18798992e718f30da4
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index dda5ea7..3691fb0 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -9499,42 +9499,26 @@
private void addConfig(String key, Object value, PersistableBundle configs) {
if (value instanceof String) {
configs.putString(key, (String) value);
- }
-
- if (value instanceof String[]) {
+ } else if (value instanceof String[]) {
configs.putStringArray(key, (String[]) value);
- }
-
- if (value instanceof Integer) {
+ } else if (value instanceof Integer) {
configs.putInt(key, (Integer) value);
- }
-
- if (value instanceof Long) {
+ } else if (value instanceof Long) {
configs.putLong(key, (Long) value);
- }
-
- if (value instanceof Double) {
+ } else if (value instanceof Double) {
configs.putDouble(key, (Double) value);
- }
-
- if (value instanceof Boolean) {
+ } else if (value instanceof Boolean) {
configs.putBoolean(key, (Boolean) value);
- }
-
- if (value instanceof int[]) {
+ } else if (value instanceof int[]) {
configs.putIntArray(key, (int[]) value);
- }
-
- if (value instanceof double[]) {
+ } else if (value instanceof double[]) {
configs.putDoubleArray(key, (double[]) value);
- }
-
- if (value instanceof boolean[]) {
+ } else if (value instanceof boolean[]) {
configs.putBooleanArray(key, (boolean[]) value);
- }
-
- if (value instanceof long[]) {
+ } else if (value instanceof long[]) {
configs.putLongArray(key, (long[]) value);
+ } else if (value instanceof PersistableBundle) {
+ configs.putPersistableBundle(key, (PersistableBundle) value);
}
}
}