mirror of https://github.com/tasks/tasks
Started working on the calendar growth project
parent
183235ef79
commit
c943fd1f12
@ -0,0 +1,77 @@
|
||||
package com.todoroo.astrid.gcal;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.provider.CalendarContract;
|
||||
|
||||
import com.todoroo.andlib.utility.AndroidUtilities;
|
||||
import com.todoroo.andlib.utility.DateUtilities;
|
||||
|
||||
@SuppressWarnings("nls")
|
||||
public class CalendarAlarmReciever extends BroadcastReceiver {
|
||||
|
||||
public static final String TOKEN_EVENT_ID = "eventId";
|
||||
|
||||
private static final String ID_COLUMN_NAME = "_id";
|
||||
private static final boolean USE_ICS_NAMES = AndroidUtilities.getSdkVersion() >= 14;
|
||||
private static final String EVENT_START_COLUMN_NAME = (USE_ICS_NAMES ? CalendarContract.Events.DTSTART : "dtstart");
|
||||
|
||||
private static final String[] EVENTS_PROJECTION = {
|
||||
EVENT_START_COLUMN_NAME,
|
||||
};
|
||||
|
||||
private static final String ATTENDEES_EVENT_ID_COL = (USE_ICS_NAMES ? CalendarContract.Attendees.EVENT_ID : "event_id");
|
||||
private static final String ATTENDEES_NAME_COL = (USE_ICS_NAMES ? CalendarContract.Attendees.ATTENDEE_NAME : "attendeeName");
|
||||
private static final String ATTENDEES_EMAIL_COL = (USE_ICS_NAMES ? CalendarContract.Attendees.ATTENDEE_EMAIL: "attendeeEmail");
|
||||
|
||||
private static final String[] ATTENDEES_PROJECTION = {
|
||||
ATTENDEES_NAME_COL,
|
||||
ATTENDEES_EMAIL_COL,
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
try {
|
||||
ContentResolver cr = context.getContentResolver();
|
||||
long eventId = intent.getLongExtra(TOKEN_EVENT_ID, -1);
|
||||
if (eventId > 0) {
|
||||
Uri eventUri = Calendars.getCalendarContentUri(Calendars.CALENDAR_CONTENT_EVENTS);
|
||||
|
||||
String[] eventArg = new String[] { Long.toString(eventId) };
|
||||
Cursor event = cr.query(eventUri,
|
||||
EVENTS_PROJECTION,
|
||||
ID_COLUMN_NAME + " = ?",
|
||||
eventArg,
|
||||
null);
|
||||
try {
|
||||
int timeIndex = event.getColumnIndexOrThrow(EVENT_START_COLUMN_NAME);
|
||||
long startTime = event.getLong(timeIndex);
|
||||
long timeUntil = startTime - DateUtilities.now();
|
||||
|
||||
if (timeUntil > 0 && timeUntil < DateUtilities.ONE_MINUTE * 20) {
|
||||
// Get attendees
|
||||
Cursor attendees = cr.query(Calendars.getCalendarContentUri(Calendars.CALENDAR_CONTENT_ATTENDEES),
|
||||
ATTENDEES_PROJECTION,
|
||||
ATTENDEES_EVENT_ID_COL + " = ? ",
|
||||
eventArg,
|
||||
null);
|
||||
try {
|
||||
// Do something with attendees
|
||||
} finally {
|
||||
attendees.close();
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
event.close();
|
||||
}
|
||||
}
|
||||
} catch (IllegalArgumentException e) { // Some cursor read failed
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue