am ee7c63da: Merge "Inconsistent state after emptying trash" into ub-gmail-ur12-dev

* commit 'ee7c63da505ccee3e391cf1baa2f64b7db78aaa9':
  Inconsistent state after emptying trash
diff --git a/src/com/android/mail/ui/ConversationListFragment.java b/src/com/android/mail/ui/ConversationListFragment.java
index ccb9c95..cd89c1d 100644
--- a/src/com/android/mail/ui/ConversationListFragment.java
+++ b/src/com/android/mail/ui/ConversationListFragment.java
@@ -163,6 +163,9 @@
     }
 
     private void showEmptyView() {
+        mEmptyView.setupEmptyView(
+                mFolder, mViewContext.searchQuery, mListAdapter.getBidiFormatter());
+        mListView.setEmptyView(mEmptyView);
         mListView.setVisibility(View.GONE);
         mEmptyView.setVisibility(View.VISIBLE);
         mLoadingView.setVisibility(View.GONE);
@@ -912,8 +915,12 @@
     }
 
     private void hideLoadingViewAndShowContents() {
-        showListView();
         final ConversationCursor cursor = getConversationListCursor();
+        if (cursor != null && cursor.getCount() == 0) {
+            showEmptyView();
+        } else {
+            showListView();
+        }
         final boolean showFooter = mFooterView.updateStatus(cursor);
         // Update the folder status, in case the cursor could affect it.
         onFolderStatusUpdated();
@@ -940,9 +947,6 @@
                 || cursorStatus == UIProvider.CursorStatus.COMPLETE) || folderCount > 0) {
             updateSearchResultHeader(folderCount);
             if (folderCount == 0) {
-                mEmptyView.setupEmptyView(
-                        mFolder, mViewContext.searchQuery, mListAdapter.getBidiFormatter());
-                mListView.setEmptyView(mEmptyView);
                 showEmptyView();
             }
         }
diff --git a/src/com/android/mail/ui/MailActionBarView.java b/src/com/android/mail/ui/MailActionBarView.java
index b83316c..7703bd1 100644
--- a/src/com/android/mail/ui/MailActionBarView.java
+++ b/src/com/android/mail/ui/MailActionBarView.java
@@ -379,12 +379,16 @@
         if (mEmptyTrashItem != null) {
             mEmptyTrashItem.setVisible(mAccount != null && mFolder != null
                     && mAccount.supportsCapability(AccountCapabilities.EMPTY_TRASH)
-                    && mFolder.isTrash() && mFolder.totalCount > 0);
+                    && mFolder.isTrash() && mFolder.totalCount > 0
+                    && (mController.getConversationListCursor() == null
+                    || mController.getConversationListCursor().getCount() > 0));
         }
         if (mEmptySpamItem != null) {
             mEmptySpamItem.setVisible(mAccount != null && mFolder != null
                     && mAccount.supportsCapability(AccountCapabilities.EMPTY_SPAM)
-                    && mFolder.isType(FolderType.SPAM) && mFolder.totalCount > 0);
+                    && mFolder.isType(FolderType.SPAM) && mFolder.totalCount > 0
+                    && (mController.getConversationListCursor() == null
+                    || mController.getConversationListCursor().getCount() > 0));
         }
     }