package ro.ieval.unical;
-public class Event {
- public int date,time;
- public boolean repeat;
- public int repeatInterval;
- public String location;
- public String description;
- public String tags[];
- public String title;
- Event() {
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.CalendarContract.Events;
+
+final class Event implements Parcelable{
+ public static final Parcelable.Creator<Event> CREATOR = new Parcelable.Creator<Event>() {
+ @Override
+ public Event createFromParcel(Parcel source) {
+ return new Event(source.readLong(), source.readString(), source.readString(), source.readString(), source.readString(), source.readInt(), source.readLong(), source.readLong(), source.readLong());
+ }
+
+ @Override
+ public Event[] newArray(int size) {
+ return new Event[size];
+ }
+ };
+
+ private static final String[] PROJECTION = {
+ Events._ID,
+ Events.ORGANIZER,
+ Events.TITLE,
+ Events.EVENT_LOCATION,
+ Events.DESCRIPTION,
+ Events.EVENT_COLOR,
+ Events.DTSTART,
+ Events.DTEND,
+ Events.CALENDAR_ID,
+ };
+
+ /** Event ID */
+ public final long _id;
+ /** Event owner */
+ public final String organizer;
+ /** Event title */
+ public final String title;
+ /** Event location */
+ public final String eventLocation;
+ /** Event description */
+ public final String description;
+ /** Event colour */
+ public final int eventColour;
+ /** Event start time (UTC milliseconds since epoch) */
+ public final long dtstart;
+ /** Event end time (UTC milliseconds since epoch) */
+ public final long dtend;
+ /** Calendar ID */
+ public final 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) {
+ this._id=_id;
+ this.organizer=organizer;
+ this.title=title;
+ this.eventLocation=eventLocation;
+ this.description=description;
+ this.eventColour=eventColor;
+ this.dtstart=dtstart;
+ this.dtend=dtend;
+ this.calendarID=calendarID;
+ }
+
+ public static Event[] getEventsByCalendar(final Context context, final int calendarID){
+ final ContentResolver cr=context.getContentResolver();
+ final Cursor cursor = cr.query(Events.CONTENT_URI,
+ PROJECTION,
+ Events.CALENDAR_ID+" = ?",
+ new String[]{Integer.toString(calendarID)},
+ null);
+ cursor.moveToFirst();
+ final Event[] events = new Event[cursor.getCount()];
+ for(int i=0;i<events.length;i++)
+ events[i]=new Event(cursor.getInt(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));
+ return events;
+ }
+
+ public void delete(final Context context){
+ final ContentResolver cr=context.getContentResolver();
+ cr.delete(Uri.withAppendedPath(Events.CONTENT_URI, Long.toString(_id)), null, null);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeLong(_id);
+ dest.writeString(organizer);
+ dest.writeString(title);
+ dest.writeString(eventLocation);
+ dest.writeString(description);
+ dest.writeInt(eventColour);
+ dest.writeLong(dtstart);
+ dest.writeLong(dtend);
+ dest.writeLong(calendarID);
}
}