Pass current Account when "touching" a folder
* Prevent cases in which mAccount isn't yet set in RecentFolderList
(this causes "touch" to fail, and notifications to stay up entering
a folder from notifications)
Change-Id: I6c3910218d4f61a5b2845db363941c13f7d9ca0c
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index 719f799..4d57837 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -400,7 +400,7 @@
*/
private void updateRecentFolderList() {
if (mFolder != null) {
- mRecentFolderList.touchFolder(mFolder);
+ mRecentFolderList.touchFolder(mFolder, mAccount);
}
}
diff --git a/src/com/android/mail/ui/RecentFolderList.java b/src/com/android/mail/ui/RecentFolderList.java
index 3e1b996..4f6369d 100644
--- a/src/com/android/mail/ui/RecentFolderList.java
+++ b/src/com/android/mail/ui/RecentFolderList.java
@@ -151,11 +151,15 @@
* be called with a null folder.
* @param folder the folder we touched
*/
- public void touchFolder(Folder folder) {
+ public void touchFolder(Folder folder, Account account) {
// We haven't got a valid account yet, cannot proceed.
- if (mAccount == null) {
- LogUtils.w(TAG, "No account set for setting recent folders?");
- return;
+ if (mAccount == null || !mAccount.equals(account)) {
+ if (account != null) {
+ setCurrentAccount(account);
+ } else {
+ LogUtils.w(TAG, "No account set for setting recent folders?");
+ return;
+ }
}
assert (folder != null);
mFolderCache.putElement(folder.uri.toString(), folder);