summaryrefslogtreecommitdiffstats
path: root/emailsync/src
diff options
context:
space:
mode:
authorTony Mantler <nicoya@google.com>2013-10-04 10:01:13 -0700
committerTony Mantler <nicoya@google.com>2013-10-04 10:21:25 -0700
commit840408c41cfc95ffa491aaf11f1c3f4075eae9c9 (patch)
treebab0533081c83106bb2f1777b18be4e11ab54aea /emailsync/src
parent91508db973c0fad13cb9f7eda5dc7745505a8a91 (diff)
downloadandroid_packages_apps_Email-840408c41cfc95ffa491aaf11f1c3f4075eae9c9.tar.gz
android_packages_apps_Email-840408c41cfc95ffa491aaf11f1c3f4075eae9c9.tar.bz2
android_packages_apps_Email-840408c41cfc95ffa491aaf11f1c3f4075eae9c9.zip
Remove mAmAccount from the email provider account object
b/11070468 Change-Id: I51bad4be41800e4cd6dae42744005ade784cdf82
Diffstat (limited to 'emailsync/src')
-rw-r--r--emailsync/src/com/android/emailsync/SyncManager.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/emailsync/src/com/android/emailsync/SyncManager.java b/emailsync/src/com/android/emailsync/SyncManager.java
index 1dda35afe..18503fd54 100644
--- a/emailsync/src/com/android/emailsync/SyncManager.java
+++ b/emailsync/src/com/android/emailsync/SyncManager.java
@@ -75,6 +75,7 @@ import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.WeakHashMap;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -292,15 +293,21 @@ public abstract class SyncManager extends Service implements Runnable {
public class AccountList extends ArrayList<Account> {
private static final long serialVersionUID = 1L;
+ private final WeakHashMap<Account, android.accounts.Account> mAmMap =
+ new WeakHashMap<Account, android.accounts.Account>();
+
@Override
public boolean add(Account account) {
// Cache the account manager account
- account.mAmAccount = new android.accounts.Account(
- account.mEmailAddress, getAccountManagerType());
+ mAmMap.put(account, account.getAccountManagerAccount(getAccountManagerType()));
super.add(account);
return true;
}
+ public android.accounts.Account getAmAccount(Account account) {
+ return mAmMap.get(account);
+ }
+
public boolean contains(long id) {
for (Account account : this) {
if (account.mId == id) {
@@ -1766,7 +1773,8 @@ public abstract class SyncManager extends Service implements Runnable {
}
}
// See if "sync automatically" is set; if not, punt
- if (!ContentResolver.getSyncAutomatically(account.mAmAccount, authority)) {
+ if (!ContentResolver.getSyncAutomatically(mAccountList.getAmAccount(account),
+ authority)) {
return false;
// See if the calendar is enabled from the Calendar app UI; if not, punt
} else if ((type == Mailbox.TYPE_CALENDAR) && !isCalendarEnabled(account.mId)) {
@@ -1778,7 +1786,7 @@ public abstract class SyncManager extends Service implements Runnable {
// For non-outbox, non-account mail, we do two checks:
// 1) are we restricted by policy (i.e. manual sync only),
// 2) has the user checked the "Sync Email" box in Account Settings, and
- } else if (!canAutoSync(account) || !canSyncEmail(account.mAmAccount)) {
+ } else if (!canAutoSync(account) || !canSyncEmail(mAccountList.getAmAccount(account))) {
return false;
}
return true;