diff options
| author | Tony Mantler <nicoya@google.com> | 2013-10-04 10:01:13 -0700 |
|---|---|---|
| committer | Tony Mantler <nicoya@google.com> | 2013-10-04 10:21:25 -0700 |
| commit | 840408c41cfc95ffa491aaf11f1c3f4075eae9c9 (patch) | |
| tree | bab0533081c83106bb2f1777b18be4e11ab54aea /emailsync/src | |
| parent | 91508db973c0fad13cb9f7eda5dc7745505a8a91 (diff) | |
| download | android_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.java | 16 |
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; |
