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));