From bc68825151aefe73c90189ccbc3c3bd1d308ce84 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 17 Oct 2012 10:42:48 -0700 Subject: [PATCH] Don't include event attendees that are any of the accounts that exist on the phone --- .../astrid/gcal/CalendarAlarmListCreator.java | 7 ------- .../astrid/gcal/CalendarAlarmReceiver.java | 17 ++++++++++++++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java index be7ae8bea..d293bcad5 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmListCreator.java @@ -96,13 +96,6 @@ public class CalendarAlarmListCreator extends Activity { } private void initializeUserMap() { - String thisUser = ActFmPreferenceService.thisUser().optString("email"); //$NON-NLS-1$ - if (emails.contains(thisUser)) { - int index = emails.indexOf(thisUser); - emails.remove(index); - names.remove(index); - } - emailsToUsers = new HashMap(); TodorooCursor users = userDao.query(Query.select(User.PROPERTIES).where(User.EMAIL.in(emails.toArray(new String[emails.size()])))); try { diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java index 48636acf7..e519046d2 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java @@ -1,7 +1,11 @@ package com.todoroo.astrid.gcal; import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; +import android.accounts.Account; +import android.accounts.AccountManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; @@ -14,6 +18,7 @@ import android.util.Log; import com.timsu.astrid.R; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.Preferences; +import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.utility.Constants; @SuppressWarnings("nls") @@ -87,7 +92,6 @@ public class CalendarAlarmReceiver extends BroadcastReceiver { shouldShowReminder = (timeUntil > 0 && timeUntil < DateUtilities.ONE_MINUTE * 20); } - if (shouldShowReminder) { // Get attendees Cursor attendees = cr.query(Calendars.getCalendarContentUri(Calendars.CALENDAR_CONTENT_ATTENDEES), @@ -103,10 +107,21 @@ public class CalendarAlarmReceiver extends BroadcastReceiver { ArrayList names = new ArrayList(); ArrayList emails = new ArrayList(); + Account[] accountArray = AccountManager.get(context).getAccounts(); + Set phoneAccounts = new HashSet(); + for (Account a : accountArray) { + phoneAccounts.add(a.name); + } + String astridUser = ActFmPreferenceService.thisUser().optString("email"); + if (!TextUtils.isEmpty(astridUser)) + phoneAccounts.add(astridUser); + for (attendees.moveToFirst(); !attendees.isAfterLast(); attendees.moveToNext()) { String name = attendees.getString(nameIndex); String email = attendees.getString(emailIndex); if (!TextUtils.isEmpty(email)) { + if (phoneAccounts.contains(email)) + continue; if (Constants.DEBUG) Log.w(CalendarAlarmScheduler.TAG, "Attendee: " + name + ", email: " + email); names.add(name);