Clean up previous commit
[unical.git] / src / ro / ieval / unical / Event.java
1 package ro.ieval.unical;
2
3 import java.util.ArrayList;
4
5 import android.content.ContentResolver;
6 import android.content.Context;
7 import android.database.Cursor;
8 import android.net.Uri;
9 import android.os.Parcel;
10 import android.os.Parcelable;
11 import android.provider.CalendarContract.Events;
12
13 final class Event implements Parcelable{
14 public static final Parcelable.Creator<Event> CREATOR = new Parcelable.Creator<Event>() {
15 @Override
16 public Event createFromParcel(final Parcel source) {
17 return new Event(source.readLong(), source.readString(), source.readString(), source.readString(), source.readString(), source.readInt(), source.readLong(), source.readLong(), source.readLong());
18 }
19
20 @Override
21 public Event[] newArray(final int size) {
22 return new Event[size];
23 }
24 };
25
26 private static final String[] PROJECTION = {
27 Events._ID,
28 Events.ORGANIZER,
29 Events.TITLE,
30 Events.EVENT_LOCATION,
31 Events.DESCRIPTION,
32 Events.EVENT_COLOR,
33 Events.DTSTART,
34 Events.DTEND,
35 Events.CALENDAR_ID,
36 };
37
38 /** Event ID */
39 public final long _id;
40 /** Event owner */
41 public final String organizer;
42 /** Event title */
43 public final String title;
44 /** Event location */
45 public final String eventLocation;
46 /** Event description */
47 public final String description;
48 /** Event colour */
49 public final int eventColour;
50 /** Event start time (UTC milliseconds since epoch) */
51 public final long dtstart;
52 /** Event end time (UTC milliseconds since epoch) */
53 public final long dtend;
54 /** Calendar ID */
55 public final long calendarID;
56
57 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) {
58 this._id=_id;
59 this.organizer=organizer;
60 this.title=title;
61 this.eventLocation=eventLocation;
62 this.description=description;
63 this.eventColour=eventColor;
64 this.dtstart=dtstart;
65 this.dtend=dtend;
66 this.calendarID=calendarID;
67 }
68
69 public static Event[] getEventsByCalendar(final Context context, final long calendarID, final String sort){
70 final ContentResolver cr=context.getContentResolver();
71 final Cursor cursor = cr.query(Events.CONTENT_URI,
72 PROJECTION,
73 Events.CALENDAR_ID+" = ?",
74 new String[]{Long.toString(calendarID)},
75 sort);
76 cursor.moveToFirst();
77 final Event[] events = new Event[cursor.getCount()];
78 for(int i=0;i<events.length;i++){
79 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));
80 cursor.moveToNext();
81 }
82 return events;
83 }
84
85 public static Event[] getAllEvents(final Context context) {
86 final ArrayList<Event> r = new ArrayList<Event>();
87 for(final Calendar calendar : Calendar.getAllCalendars(context))
88 for(final Event event : getEventsByCalendar(context, calendar._id, null))
89 r.add(event);
90 return r.toArray(new Event[r.size()]);
91 }
92
93 public void delete(final Context context){
94 final ContentResolver cr=context.getContentResolver();
95 cr.delete(Uri.withAppendedPath(Events.CONTENT_URI, Long.toString(_id)), null, null);
96 }
97
98 @Override
99 public int describeContents() {
100 return 0;
101 }
102
103 @Override
104 public void writeToParcel(final Parcel dest, final int flags) {
105 dest.writeLong(_id);
106 dest.writeString(organizer);
107 dest.writeString(title);
108 dest.writeString(eventLocation);
109 dest.writeString(description);
110 dest.writeInt(eventColour);
111 dest.writeLong(dtstart);
112 dest.writeLong(dtend);
113 dest.writeLong(calendarID);
114 }
115 }
This page took 0.02225 seconds and 4 git commands to generate.