From 0b807503dba832172976f3d18f2e68d0f38cf951 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 7 Mar 2016 10:40:38 -0600 Subject: [PATCH] Misc calendar cleanup --- .../astrid/gcal/CalendarAlarmReceiver.java | 50 +++++++++---------- .../com/todoroo/astrid/gcal/Calendars.java | 27 ---------- 2 files changed, 25 insertions(+), 52 deletions(-) delete mode 100644 src/main/java/com/todoroo/astrid/gcal/Calendars.java diff --git a/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java b/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java index eaa88c16f..e0b046fc2 100644 --- a/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java +++ b/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; +import com.google.common.base.Predicate; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.utility.Constants; @@ -16,14 +17,13 @@ import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.preferences.Preferences; import org.tasks.scheduling.CalendarNotificationIntentService; -import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import timber.log.Timber; -import static com.google.common.base.Strings.isNullOrEmpty; +import static com.google.common.collect.Iterables.any; public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { @@ -71,6 +71,7 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { if (event == null) { return; } + boolean shouldShowReminder; if (fromPostpone) { long timeAfter = DateUtilities.now() - event.getEnd(); @@ -80,29 +81,28 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { shouldShowReminder = (timeUntil > 0 && timeUntil < DateUtilities.ONE_MINUTE * 20); } - if (shouldShowReminder) { - final List emails = new ArrayList<>(); - List phoneAccounts = accountManager.getAccounts(); - boolean includesMe = false; - for (AndroidCalendarEventAttendee attendee : event.getAttendees()) { - String email = attendee.getEmail(); - if (!isNullOrEmpty(email)) { - if (phoneAccounts.contains(email)) { - includesMe = true; - continue; - } - emails.add(attendee.getEmail()); - } - } - if (emails.size() > 0 && includesMe) { - context.startActivity(new Intent(context, CalendarReminderActivity.class) {{ - putExtra(CalendarReminderActivity.TOKEN_EVENT_ID, eventId); - putExtra(CalendarReminderActivity.TOKEN_EVENT_NAME, event.getTitle()); - putExtra(CalendarReminderActivity.TOKEN_EVENT_END_TIME, event.getEnd()); - putExtra(CalendarReminderActivity.TOKEN_FROM_POSTPONE, fromPostpone); - setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); - }}); - } + if (shouldShowReminder && isMeeting(event)) { + context.startActivity(new Intent(context, CalendarReminderActivity.class) {{ + putExtra(CalendarReminderActivity.TOKEN_EVENT_ID, eventId); + putExtra(CalendarReminderActivity.TOKEN_EVENT_NAME, event.getTitle()); + putExtra(CalendarReminderActivity.TOKEN_EVENT_END_TIME, event.getEnd()); + putExtra(CalendarReminderActivity.TOKEN_FROM_POSTPONE, fromPostpone); + setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + }}); } } + + private boolean isMeeting(AndroidCalendarEvent event) { + List attendees = event.getAttendees(); + if (attendees.size() < 2) { + return false; + } + final List myAccounts = accountManager.getAccounts(); + return any(attendees, new Predicate() { + @Override + public boolean apply(AndroidCalendarEventAttendee attendee) { + return myAccounts.contains(attendee.getEmail()); + } + }); + } } diff --git a/src/main/java/com/todoroo/astrid/gcal/Calendars.java b/src/main/java/com/todoroo/astrid/gcal/Calendars.java deleted file mode 100644 index 0d45c9342..000000000 --- a/src/main/java/com/todoroo/astrid/gcal/Calendars.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.gcal; - -import android.provider.CalendarContract; - -import javax.inject.Singleton; - -import static android.provider.BaseColumns._ID; - -@Singleton -public class Calendars { - - public static final String[] CALENDARS_PROJECTION = new String[] { - _ID, - CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, - }; - - // Only show calendars that the user can modify. Access level 500 - // corresponds to Calendars.CONTRIBUTOR_ACCESS - public static final String CALENDARS_WHERE = CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL + ">= 500"; - - public static final String CALENDARS_SORT = CalendarContract.Calendars.CALENDAR_DISPLAY_NAME + " ASC"; -}