Supported data enabled override for different scenarios
Added override rules support for always allowing mms and
internet data during voice call.
Test: Manual + unit tests
Bug: 132113695
Change-Id: Ibb2c327cc58de19d2df1f9f2a57b3cf9c39a57fc
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 129be00..3eebc6a 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -148,7 +148,7 @@
private static final boolean DBG = true;
private static final boolean VDBG = false; // STOPSHIP if true
- private static final int DATABASE_VERSION = 39 << 16;
+ private static final int DATABASE_VERSION = 40 << 16;
private static final int URL_UNKNOWN = 0;
private static final int URL_TELEPHONY = 1;
private static final int URL_CURRENT = 2;
@@ -401,7 +401,8 @@
+ SubscriptionManager.SUBSCRIPTION_TYPE + " INTEGER DEFAULT "
+ SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM + ","
+ SubscriptionManager.WHITE_LISTED_APN_DATA + " INTEGER DEFAULT 0,"
- + SubscriptionManager.GROUP_OWNER + " TEXT"
+ + SubscriptionManager.GROUP_OWNER + " TEXT,"
+ + SubscriptionManager.DATA_ENABLED_OVERRIDE_RULES + " TEXT"
+ ");";
}
@@ -1320,6 +1321,20 @@
oldVersion = 39 << 16 | 6;
}
+ if (oldVersion < (40 << 16 | 6)) {
+ try {
+ // Try to update the siminfo table. It might not be there.
+ db.execSQL("ALTER TABLE " + SIMINFO_TABLE + " ADD COLUMN "
+ + SubscriptionManager.DATA_ENABLED_OVERRIDE_RULES + " TEXT;");
+ } catch (SQLiteException e) {
+ if (DBG) {
+ log("onUpgrade skipping " + SIMINFO_TABLE + " upgrade. " +
+ "The table will get created in onOpen.");
+ }
+ }
+ oldVersion = 40 << 16 | 6;
+ }
+
if (DBG) {
log("dbh.onUpgrade:- db=" + db + " oldV=" + oldVersion + " newV=" + newVersion);
}
diff --git a/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java b/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java
index e5dd6e6..bc39260 100644
--- a/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java
+++ b/tests/src/com/android/providers/telephony/CarrierIdProviderTest.java
@@ -148,6 +148,9 @@
mContext = new MockContextWithProvider(mCarrierIdProviderTestable);
mContentResolver = mContext.getContentResolver();
mContentObserver = new FakeContentObserver(null);
+
+ doReturn("").when(mSubController).getDataEnabledOverrideRules(anyInt());
+
Field field = SubscriptionController.class.getDeclaredField("sInstance");
field.setAccessible(true);
field.set(null, mSubController);