summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Rassieur <rassb@google.com>2019-03-29 04:26:42 +0000
committerBill Rassieur <rassb@google.com>2019-03-29 04:26:42 +0000
commitf8e5c2f0413c8fd9883b83597e74d460d1c760ef (patch)
tree8d0f42d437fd09b674c5d7638315920b9b571e04
parent6603377c7a61b4135bce771ea667575ef30d25c8 (diff)
parent055d5522343dc810dad67011225802a15dd07243 (diff)
downloadCalendarProvider-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.java13
-rw-r--r--tests/src/com/android/providers/calendar/CalendarProvider2Test.java14
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);
}