Remove trailing whitespace
[unical.git] / src / ro / ieval / unical / Event.java
index 8d999476249ca761c80e2611dcb8d931492e09e5..c1648056963e54568c7987551da2a9d5632fb0e7 100644 (file)
 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 java.util.ArrayList;
+
+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.BaseColumns;
+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(final 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(final int size) {
+                       return new Event[size];
+               }
+       };
+
+       private static final String[] PROJECTION = {
+               BaseColumns._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 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(calendar._id)},
+                               sort);
+               cursor.moveToFirst();
+               final Event[] events = new Event[cursor.getCount()];
+               for(int i=0;i<events.length;i++){
+                       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) {
+               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 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(final Parcel dest, final 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);
        }
 }
This page took 0.011659 seconds and 4 git commands to generate.