package ro.ieval.unical;
+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(Parcel source) {
- return new Event(source.readLong(), source.readString(), source.readString(), source.readString(), source.readString(), source.readInt(), source.readLong(), source.readLong());
+ 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(int size) {
+ public Event[] newArray(final int size) {
return new Event[size];
}
};
private static final String[] PROJECTION = {
- Events._ID,
+ BaseColumns._ID,
Events.ORGANIZER,
Events.TITLE,
Events.EVENT_LOCATION,
Events.EVENT_COLOR,
Events.DTSTART,
Events.DTEND,
-
+ Events.CALENDAR_ID,
};
/** Event ID */
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) {
+ 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.eventColour=eventColor;
this.dtstart=dtstart;
this.dtend=dtend;
+ this.calendarID=calendarID;
}
- public static Event[] getEventsByCalendar(final Context context, final int calendarID){
+ public static Event[] getEventsByCalendar(final Context context, final long calendarID, final String sort){
final ContentResolver cr=context.getContentResolver();
final Cursor cursor = cr.query(Events.CONTENT_URI,
PROJECTION,
Events.CALENDAR_ID+" = ?",
- new String[]{Integer.toString(calendarID)},
- null);
+ new String[]{Long.toString(calendarID)},
+ sort);
cursor.moveToFirst();
final Event[] events = new Event[cursor.getCount()];
- for(int i=0;i<events.length;i++)
- events[i]=new Event(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getInt(5), cursor.getLong(6), cursor.getLong(7));
+ for(int i=0;i<events.length;i++){
+ 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));
+ cursor.moveToNext();
+ }
+ cursor.close();
return events;
}
+
+ public static Event[] getAllEvents(final Context context) {
+ final ArrayList<Event> r = new ArrayList<Event>();
+ for(final GCalendar calendar : GCalendar.getAllCalendars(context))
+ for(final Event event : getEventsByCalendar(context, calendar._id, 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() {
}
@Override
- public void writeToParcel(Parcel dest, int flags) {
+ public void writeToParcel(final Parcel dest, final int flags) {
dest.writeLong(_id);
dest.writeString(organizer);
dest.writeString(title);
dest.writeInt(eventColour);
dest.writeLong(dtstart);
dest.writeLong(dtend);
+ dest.writeLong(calendarID);
}
}