support privilege access rule for carrier identification
Bug: 72665237
Bug: 69807697
Bug: 110559381
Test: Manaul
Change-Id: I20b259456eff2c070fabaf0eca081f0988d15a3c
Merged-in: I20b259456eff2c070fabaf0eca081f0988d15a3c
diff --git a/src/com/android/providers/telephony/CarrierIdProvider.java b/src/com/android/providers/telephony/CarrierIdProvider.java
index 1c2e5e5..b4b9982 100644
--- a/src/com/android/providers/telephony/CarrierIdProvider.java
+++ b/src/com/android/providers/telephony/CarrierIdProvider.java
@@ -74,7 +74,7 @@
private static final String TAG = CarrierIdProvider.class.getSimpleName();
private static final String DATABASE_NAME = "carrierIdentification.db";
- private static final int DATABASE_VERSION = 3;
+ private static final int DATABASE_VERSION = 4;
private static final String ASSETS_PB_FILE = "carrier_list.pb";
private static final String VERSION_KEY = "version";
@@ -119,10 +119,15 @@
* index 7: {@link CarrierId.All#ICCID_PREFIX}
*/
private static final int ICCID_PREFIX_INDEX = 7;
+
+ /**
+ * index 8: {@link CarrierId.All#PRIVILEGE_ACCESS_RULE}
+ */
+ private static final int PRIVILEGE_ACCESS_RULE = 8;
/**
* ending index of carrier attribute list.
*/
- private static final int CARRIER_ATTR_END_IDX = ICCID_PREFIX_INDEX;
+ private static final int CARRIER_ATTR_END_IDX = PRIVILEGE_ACCESS_RULE;
/**
* The authority string for the CarrierIdProvider
*/
@@ -139,7 +144,8 @@
CarrierId.All.IMSI_PREFIX_XPATTERN,
CarrierId.All.SPN,
CarrierId.All.APN,
- CarrierId.All.ICCID_PREFIX));
+ CarrierId.All.ICCID_PREFIX,
+ CarrierId.All.PRIVILEGE_ACCESS_RULE));
private CarrierIdDatabaseHelper mDbHelper;
@@ -162,6 +168,7 @@
+ CarrierId.All.SPN + " TEXT,"
+ CarrierId.All.APN + " TEXT,"
+ CarrierId.All.ICCID_PREFIX + " TEXT,"
+ + CarrierId.All.PRIVILEGE_ACCESS_RULE + " TEXT,"
+ CarrierId.CARRIER_NAME + " TEXT,"
+ CarrierId.CARRIER_ID + " INTEGER DEFAULT -1,"
+ "UNIQUE (" + TextUtils.join(", ", CARRIERS_ID_UNIQUE_FIELDS) + "));";
@@ -472,6 +479,14 @@
found = true;
}
break;
+ case PRIVILEGE_ACCESS_RULE:
+ for (String str : attr.privilegeAccessRule) {
+ cv.put(CarrierId.All.PRIVILEGE_ACCESS_RULE, str);
+ convertCarrierAttrToContentValues(cv, cvs, attr, index + 1);
+ cv.remove(CarrierId.All.PRIVILEGE_ACCESS_RULE);
+ found = true;
+ }
+ break;
default:
Log.e(TAG, "unsupported index: " + index);
break;
diff --git a/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java b/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java
index 44d9ec9..e5dd6e6 100644
--- a/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java
+++ b/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java
@@ -68,6 +68,8 @@
private static final String dummy_apn = "APN_DUMMY";
private static final String dummy_iccid_prefix = "ICCID_PREFIX_DUMMY";
private static final String dummy_name = "NAME_DUMMY";
+ private static final String dummy_access_rule =
+ "B9CFCE1C47A6AC713442718F15EF55B00B3A6D1A6D48CB46249FA8EB51465350";
private static final int dummy_cid = 0;
private MockContextWithProvider mContext;
@@ -433,6 +435,7 @@
contentValues.put(CarrierId.All.ICCID_PREFIX, dummy_iccid_prefix);
contentValues.put(CarrierId.CARRIER_NAME, dummy_name);
contentValues.put(CarrierId.CARRIER_ID, dummy_cid);
+ contentValues.put(CarrierId.All.PRIVILEGE_ACCESS_RULE, dummy_access_rule);
return contentValues;
}
}