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