diff options
| author | android-build-team Robot <android-build-team-robot@google.com> | 2020-07-18 01:14:51 +0000 |
|---|---|---|
| committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-07-18 01:14:51 +0000 |
| commit | d255ed4c14c08931c4be56542724c8ed501e03fb (patch) | |
| tree | c2a0d254ac75313d852a5acf109f7be596a68136 | |
| parent | 6109b7fc98842dadaa254918eae94260d2e8c083 (diff) | |
| parent | 748c832f0eedd4a0cab8768a067eb9f68260d5d3 (diff) | |
| download | platform_packages_providers_TelephonyProvider-android11-d1-s7-release.tar.gz platform_packages_providers_TelephonyProvider-android11-d1-s7-release.tar.bz2 platform_packages_providers_TelephonyProvider-android11-d1-s7-release.zip | |
Snap for 6690120 from 748c832f0eedd4a0cab8768a067eb9f68260d5d3 to rvc-d1-releaseandroid-11.0.0_r9android-11.0.0_r8android-11.0.0_r7android-11.0.0_r15android-11.0.0_r14android-11.0.0_r13android-11.0.0_r12android-11.0.0_r11android-11.0.0_r10android11-d1-s7-releaseandroid11-d1-s6-releaseandroid11-d1-s5-releaseandroid11-d1-s1-releaseandroid11-d1-release
Change-Id: I4a2e9b51d4023942d55956264d3b99433cae2260
| -rw-r--r-- | src/com/android/providers/telephony/TelephonyProvider.java | 12 | ||||
| -rw-r--r-- | tests/src/com/android/providers/telephony/TelephonyProviderTest.java | 22 |
2 files changed, 28 insertions, 6 deletions
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java index 4966e5ae..f9767477 100644 --- a/src/com/android/providers/telephony/TelephonyProvider.java +++ b/src/com/android/providers/telephony/TelephonyProvider.java @@ -169,6 +169,9 @@ public class TelephonyProvider extends ContentProvider private static final int URL_FILTERED = 18; private static final int URL_FILTERED_ID = 19; private static final int URL_ENFORCE_MANAGED = 20; + // URL_PREFERAPNSET and URL_PREFERAPNSET_USING_SUBID return all APNs for the current + // carrier which have an apn_set_id equal to the preferred APN + // (if no preferred APN, or preferred APN has no set id, the query will return null) private static final int URL_PREFERAPNSET = 21; private static final int URL_PREFERAPNSET_USING_SUBID = 22; private static final int URL_SIM_APN_LIST = 23; @@ -3009,10 +3012,13 @@ public class TelephonyProvider extends ContentProvider // intentional fall through from above case case URL_PREFERAPNSET: { final int set = getPreferredApnSetId(subId); - if (set != NO_APN_SET_ID) { - constraints.add(APN_SET_ID + "=" + set); + if (set == NO_APN_SET_ID) { + return null; } - break; + constraints.add(APN_SET_ID + "=" + set); + qb.appendWhere(TextUtils.join(" AND ", constraints)); + return getSubscriptionMatchingAPNList(qb, projectionIn, selection, selectionArgs, + sort, subId); } case URL_DPC: { diff --git a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java index 18c8d089..e0f07bc7 100644 --- a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java +++ b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java @@ -1298,20 +1298,35 @@ public class TelephonyProviderTest extends TestCase { values3.put(Carriers.NUMERIC, TEST_OPERATOR); values3.put(Carriers.APN_SET_ID, 1); + // values4 has a matching setId but it belongs to a different carrier + ContentValues values4 = new ContentValues(); + final String apn4 = "fourthApnName"; + final String name4 = "name4"; + values4.put(Carriers.APN, apn4); + values4.put(Carriers.NAME, name4); + values4.put(Carriers.NUMERIC, "999888"); + values4.put(Carriers.APN_SET_ID, 1); + // insert APNs // we explicitly include subid, as SubscriptionManager.getDefaultSubscriptionId() returns -1 Log.d(TAG, "testPreferApnSetUrl: inserting contentValues=" + values1 + ", " + values2 - + ", " + values3); + + ", " + values3 + ", " + values4); mContentResolver.insert(CONTENT_URI_WITH_SUBID, values1); mContentResolver.insert(CONTENT_URI_WITH_SUBID, values2); + mContentResolver.insert(CONTENT_URI_WITH_SUBID, values4); Uri uri = mContentResolver.insert(CONTENT_URI_WITH_SUBID, values3); - // before there's a preferred APN set, assert that all APNs are returned + // verify all APNs were correctly inserted final String[] testProjection = { Carriers.NAME }; Cursor cursor = mContentResolver.query( + Carriers.CONTENT_URI, testProjection, null, null, null); + assertEquals(4, cursor.getCount()); + + // preferapnset/subId returns null when there is no preferred APN + cursor = mContentResolver.query( Uri.withAppendedPath(Carriers.CONTENT_URI, "preferapnset/subId/" + TEST_SUBID), testProjection, null, null, null); - assertEquals(3, cursor.getCount()); + assertNull(cursor); // set the APN from values3 (apn_set_id = 1) to the preferred APN final String preferredApnIdString = uri.getLastPathSegment(); @@ -1326,6 +1341,7 @@ public class TelephonyProviderTest extends TestCase { cursor = mContentResolver.query( Uri.withAppendedPath(Carriers.CONTENT_URI, "preferapnset/subId/" + TEST_SUBID), testProjection, null, null, null); + // values4 which was inserted with a different carrier is not included in the results assertEquals(2, cursor.getCount()); cursor.moveToFirst(); assertEquals(name2, cursor.getString(0)); |
