Update Calendars table to v300
Change-Id: I8e922f97733faed800a91ea926e1a3bea229ebea
diff --git a/core/java/android/provider/Calendar.java b/core/java/android/provider/Calendar.java
index 2eeb7a4..4141879 100644
--- a/core/java/android/provider/Calendar.java
+++ b/core/java/android/provider/Calendar.java
@@ -110,13 +110,13 @@
* The account that was used to sync the entry to the device.
* <P>Type: TEXT</P>
*/
- public static final String _SYNC_ACCOUNT = "_sync_account";
+ public static final String ACCOUNT_NAME = "account_name";
/**
* The type of the account that was used to sync the entry to the device.
* <P>Type: TEXT</P>
*/
- public static final String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
+ public static final String ACCOUNT_TYPE = "account_type";
/**
* The unique ID for a row assigned by the sync source. NULL if the row has never been synced.
@@ -146,30 +146,11 @@
* Used to indicate that local, unsynced, changes are present.
* <P>Type: INTEGER (long)</P>
*/
- public static final String _SYNC_DIRTY = "_sync_dirty";
+ public static final String DIRTY = "dirty";
}
/**
- * Columns from the Account information used by Calendars and Events tables.
- */
- public interface AccountColumns {
- /**
- * The name of the account instance to which this row belongs, which when paired with
- * {@link #ACCOUNT_TYPE} identifies a specific account.
- * <P>Type: TEXT</P>
- */
- public static final String ACCOUNT_NAME = "account_name";
-
- /**
- * The type of account to which this row belongs, which when paired with
- * {@link #ACCOUNT_NAME} identifies a specific account.
- * <P>Type: TEXT</P>
- */
- public static final String ACCOUNT_TYPE = "account_type";
- }
-
- /**
* Columns from the Calendars table that other tables join into themselves.
*/
public interface CalendarsColumns {
@@ -177,7 +158,7 @@
* The color of the calendar
* <P>Type: INTEGER (color value)</P>
*/
- public static final String COLOR = "color";
+ public static final String CALENDAR_COLOR = "calendar_color";
/**
* The level of access that the user has for the calendar
@@ -211,7 +192,7 @@
* The timezone the calendar's events occurs in
* <P>Type: TEXT</P>
*/
- public static final String TIMEZONE = "timezone";
+ public static final String CALENDAR_TIMEZONE = "calendar_timezone";
/**
* If this calendar is in the list of calendars that are selected for
@@ -275,13 +256,13 @@
ContentValues cv = new ContentValues();
cv.put(_ID, calendarId);
- DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_ACCOUNT);
- DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_ACCOUNT_TYPE);
+ DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, ACCOUNT_NAME);
+ DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, ACCOUNT_TYPE);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_ID);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_VERSION);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_TIME);
- DatabaseUtils.cursorLongToContentValuesIfPresent(cursor, cv, _SYNC_DIRTY);
+ DatabaseUtils.cursorLongToContentValuesIfPresent(cursor, cv, DIRTY);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, Calendars.SYNC1);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, Calendars.SYNC2);
@@ -293,12 +274,13 @@
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, Calendars.NAME);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv,
Calendars.DISPLAY_NAME);
- DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, Calendars.COLOR);
+ DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, Calendars.CALENDAR_COLOR);
DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, ACCESS_LEVEL);
DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, VISIBLE);
DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, SYNC_EVENTS);
- DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, Calendars.LOCATION);
- DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, TIMEZONE);
+ DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv,
+ Calendars.CALENDAR_LOCATION);
+ DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, CALENDAR_TIMEZONE);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv,
Calendars.OWNER_ACCOUNT);
DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv,
@@ -325,11 +307,12 @@
/**
* Contains a list of available calendars.
*/
- public static class Calendars implements BaseColumns, SyncColumns, AccountColumns,
+ public static class Calendars implements BaseColumns, SyncColumns,
CalendarsColumns
{
- private static final String WHERE_DELETE_FOR_ACCOUNT = Calendars._SYNC_ACCOUNT + "=?"
- + " AND " + Calendars._SYNC_ACCOUNT_TYPE + "=?";
+ private static final String WHERE_DELETE_FOR_ACCOUNT = Calendars.ACCOUNT_NAME + "=?"
+ + " AND "
+ + Calendars.ACCOUNT_TYPE + "=?";
public static final Cursor query(ContentResolver cr, String[] projection,
String where, String orderBy)
@@ -414,7 +397,7 @@
* The location the of the events in the calendar
* <P>Type: TEXT</P>
*/
- public static final String LOCATION = "location";
+ public static final String CALENDAR_LOCATION = "calendar_location";
/**
* The owner account for this calendar, based on the calendar feed.
@@ -443,23 +426,31 @@
public static final String MAX_REMINDERS = "maxReminders";
/**
+ * The maximum number of reminders allowed for an event.
+ * <P>
+ * Type: INTEGER
+ * </P>
+ */
+ public static final String ALLOWED_REMINDERS = "allowedReminders";
+
+ /**
* These fields are only writable by a sync adapter. To modify them the
* caller must include CALLER_IS_SYNCADAPTER, _SYNC_ACCOUNT, and
* _SYNC_ACCOUNT_TYPE in the query parameters.
*/
public static final String[] SYNC_WRITABLE_COLUMNS = new String[] {
- _SYNC_ACCOUNT,
- _SYNC_ACCOUNT_TYPE,
+ ACCOUNT_NAME,
+ ACCOUNT_TYPE,
_SYNC_ID,
_SYNC_TIME,
_SYNC_VERSION,
- _SYNC_DIRTY,
+ DIRTY,
OWNER_ACCOUNT,
MAX_REMINDERS,
CAN_MODIFY_TIME_ZONE,
CAN_ORGANIZER_RESPOND,
- LOCATION,
- TIMEZONE,
+ CALENDAR_LOCATION,
+ CALENDAR_TIMEZONE,
ACCESS_LEVEL,
DELETED,
SYNC1,
@@ -604,7 +595,7 @@
* This column is available for use by sync adapters
* <P>Type: TEXT</P>
*/
- public static final String SYNC_ADAPTER_DATA = "syncAdapterData";
+ public static final String SYNC_DATA1 = "sync_data1";
/**
* The comments feed uri.
@@ -652,7 +643,7 @@
* The timezone for the event, allDay events will have a local tz instead of UTC
* <P>Type: TEXT
*/
- public static final String EVENT_TIMEZONE2 = "eventTimezone2";
+ public static final String EVENT_END_TIMEZONE = "eventEndTimezone";
/**
* Whether the event lasts all day or not
@@ -661,25 +652,49 @@
public static final String ALL_DAY = "allDay";
/**
- * Visibility for the event.
+ * Defines how the event shows up for others when the calendar is
+ * shared.
* <P>Type: INTEGER</P>
*/
- public static final String VISIBILITY = "visibility";
-
- public static final int VISIBILITY_DEFAULT = 0;
- public static final int VISIBILITY_CONFIDENTIAL = 1;
- public static final int VISIBILITY_PRIVATE = 2;
- public static final int VISIBILITY_PUBLIC = 3;
+ public static final String ACCESS_LEVEL = "accessLevel";
/**
- * Transparency for the event -- does the event consume time on the calendar?
+ * Default access is controlled by the server and will be treated as
+ * public on the device.
+ */
+ public static final int ACCESS_DEFAULT = 0;
+ /**
+ * Confidential is not used by the app.
+ */
+ public static final int ACCESS_CONFIDENTIAL = 1;
+ /**
+ * Private assumes the event appears as a free/busy slot with no
+ * details.
+ */
+ public static final int ACCESS_PRIVATE = 2;
+ /**
+ * Public assumes the contents are visible to anyone with access to the
+ * calendar.
+ */
+ public static final int ACCESS_PUBLIC = 3;
+
+ /**
+ * If this event counts as busy time or is still free time that can be
+ * scheduled over.
* <P>Type: INTEGER</P>
*/
- public static final String TRANSPARENCY = "transparency";
+ public static final String AVAILABILITY = "availability";
- public static final int TRANSPARENCY_OPAQUE = 0;
-
- public static final int TRANSPARENCY_TRANSPARENT = 1;
+ /**
+ * Indicates that this event takes up time and will conflict with other
+ * events.
+ */
+ public static final int AVAILABILITY_BUSY = 0;
+ /**
+ * Indicates that this event is free time and will not conflict with
+ * other events.
+ */
+ public static final int AVAILABILITY_FREE = 1;
/**
* Whether the event has an alarm or not
@@ -723,7 +738,7 @@
* an exception.
* <P>Type: TEXT</P>
*/
- public static final String ORIGINAL_EVENT = "originalEvent";
+ public static final String ORIGINAL_SYNC_ID = "original_sync_id";
/**
* The original instance time of the recurring event for which this
@@ -801,10 +816,10 @@
}
/**
- * Contains one entry per calendar event. Recurring events show up as a single entry.
+ * Contains one entry per calendar event. Recurring events show up as a
+ * single entry.
*/
- public static final class EventsEntity implements BaseColumns, SyncColumns, AccountColumns,
- EventsColumns {
+ public static final class EventsEntity implements BaseColumns, SyncColumns, EventsColumns {
/**
* The content:// style URL for this table
*/
@@ -885,8 +900,8 @@
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, DURATION);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, EVENT_TIMEZONE);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, ALL_DAY);
- DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, VISIBILITY);
- DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, TRANSPARENCY);
+ DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, ACCESS_LEVEL);
+ DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, AVAILABILITY);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, HAS_ALARM);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv,
HAS_EXTENDED_PROPERTIES);
@@ -894,7 +909,7 @@
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, RDATE);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, EXRULE);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, EXDATE);
- DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, ORIGINAL_EVENT);
+ DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, ORIGINAL_SYNC_ID);
DatabaseUtils.cursorLongToContentValuesIfPresent(cursor, cv,
ORIGINAL_INSTANCE_TIME);
DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, ORIGINAL_ALL_DAY);
@@ -907,12 +922,12 @@
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, ORGANIZER);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_ID);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_DATA);
- DatabaseUtils.cursorLongToContentValuesIfPresent(cursor, cv, _SYNC_DIRTY);
+ DatabaseUtils.cursorLongToContentValuesIfPresent(cursor, cv, DIRTY);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, _SYNC_VERSION);
DatabaseUtils.cursorIntToContentValuesIfPresent(cursor, cv, EventsColumns.DELETED);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv, Calendars.SYNC1);
DatabaseUtils.cursorStringToContentValuesIfPresent(cursor, cv,
- Events.SYNC_ADAPTER_DATA);
+ Events.SYNC_DATA1);
Entity entity = new Entity(cv);
Cursor subCursor;
@@ -1003,11 +1018,10 @@
/**
* Contains one entry per calendar event. Recurring events show up as a single entry.
*/
- public static final class Events implements BaseColumns, SyncColumns, AccountColumns,
- EventsColumns {
+ public static final class Events implements BaseColumns, SyncColumns, EventsColumns {
private static final String[] FETCH_ENTRY_COLUMNS =
- new String[] { Events._SYNC_ACCOUNT, Events._SYNC_ID };
+ new String[] { Events.ACCOUNT_NAME, Events._SYNC_ID };
private static final String[] ATTENDEES_COLUMNS =
new String[] { AttendeesColumns.ATTENDEE_NAME,
@@ -1049,6 +1063,29 @@
* The default sort order for this table
*/
public static final String DEFAULT_SORT_ORDER = "";
+
+ /**
+ * These are columns that should only ever be updated by the provider,
+ * either because they are views mapped to another table or because they
+ * are used for provider only functionality.
+ */
+ public static String[] PROVIDER_WRITABLE_COLUMNS = new String[] {
+ ACCOUNT_NAME,
+ ACCOUNT_TYPE
+ };
+
+ /**
+ * These fields are only writable by a sync adapter. To modify them the
+ * caller must include CALLER_IS_SYNCADAPTER, _SYNC_ACCOUNT, and
+ * _SYNC_ACCOUNT_TYPE in the query parameters.
+ */
+ public static final String[] SYNC_WRITABLE_COLUMNS = new String[] {
+ _SYNC_ID,
+ _SYNC_TIME,
+ _SYNC_VERSION,
+ DIRTY,
+ SYNC_DATA1
+ };
}
/**