X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fro%2Fieval%2Funical%2FEvent.java;h=41809e9c6b2ca8dc2d5afc4d2fdd04edc6e43875;hb=412b2d69431430c4ae231ae599b5065603d8cffa;hp=d50820191a4794d13b66d719883a9f60ddc32f84;hpb=819197b2305a94ab4924c5ae37a3fad762078448;p=unical.git diff --git a/src/ro/ieval/unical/Event.java b/src/ro/ieval/unical/Event.java index d508201..41809e9 100644 --- a/src/ro/ieval/unical/Event.java +++ b/src/ro/ieval/unical/Event.java @@ -1,12 +1,119 @@ package ro.ieval.unical; -public class Event { - public int date,duration; - 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 CREATOR = new Parcelable.Creator() { + @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; + + 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) { + 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 r = new ArrayList(); + 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); } }