diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-15 00:41:56 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-15 00:41:56 +0000 |
commit | 5c863ed69cceba4e47763202ea6f8574fa472485 (patch) | |
tree | 2849ac39d039441c50b76f915fb8887703b81eba | |
parent | e4ea978ecc01069e0afac13ad445c7e4757df86a (diff) | |
parent | abde5e37cf281d05c869430c783065aae6c5b438 (diff) | |
download | TelephonyProvider-android14-qpr2-s1-release.tar.gz |
Snap for 11220357 from abde5e37cf281d05c869430c783065aae6c5b438 to 24Q1-releaseandroid-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Change-Id: I9ca9db3c59b16935f904639f7fca57ccdf593efd
-rw-r--r-- | src/com/android/providers/telephony/TelephonyProvider.java | 27 | ||||
-rw-r--r-- | tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java | 53 |
2 files changed, 75 insertions, 5 deletions
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java index c5723579..4fbeed45 100644 --- a/src/com/android/providers/telephony/TelephonyProvider.java +++ b/src/com/android/providers/telephony/TelephonyProvider.java @@ -164,7 +164,7 @@ public class TelephonyProvider extends ContentProvider private static final boolean DBG = true; private static final boolean VDBG = false; // STOPSHIP if true - private static final int DATABASE_VERSION = 66 << 16; + private static final int DATABASE_VERSION = 67 << 16; private static final int URL_UNKNOWN = 0; private static final int URL_TELEPHONY = 1; private static final int URL_CURRENT = 2; @@ -400,7 +400,8 @@ public class TelephonyProvider extends ContentProvider CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(CARRIER_ID, String.valueOf(TelephonyManager.UNKNOWN_CARRIER_ID)); CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(INFRASTRUCTURE_BITMASK, - String.valueOf(ApnSetting.INFRASTRUCTURE_CELLULAR)); + String.valueOf( + ApnSetting.INFRASTRUCTURE_CELLULAR | ApnSetting.INFRASTRUCTURE_SATELLITE)); CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(ESIM_BOOTSTRAP_PROVISIONING, "0"); CARRIERS_UNIQUE_FIELDS.addAll(CARRIERS_UNIQUE_FIELDS_DEFAULTS.keySet()); @@ -512,7 +513,7 @@ public class TelephonyProvider extends ContentProvider APN_SET_ID + " INTEGER DEFAULT " + NO_APN_SET_ID + "," + SKIP_464XLAT + " INTEGER DEFAULT " + SKIP_464XLAT_DEFAULT + "," + ALWAYS_ON + " INTEGER DEFAULT 0," + - INFRASTRUCTURE_BITMASK + " INTEGER DEFAULT 1," + + INFRASTRUCTURE_BITMASK + " INTEGER DEFAULT 3," + ESIM_BOOTSTRAP_PROVISIONING + " BOOLEAN DEFAULT 0," + // Uniqueness collisions are used to trigger merge code so if a field is listed // here it means we will accept both (user edited + new apn_conf definition) @@ -1999,6 +2000,21 @@ public class TelephonyProvider extends ContentProvider oldVersion = 66 << 16 | 6; } + if (oldVersion < (67 << 16 | 6)) { + try { + // If default value of infrastructure_bitmask column is set to 1, then update + // it to 3 + db.execSQL("UPDATE " + CARRIERS_TABLE + " SET " + INFRASTRUCTURE_BITMASK + "=3" + + " WHERE " + INFRASTRUCTURE_BITMASK + "=1;"); + } catch (SQLiteException e) { + if (DBG) { + log("onUpgrade failed to update " + CARRIERS_TABLE + + " to add infrastructure bitmask value."); + } + } + oldVersion = 67 << 16 | 6; + } + if (DBG) { log("dbh.onUpgrade:- db=" + db + " oldV=" + oldVersion + " newV=" + newVersion); } @@ -2676,7 +2692,8 @@ public class TelephonyProvider extends ContentProvider addBoolAttribute(parser, "esim_bootstrap_provisioning", map, ESIM_BOOTSTRAP_PROVISIONING); - int infrastructureBitmask = ApnSetting.INFRASTRUCTURE_CELLULAR; + int infrastructureBitmask = + ApnSetting.INFRASTRUCTURE_CELLULAR | ApnSetting.INFRASTRUCTURE_SATELLITE; String infrastructureList = parser.getAttributeValue(null, "infrastructure_bitmask"); if (infrastructureList != null) { infrastructureBitmask = getInfrastructureListFromString(infrastructureList); @@ -3871,7 +3888,7 @@ public class TelephonyProvider extends ContentProvider PersistableBundle backedUpSimInfoEntry, int backupDataFormatVersion, String isoCountryCodeFromDb, List<String> wfcRestoreBlockedCountries) { - if (DATABASE_VERSION != 66 << 16) { + if (DATABASE_VERSION != 67 << 16) { throw new AssertionError("The database schema has been updated which might make " + "the format of #BACKED_UP_SIM_SPECIFIC_SETTINGS_FILE outdated. Make sure to " + "1) review whether any of the columns in #SIM_INFO_COLUMNS_TO_BACKUP have " diff --git a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java index 71a0c71a..8ca3cd50 100644 --- a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java +++ b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java @@ -31,6 +31,7 @@ import android.database.sqlite.SQLiteOpenHelper; import android.os.UserHandle; import android.provider.Telephony; import android.telephony.SubscriptionManager; +import android.telephony.data.ApnSetting; import android.text.TextUtils; import android.util.Log; @@ -540,6 +541,58 @@ public final class TelephonyDatabaseHelperTest { assertTrue(Arrays.asList(columns).contains(Carriers.ESIM_BOOTSTRAP_PROVISIONING)); } + @Test + public void databaseHelperOnUpgrade_hasInfrastructureFields_updateInfrastructureValue() { + Log.d(TAG, "databaseHelperOnUpgrade_hasInfrastructureFields_updateInfrastructureValue"); + // (5 << 16 | 6) is the first upgrade trigger in onUpgrade + SQLiteDatabase db = mInMemoryDbHelper.getWritableDatabase(); + // UserHandle column is added in version 65. + mHelper.onUpgrade(db, (4 << 16), 65); + + // The upgraded db must have the field Telephony.Carrier.INFRASTRUCTURE_BITMASK. + Cursor cursor = db.query("carriers", null, null, null, null, null, null); + String[] columns = cursor.getColumnNames(); + Log.d(TAG, "carriers columns: " + Arrays.toString(columns)); + assertTrue(Arrays.asList(columns).contains(Carriers.INFRASTRUCTURE_BITMASK)); + + // Insert test contentValues into db. + final int insertId = 1; + final String IdKey = "_id"; + ContentValues contentValues = new ContentValues(); + // Set INFRASTRUCTURE_BITMASK to 1ApnSetting.INFRASTRUCTURE_CELLULAR. + contentValues.put(Carriers.INFRASTRUCTURE_BITMASK, ApnSetting.INFRASTRUCTURE_CELLULAR); + contentValues.put(IdKey, insertId); + db.insert("carriers", null, contentValues); + + // Query INFRASTRUCTURE_BITMASK value from db which should be equal to ApnSetting + // .INFRASTRUCTURE_CELLULAR. + final String[] testProjection = {Carriers.INFRASTRUCTURE_BITMASK}; + final String selection = IdKey + "=?"; + String[] selectionArgs = {Integer.toString(insertId)}; + cursor = db.query("carriers", testProjection, selection, selectionArgs, + null, null, null); + assertNotNull(cursor); + assertEquals(1, cursor.getCount()); + cursor.moveToFirst(); + int infrastructureBitmask = cursor.getInt(0); + assertEquals(ApnSetting.INFRASTRUCTURE_CELLULAR, infrastructureBitmask); + + // Upgrade db from version 65 to version 67. + mHelper.onUpgrade(db, (65 << 16), 67); + + // Query INFRASTRUCTURE_BITMASK value from db which should be equal to (ApnSetting + // .INFRASTRUCTURE_CELLULAR | ApnSetting.INFRASTRUCTURE_SATELLITE) after db upgrade. + int expectedInfrastructureBitmask = + ApnSetting.INFRASTRUCTURE_CELLULAR | ApnSetting.INFRASTRUCTURE_SATELLITE; + cursor = db.query("carriers", testProjection, selection, selectionArgs, + null, null, null); + assertNotNull(cursor); + assertEquals(1, cursor.getCount()); + cursor.moveToFirst(); + infrastructureBitmask = cursor.getInt(0); + assertEquals(expectedInfrastructureBitmask, infrastructureBitmask); + } + /** * Helper for an in memory DB used to test the TelephonyProvider#DatabaseHelper. * |