I want to update the calendar event.
I know how to update the title, location, add a new member using ContentResolver
But I have no idea how to remove some members, for example, by email.
This is what I still have, I parse JSONObjectand extract all the new information:
public void updateEvent(Context context, long eventId, JSONObject updateObj) {
ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();
Uri updateUri = null;
long startDate = updateObj.optLong("startDate");
long endDate = updateObj.optLong("endDate");
String title = updateObj.optString("title");
String description = updateObj.optString("description");
String location = updateObj.optString("location");
int eventStatus = updateObj.optInt("eventStatus");
JSONArray addAtt = updateObj.optJSONArray("add_attendee");
JSONArray deleteAtt = updateObj.optJSONArray("delete_attendee");
values.put(Events.EVENT_LOCATION, location);
values.put(Events.DESCRIPTION, title);
values.put(Events.TITLE, title);
values.put(Events.DTSTART, startDate);
values.put(Events.DTEND, endDate);
values.put(Events.STATUS, eventStatus);
updateUri = ContentUris.withAppendedId(Events.CONTENT_URI, eventId);
int rows = cr.update(updateUri, values, null, null);
Log.i(TAG, "Rows updated: " + rows);
for(int i=0; i<addAtt.length(); i++){
JSONObject attObj = addAtt.optJSONObject(i);
String name = attObj.optString("name");
String email = attObj.optString("email");
int relationship = attObj.optInt("relationship");
int type = attObj.optInt("type");
int status = attObj.optInt("status");
values = new ContentValues();
values.put(Attendees.ATTENDEE_NAME, name);
values.put(Attendees.ATTENDEE_EMAIL, email);
values.put(Attendees.ATTENDEE_RELATIONSHIP, relationship);
values.put(Attendees.ATTENDEE_TYPE, type);
values.put(Attendees.ATTENDEE_STATUS, status);
values.put(Attendees.EVENT_ID, eventId);
updateUri = ContentUris.withAppendedId(Attendees.CONTENT_URI, eventId);
cr.update(updateUri, values, null, null);
}
for(int i=0; i<removeAtt.length(); i++){
JSONObject attObj = addAtt.optJSONObject(i);
}
}
[EDIT]
I also tried:
String selection = Attendees.ATTENDEE_EMAIL + " = ?";
String[] selectionArgs = new String[] {"burkaApostol@gmail.com"};
Uri deleteUri = ContentUris.withAppendedId(Events.CONTENT_URI, eventId);
rows = cr.delete(deleteUri, selection, selectionArgs);
get error:
java.lang.IllegalArgumentException: Selection not permitted for content:
Please, help,