Process event attendee reply status

pull/214/head
M66B 10 months ago
parent 61eba3e652
commit 01d1b1070c

@ -158,8 +158,9 @@ import javax.mail.internet.ParseException;
import biweekly.Biweekly; import biweekly.Biweekly;
import biweekly.ICalendar; import biweekly.ICalendar;
import biweekly.component.VEvent; import biweekly.component.VEvent;
import biweekly.parameter.ParticipationStatus;
import biweekly.property.Attendee;
import biweekly.property.Method; import biweekly.property.Method;
import biweekly.property.Status;
import ezvcard.VCard; import ezvcard.VCard;
import ezvcard.VCardVersion; import ezvcard.VCardVersion;
import ezvcard.io.text.VCardWriter; import ezvcard.io.text.VCardWriter;
@ -4453,12 +4454,27 @@ public class MessageHelper {
else if (method == null || method.isRequest() || method.isReply()) { else if (method == null || method.isRequest() || method.isReply()) {
int status = CalendarContract.Events.STATUS_TENTATIVE; int status = CalendarContract.Events.STATUS_TENTATIVE;
if (method != null && method.isReply()) { if (method != null && method.isReply()) {
Status istatus = event.getStatus(); List<Attendee> attendees = event.getAttendees();
if (istatus != null) if (attendees != null && message.to != null)
if (Status.ACCEPTED.equals(istatus.getValue())) for (Attendee attendee : attendees) {
status = CalendarContract.Events.STATUS_CONFIRMED; String email = attendee.getEmail();
else if (Status.CANCELLED.equals(istatus.getValue())) for (Address to : message.to) {
status = CalendarContract.Events.STATUS_CANCELED; String recipient = ((InternetAddress) to).getAddress();
if (!TextUtils.isEmpty(email) && email.equalsIgnoreCase(recipient)) {
ParticipationStatus pstatus = attendee.getParticipationStatus();
if (ParticipationStatus.ACCEPTED.equals(pstatus))
status = CalendarContract.Events.STATUS_CONFIRMED;
else if (ParticipationStatus.DECLINED.equals(pstatus))
status = CalendarContract.Events.STATUS_CANCELED;
break;
}
}
}
}
if (status == CalendarContract.Events.STATUS_CANCELED) {
CalendarHelper.delete(context, event, message);
return;
} }
if (status == CalendarContract.Events.STATUS_TENTATIVE && !ical_tentative) { if (status == CalendarContract.Events.STATUS_TENTATIVE && !ical_tentative) {

Loading…
Cancel
Save