Merge "Clear selection set when viewing messages on one-pane"
diff --git a/res/menu/conversation_list_menu.xml b/res/menu/conversation_list_menu.xml
index b1f8fcd..aee09d9 100644
--- a/res/menu/conversation_list_menu.xml
+++ b/res/menu/conversation_list_menu.xml
@@ -44,7 +44,7 @@
         android:icon="@drawable/ic_menu_refresh_holo_light"
         android:alphabeticShortcut="@string/trigger_refresh_char" />
 
-    <!-- Always available -->
+    <!-- Available for Folders with SUPPORTS_SETTINGS capability -->
     <item android:id="@+id/folder_options"
         android:title="@string/menu_folder_options"
         android:showAsAction="never" />
diff --git a/src/com/android/mail/ui/ActionBarView.java b/src/com/android/mail/ui/ActionBarView.java
index de33db5..f00a99d 100644
--- a/src/com/android/mail/ui/ActionBarView.java
+++ b/src/com/android/mail/ui/ActionBarView.java
@@ -41,6 +41,7 @@
 import com.android.mail.ConversationListContext;
 import com.android.mail.providers.Account;
 import com.android.mail.providers.UIProvider.AccountCapabilities;
+import com.android.mail.providers.UIProvider.FolderCapabilities;
 import com.android.mail.providers.UIProvider.LastSyncResult;
 import com.android.mail.providers.Folder;
 import com.android.mail.utils.LogUtils;
@@ -68,6 +69,10 @@
      * The account currently being shown
      */
     private Account mAccount;
+    /**
+     * The folder currently being shown
+     */
+    private Folder mFolder;
 
     // TODO(viki): This is a SnippetTextView in the Gmail source code. Resolve.
     private TextView mSubjectView;
@@ -75,6 +80,7 @@
     private MenuItem mHelpItem;
     private MenuItem mSendFeedbackItem;
     private MenuItem mRefreshItem;
+    private MenuItem mFolderSettingsItem;
     private View mRefreshActionView;
     private boolean mRefreshInProgress;
 
@@ -120,6 +126,7 @@
         mHelpItem = menu.findItem(R.id.help_info_menu_item);
         mSendFeedbackItem = menu.findItem(R.id.feedback_menu_item);
         mRefreshItem = menu.findItem(R.id.refresh);
+        mFolderSettingsItem = menu.findItem(R.id.folder_options);
         return true;
     }
 
@@ -200,6 +207,7 @@
         setSelectedPosition(mSpinner.getSpacerPosition());
         mSpinner.setCurrentFolder(folder);
         mSpinner.notifyDataSetChanged();
+        mFolder = folder;
     }
 
     /**
@@ -277,6 +285,10 @@
             mSendFeedbackItem.setVisible(mAccount != null
                     && mAccount.supportsCapability(AccountCapabilities.SEND_FEEDBACK));
         }
+        if (mFolderSettingsItem != null) {
+            mFolderSettingsItem.setVisible(mFolder != null
+                    && mFolder.supportsCapability(FolderCapabilities.SUPPORTS_SETTINGS));
+        }
         switch (mMode) {
             case ViewMode.UNKNOWN:
                 if (mSearch != null) {
diff --git a/src/com/android/mail/ui/AnimatedAdapter.java b/src/com/android/mail/ui/AnimatedAdapter.java
index bce9620..57848e0 100644
--- a/src/com/android/mail/ui/AnimatedAdapter.java
+++ b/src/com/android/mail/ui/AnimatedAdapter.java
@@ -220,6 +220,14 @@
         return super.getView(position, convertView, parent);
     }
 
+    @Override
+    public long getItemId(int position) {
+        if (mShowFooter && position == super.getCount()) {
+            return -1;
+        }
+        return super.getItemId(position);
+    }
+
     /**
      * Get an animating view. This happens when a list item is in the process of being removed
      * from the list (items being deleted).
@@ -253,6 +261,14 @@
         }
     }
 
+    @Override
+    public Object getItem(int position) {
+        if (mShowFooter && position == super.getCount()) {
+            return mFooter;
+        }
+        return super.getItem(position);
+    }
+
     private boolean isPositionAnimating(int position) {
         return mDeletingItems.contains(position)
                 || (mUndo && mLastDeletingItems.contains(position));