package com.darwinsys.calendar;
import java.util.Calendar;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.CalendarContract;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
public class AddUsingContentProvider implements EventAdder {
CalendarContract contract;
final static String[] CALENDAR_QUERY_COLUMNS = {
CalendarContract.Calendars._ID,
CalendarContract.Calendars.NAME,
CalendarContract.Calendars.VISIBLE,
CalendarContract.Calendars.OWNER_ACCOUNT
};
@Override
public void addEvent(Context ctx, String title, Calendar start, Calendar end) {
Log.d(MainActivity.TAG, "AddUsingContentProvider.addEvent()");
TextView calendarList = (TextView) ((Activity) ctx).findViewById(R.id.calendarList);
// Get list of Calendars (after Jim Blackler, http://jimblackler.net/blog/?p=151)
ContentResolver contentResolver = ctx.getContentResolver();
Log.d(MainActivity.TAG, "URI = " + CalendarContract.Calendars.CONTENT_URI);
final Cursor cursor = contentResolver.query(CalendarContract.Calendars.CONTENT_URI,
CALENDAR_QUERY_COLUMNS, null, null, null);
Log.d(MainActivity.TAG, "cursor = " + cursor);
while (cursor.moveToNext()) {
final String _id = cursor.getString(0);
final String displayName = cursor.getString(1);
final Boolean selected = !cursor.getString(2).equals("0");
final String accountName = cursor.getString(3);
Log.d(MainActivity.TAG, "Found calendar " + accountName);
calendarList.append(
"Calendar: Id: " + _id + " Display Name: " + displayName + " Selected: " + selected + " Name " + accountName);
}
ContentValues calEvent = new ContentValues();
calEvent.put(CalendarContract.Events.CALENDAR_ID, 1); // XXX pick)
calEvent.put(CalendarContract.Events.TITLE, title);
calEvent.put(CalendarContract.Events.DTSTART, start.getTimeInMillis());
calEvent.put(CalendarContract.Events.DTEND, end.getTimeInMillis());
calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, "Canada/Eastern");
Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, calEvent);
// The returned Uri contains the content-retriever URI for the newly-inserted event, including its id
int id = Integer.parseInt(uri.getLastPathSegment());
Toast.makeText(ctx, "Created Calendar Event " + id, Toast.LENGTH_SHORT).show();
}
}