import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
+import android.provider.BaseColumns;
import android.provider.CalendarContract.Events;
final class Event implements Parcelable{
};
private static final String[] PROJECTION = {
- Events._ID,
+ BaseColumns._ID,
Events.ORGANIZER,
Events.TITLE,
Events.EVENT_LOCATION,
};
/** Event ID */
- public final long _id;
+ public long _id;
/** Event owner */
- public final String organizer;
+ public String organizer;
/** Event title */
- public final String title;
+ public String title;
/** Event location */
- public final String eventLocation;
+ public String eventLocation;
/** Event description */
- public final String description;
+ public String description;
/** Event colour */
- public final int eventColour;
- /** Event start time (UTC milliseconds since epoch) */
- public final long dtstart;
+ public int eventColour;
+ /** Event start time (UTC milliseconds since epoch) */
+ public long dtstart;
/** Event end time (UTC milliseconds since epoch) */
- public final long dtend;
+ public long dtend;
/** Calendar ID */
- public final long calendarID;
+ public long calendarID;
- private Event(final long _id, final String organizer, final String title, final String eventLocation, final String description, final int eventColor, final long dtstart, final long dtend, final long calendarID) {
+ public Event() {
+ dtstart = System.currentTimeMillis();
+ dtend = dtstart + 60*60*1000;
+ }
+
+ public Event(final long _id, final String organizer, final String title, final String eventLocation, final String description, final int eventColor, final long dtstart, final long dtend, final long calendarID) {
this._id=_id;
this.organizer=organizer;
this.title=title;
this.calendarID=calendarID;
}
- public static Event[] getEventsByCalendar(final Context context, final long calendarID, final String sort){
+ public static Event[] getEventsByCalendar(final Context context, final Calendar calendar, final String sort){
final ContentResolver cr=context.getContentResolver();
final Cursor cursor = cr.query(Events.CONTENT_URI,
PROJECTION,
Events.CALENDAR_ID+" = ?",
- new String[]{Long.toString(calendarID)},
+ new String[]{Long.toString(calendar._id)},
sort);
cursor.moveToFirst();
final Event[] events = new Event[cursor.getCount()];
for(int i=0;i<events.length;i++){
- events[i]=new Event(cursor.getLong(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getInt(5), cursor.getLong(6), cursor.getLong(7), cursor.getLong(8));
+ int colour=cursor.getInt(5);
+ colour=colour == 0 ? calendar.colour : colour;
+ events[i]=new Event(cursor.getLong(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), colour, cursor.getLong(6), cursor.getLong(7), cursor.getLong(8));
cursor.moveToNext();
}
+ cursor.close();
return events;
}
-
+
public static Event[] getAllEvents(final Context context) {
- Calendar[] calendars = Calendar.getAllCalendars(context);
- ArrayList<Event> r = new ArrayList<Event>();
- for(int i=0; i<calendars.length; ++i) {
- Event[] e=getEventsByCalendar(context, calendars[i]._id, "");
- for(int j=0; j<e.length; ++j)
- r.add(e[j]);
- }
+ final ArrayList<Event> r = new ArrayList<Event>();
+ for(final Calendar calendar : Calendar.getAllCalendars(context))
+ for(final Event event : getEventsByCalendar(context, calendar, null))
+ r.add(event);
return r.toArray(new Event[r.size()]);
}
+ public void insert(final Context context) {
+ final ContentResolver cr=context.getContentResolver();
+ //cr.insert(Uri.withAppendedPath(Events.CONTENT_URI));
+ //cr.notifyChange();
+ }
+
public void delete(final Context context){
final ContentResolver cr=context.getContentResolver();
cr.delete(Uri.withAppendedPath(Events.CONTENT_URI, Long.toString(_id)), null, null);