Refactoring

pull/214/head
M66B 10 months ago
parent 811dda9b17
commit eb4806ad64

@ -33,16 +33,18 @@ import androidx.preference.PreferenceManager;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import javax.mail.Address;
import javax.mail.internet.InternetAddress;
import biweekly.ICalVersion;
import biweekly.ICalendar;
import biweekly.component.ICalComponent;
import biweekly.component.Observance;
import biweekly.component.StandardTime;
import biweekly.component.VAlarm;
import biweekly.component.VEvent;
import biweekly.io.TimezoneAssignment;
@ -450,4 +452,32 @@ public class CalendarHelper {
}
}
}
static int getReplyStatus(Context context, VEvent event, EntityMessage message) {
List<Address> recipients = new ArrayList<>();
if (message.to != null)
recipients.addAll(Arrays.asList(message.to));
if (message.cc != null)
recipients.addAll(Arrays.asList(message.cc));
if (message.bcc != null)
recipients.addAll(Arrays.asList(message.bcc));
List<Attendee> attendees = event.getAttendees();
if (attendees != null)
for (Attendee attendee : attendees) {
String email = attendee.getEmail();
for (Address address : recipients) {
String recipient = ((InternetAddress) address).getAddress();
if (!TextUtils.isEmpty(email) && email.equalsIgnoreCase(recipient)) {
ParticipationStatus pstatus = attendee.getParticipationStatus();
if (ParticipationStatus.ACCEPTED.equals(pstatus))
return CalendarContract.Events.STATUS_CONFIRMED;
else if (ParticipationStatus.DECLINED.equals(pstatus))
return CalendarContract.Events.STATUS_CANCELED;
}
}
}
return CalendarContract.Events.STATUS_TENTATIVE;
}
}

@ -158,8 +158,6 @@ import javax.mail.internet.ParseException;
import biweekly.Biweekly;
import biweekly.ICalendar;
import biweekly.component.VEvent;
import biweekly.parameter.ParticipationStatus;
import biweekly.property.Attendee;
import biweekly.property.Method;
import ezvcard.VCard;
import ezvcard.VCardVersion;
@ -4454,35 +4452,8 @@ public class MessageHelper {
CalendarHelper.delete(context, event, message);
else if (method == null || method.isRequest() || method.isReply()) {
int status = CalendarContract.Events.STATUS_TENTATIVE;
if (method != null && method.isReply()) {
List<Address> recipients = new ArrayList<>();
if (message.to != null)
recipients.addAll(Arrays.asList(message.to));
if (message.cc != null)
recipients.addAll(Arrays.asList(message.cc));
if (message.bcc != null)
recipients.addAll(Arrays.asList(message.bcc));
List<Attendee> attendees = event.getAttendees();
if (attendees != null)
for (Attendee attendee : attendees) {
String email = attendee.getEmail();
for (Address address : recipients) {
String recipient = ((InternetAddress) address).getAddress();
if (!TextUtils.isEmpty(email) && email.equalsIgnoreCase(recipient)) {
ParticipationStatus pstatus = attendee.getParticipationStatus();
if (ParticipationStatus.ACCEPTED.equals(pstatus)) {
status = CalendarContract.Events.STATUS_CONFIRMED;
break;
} else if (ParticipationStatus.DECLINED.equals(pstatus)) {
status = CalendarContract.Events.STATUS_CANCELED;
break;
}
}
}
if (status != CalendarContract.Events.STATUS_TENTATIVE)
break;
}
}
if (method != null && method.isReply())
status = CalendarHelper.getReplyStatus(context, event, message);
if (status == CalendarContract.Events.STATUS_CANCELED) {
CalendarHelper.delete(context, event, message);

Loading…
Cancel
Save