Make batch archive conversations fly out to the right before shrinking.

Change-Id: I0a62d837acf0e41ad6fe012a87dbde29e0cf2f17
diff --git a/src/com/android/mail/browse/SelectedConversationsActionMenu.java b/src/com/android/mail/browse/SelectedConversationsActionMenu.java
index 0db79d0..1c6f42a 100644
--- a/src/com/android/mail/browse/SelectedConversationsActionMenu.java
+++ b/src/com/android/mail/browse/SelectedConversationsActionMenu.java
@@ -32,6 +32,7 @@
 import com.android.mail.ui.FoldersSelectionDialog;
 import com.android.mail.ui.RestrictedActivity;
 import com.android.mail.ui.FoldersSelectionDialog.FolderChangeCommitListener;
+import com.android.mail.ui.SwipeableListView;
 import com.android.mail.ui.UndoBarView.UndoListener;
 import com.android.mail.ui.UndoOperation;
 import com.android.mail.utils.LogUtils;
@@ -107,10 +108,12 @@
     private final ActionCompleteListener mSpamListener =
             new DestructiveActionListener(R.id.report_spam);
 
+    private SwipeableListView mListView;
+
     public SelectedConversationsActionMenu(RestrictedActivity activity,
             ConversationSelectionSet selectionSet, AnimatedAdapter adapter,
             ActionCompleteListener listener, UndoListener undoListener, Account account,
-            Folder folder) {
+            Folder folder, SwipeableListView list) {
         mSelectionSet = selectionSet;
         mActivity = activity;
         mContext = mActivity.getActivityContext();
@@ -119,6 +122,7 @@
         mUndoListener = undoListener;
         mAccount = account;
         mFolder = folder;
+        mListView = list;
     }
 
     @Override
@@ -175,7 +179,7 @@
         mListAdapter.notifyDataSetChanged();
     }
 
-    private void performDestructiveAction(int id, final ActionCompleteListener listener) {
+    private void performDestructiveAction(final int id, final ActionCompleteListener listener) {
         Settings settings = mActivity.getSettings();
         final Collection<Conversation> conversations = mSelectionSet.values();
         boolean showDialog = false;
@@ -190,11 +194,24 @@
                     .setPositiveButton(R.string.ok, new AlertDialog.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog, int which) {
-                            mListAdapter.delete(conversations, listener);
+                            destroy(id, conversations, listener);
                         }
-
                     }).setNegativeButton(R.string.cancel, null).create().show();
         } else {
+            destroy(id, conversations, listener);
+        }
+    }
+
+
+    private void destroy(int id, Collection<Conversation> conversations,
+            ActionCompleteListener listener) {
+        if (id == R.id.archive) {
+            ArrayList<ConversationItemView> views = new ArrayList<ConversationItemView>();
+            for (ConversationItemView view : mSelectionSet.views()) {
+                views.add(view);
+            }
+            mListView.archiveItems(views, listener);
+        } else {
             mListAdapter.delete(conversations, listener);
         }
     }