diff options
author | Bill Rassieur <rassb@google.com> | 2019-03-29 04:26:42 +0000 |
---|---|---|
committer | Bill Rassieur <rassb@google.com> | 2019-03-29 04:26:42 +0000 |
commit | f8e5c2f0413c8fd9883b83597e74d460d1c760ef (patch) | |
tree | 8d0f42d437fd09b674c5d7638315920b9b571e04 | |
parent | 6603377c7a61b4135bce771ea667575ef30d25c8 (diff) | |
parent | 055d5522343dc810dad67011225802a15dd07243 (diff) | |
download | CalendarProvider-f8e5c2f0413c8fd9883b83597e74d460d1c760ef.tar.gz |
Merge master@5406228 into git_qt-dev-plus-aosp.
Change-Id: I17e99073107cfe247c23001a767ed97e6ffa346f
BUG: 129345239
-rw-r--r-- | src/com/android/providers/calendar/CalendarProvider2.java | 13 | ||||
-rw-r--r-- | tests/src/com/android/providers/calendar/CalendarProvider2Test.java | 14 |
2 files changed, 25 insertions, 2 deletions
diff --git a/src/com/android/providers/calendar/CalendarProvider2.java b/src/com/android/providers/calendar/CalendarProvider2.java index 1c5e8e9..c856f9d 100644 --- a/src/com/android/providers/calendar/CalendarProvider2.java +++ b/src/com/android/providers/calendar/CalendarProvider2.java @@ -450,6 +450,10 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun /** set to 'true' to enable debug logging for recurrence exception code */ private static final boolean DEBUG_EXCEPTION = false; + + private static final String SELECTION_PRIMARY_CALENDAR = + Calendars.IS_PRIMARY + "= 1" + + " OR " + Calendars.ACCOUNT_NAME + "=" + Calendars.OWNER_ACCOUNT; private final ThreadLocal<Boolean> mCallingPackageErrorLogged = new ThreadLocal<Boolean>(); @@ -919,6 +923,12 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun getCallingPackageName(), workProfileUserId); } + private String appendPrimaryOnlyToSelection(String selection) { + return TextUtils.isEmpty(selection) + ? SELECTION_PRIMARY_CALENDAR + : selection + " AND (" + SELECTION_PRIMARY_CALENDAR + ")"; + } + private Cursor queryWorkProfileProvider(Uri localUri, String[] projection, String selection, String[] selectionArgs, String sortOrder, List<String> additionalPathSegments) { @@ -939,6 +949,9 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun remoteUri = Uri.withAppendedPath(remoteUri, segment); } } + + selection = appendPrimaryOnlyToSelection(selection); + final Cursor cursor = getContext().getContentResolver().query(remoteUri, projection, selection, selectionArgs, sortOrder); return cursor == null ? createEmptyCursor(projection) : cursor; diff --git a/tests/src/com/android/providers/calendar/CalendarProvider2Test.java b/tests/src/com/android/providers/calendar/CalendarProvider2Test.java index f9180ca..f420622 100644 --- a/tests/src/com/android/providers/calendar/CalendarProvider2Test.java +++ b/tests/src/com/android/providers/calendar/CalendarProvider2Test.java @@ -3223,9 +3223,10 @@ public class CalendarProvider2Test extends AndroidTestCase { String[] projection = new String[] { Calendars.IS_PRIMARY }; - String selection = "((" + Calendars.ACCOUNT_NAME + " = ? ))"; + String selection = + "((" + Calendars.IS_PRIMARY + " = ? OR " + Calendars.ACCOUNT_NAME + " = ?))"; String[] selectionArgs = new String[] { - DEFAULT_ACCOUNT + "1", DEFAULT_ACCOUNT }; Cursor cursor = mResolver.query(Calendars.CONTENT_URI, projection, selection, selectionArgs, null); @@ -3320,6 +3321,7 @@ public class CalendarProvider2Test extends AndroidTestCase { assertEquals(calendarId, cursor.getLong(1)); assertEquals(WORK_EVENT_DTSTART, cursor.getLong(2)); assertEquals(WORK_CALENDAR_COLOR, cursor.getInt(3)); + cursor.close(); cleanupEnterpriseTestForEvents(calendarId, 2); cleanupEnterpriseTestForCalendars(1); @@ -3355,6 +3357,7 @@ public class CalendarProvider2Test extends AndroidTestCase { // There are two events that meet the search criteria. assertNotNull(cursor); assertEquals(2, cursor.getCount()); + cursor.close(); cleanupEnterpriseTestForEvents(calendarId, 2); cleanupEnterpriseTestForCalendars(1); @@ -3393,6 +3396,7 @@ public class CalendarProvider2Test extends AndroidTestCase { assertEquals(calendarId, cursor.getLong(2)); assertEquals(WORK_EVENT_DTSTART, cursor.getLong(3)); assertEquals(WORK_CALENDAR_COLOR, cursor.getInt(4)); + cursor.close(); cleanupEnterpriseTestForEvents(calendarId, 2); cleanupEnterpriseTestForCalendars(1); @@ -3427,6 +3431,8 @@ public class CalendarProvider2Test extends AndroidTestCase { assertEquals(calendarId, cursor.getLong(2)); assertEquals(WORK_EVENT_DTSTART, cursor.getLong(3)); assertEquals(WORK_CALENDAR_COLOR, cursor.getInt(4)); + assertEquals(1, cursor.getInt(2)); + cursor.close(); cleanupEnterpriseTestForEvents(calendarId, 2); cleanupEnterpriseTestForCalendars(1); @@ -3465,6 +3471,7 @@ public class CalendarProvider2Test extends AndroidTestCase { cursor.getColumnIndex(Calendars.CALENDAR_COLOR))); assertEquals(1, cursor.getInt( cursor.getColumnIndex(Calendars.IS_PRIMARY))); + cursor.close(); cleanupEnterpriseTestForEvents(calendarId, 2); cleanupEnterpriseTestForCalendars(1); @@ -3540,6 +3547,7 @@ public class CalendarProvider2Test extends AndroidTestCase { cursor.moveToFirst(); assertEquals(idToTest, cursor.getLong(0)); assertEquals(WORK_CALENDAR_COLOR, cursor.getInt(1)); + cursor.close(); cleanupEnterpriseTestForCalendars(2); } @@ -3565,6 +3573,7 @@ public class CalendarProvider2Test extends AndroidTestCase { cursor.getColumnIndex(Calendars._ID))); assertEquals(WORK_CALENDAR_COLOR, cursor.getInt( cursor.getColumnIndex(Calendars.CALENDAR_COLOR))); + cursor.close(); cleanupEnterpriseTestForCalendars(1); } @@ -3597,6 +3606,7 @@ public class CalendarProvider2Test extends AndroidTestCase { new String[]{}, null, null, null); assertTrue(cursor != null); assertTrue(cursor.getCount() == 0); + cursor.close(); cleanupEnterpriseTestForCalendars(1); } |