AddEvent - creates calendar if it doesn't exist
[unical.git] / src / ro / ieval / unical / Event.java
CommitLineData
bdd8f09c 1package ro.ieval.unical;
7be52756 2
92086ce7
PT
3import java.util.ArrayList;
4
39f0cac1 5import android.content.ContentResolver;
1b1953cc 6import android.content.ContentValues;
39f0cac1 7import android.content.Context;
7be52756 8import android.database.Cursor;
1b1953cc 9import android.graphics.Color;
4b8bd2f8 10import android.net.Uri;
39f0cac1
MG
11import android.os.Parcel;
12import android.os.Parcelable;
8a817995 13import android.provider.BaseColumns;
1b1953cc 14import android.provider.CalendarContract;
39f0cac1 15import android.provider.CalendarContract.Events;
7be52756 16
39f0cac1
MG
17final class Event implements Parcelable{
18 public static final Parcelable.Creator<Event> CREATOR = new Parcelable.Creator<Event>() {
19 @Override
5cf4714f 20 public Event createFromParcel(final Parcel source) {
b7fd90e9 21 return new Event(source.readLong(), source.readString(), source.readString(), source.readString(), source.readString(), source.readInt(), source.readLong(), source.readLong(), source.readLong());
39f0cac1
MG
22 }
23
24 @Override
5cf4714f 25 public Event[] newArray(final int size) {
39f0cac1
MG
26 return new Event[size];
27 }
28 };
29
30 private static final String[] PROJECTION = {
8a817995 31 BaseColumns._ID,
39f0cac1
MG
32 Events.ORGANIZER,
33 Events.TITLE,
34 Events.EVENT_LOCATION,
35 Events.DESCRIPTION,
36 Events.EVENT_COLOR,
37 Events.DTSTART,
38 Events.DTEND,
b7fd90e9 39 Events.CALENDAR_ID,
39f0cac1
MG
40 };
41
42 /** Event ID */
5835912b 43 public long _id;
39f0cac1 44 /** Event owner */
5835912b 45 public String organizer;
39f0cac1 46 /** Event title */
5835912b 47 public String title;
39f0cac1 48 /** Event location */
5835912b 49 public String eventLocation;
39f0cac1 50 /** Event description */
5835912b 51 public String description;
39f0cac1 52 /** Event colour */
5835912b 53 public int eventColour;
070d3ab2 54 /** Event start time (UTC milliseconds since epoch) */
5835912b 55 public long dtstart;
39f0cac1 56 /** Event end time (UTC milliseconds since epoch) */
5835912b 57 public long dtend;
b7fd90e9 58 /** Calendar ID */
5835912b 59 public long calendarID;
39f0cac1 60
1b1953cc
P
61 public static Boolean calendarCreated=false;
62
e4fb15ad
MG
63 public Event() {
64 dtstart = System.currentTimeMillis();
65 dtend = dtstart + 60*60*1000;
66 }
c32befcc 67
412b2d69 68 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) {
39f0cac1
MG
69 this._id=_id;
70 this.organizer=organizer;
71 this.title=title;
72 this.eventLocation=eventLocation;
73 this.description=description;
74 this.eventColour=eventColor;
75 this.dtstart=dtstart;
76 this.dtend=dtend;
b7fd90e9 77 this.calendarID=calendarID;
39f0cac1
MG
78 }
79
810f5287 80 public static Event[] getEventsByCalendar(final Context context, final Calendar calendar, final String sort){
39f0cac1
MG
81 final ContentResolver cr=context.getContentResolver();
82 final Cursor cursor = cr.query(Events.CONTENT_URI,
83 PROJECTION,
84 Events.CALENDAR_ID+" = ?",
810f5287 85 new String[]{Long.toString(calendar._id)},
fc891ea8 86 sort);
39f0cac1
MG
87 cursor.moveToFirst();
88 final Event[] events = new Event[cursor.getCount()];
16e2550c 89 for(int i=0;i<events.length;i++){
810f5287
MG
90 int colour=cursor.getInt(5);
91 colour=colour == 0 ? calendar.colour : colour;
92 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));
16e2550c
MG
93 cursor.moveToNext();
94 }
8a817995 95 cursor.close();
39f0cac1
MG
96 return events;
97 }
070d3ab2 98
92086ce7 99 public static Event[] getAllEvents(final Context context) {
c1da3e5d 100 final ArrayList<Event> r = new ArrayList<Event>();
1b1953cc
P
101 for(final Calendar calendar : Calendar.getAllCalendars(context)) {
102 if(calendar.name.equals("unical")) calendarCreated=true;
810f5287 103 for(final Event event : getEventsByCalendar(context, calendar, null))
c1da3e5d 104 r.add(event);
1b1953cc 105 }
92086ce7
PT
106 return r.toArray(new Event[r.size()]);
107 }
39f0cac1 108
ad349897
P
109 public void insert(final Context context) {
110 final ContentResolver cr=context.getContentResolver();
111 //cr.insert(Uri.withAppendedPath(Events.CONTENT_URI));
112 //cr.notifyChange();
113 }
114
4b8bd2f8
MG
115 public void delete(final Context context){
116 final ContentResolver cr=context.getContentResolver();
117 cr.delete(Uri.withAppendedPath(Events.CONTENT_URI, Long.toString(_id)), null, null);
118 }
070d3ab2 119
39f0cac1
MG
120 @Override
121 public int describeContents() {
122 return 0;
123 }
124
125 @Override
5cf4714f 126 public void writeToParcel(final Parcel dest, final int flags) {
d022ee49 127 dest.writeLong(_id);
39f0cac1
MG
128 dest.writeString(organizer);
129 dest.writeString(title);
130 dest.writeString(eventLocation);
131 dest.writeString(description);
132 dest.writeInt(eventColour);
133 dest.writeLong(dtstart);
134 dest.writeLong(dtend);
b7fd90e9 135 dest.writeLong(calendarID);
bdd8f09c
PT
136 }
137}
This page took 0.02645 seconds and 4 git commands to generate.