Disable swipe refresh when swiping to archive.

Fixes b/12570813.

Change-Id: Ifa5f427f83e038ed3f5402c85e9416a1512ee691
diff --git a/src/com/android/mail/ui/ConversationListFragment.java b/src/com/android/mail/ui/ConversationListFragment.java
index e00fa3d..e55701d 100644
--- a/src/com/android/mail/ui/ConversationListFragment.java
+++ b/src/com/android/mail/ui/ConversationListFragment.java
@@ -32,7 +32,6 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.ViewGroup.MarginLayoutParams;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemLongClickListener;
 import android.widget.ListView;
@@ -60,6 +59,7 @@
 import com.android.mail.providers.UIProvider.Swipe;
 import com.android.mail.ui.SwipeableListView.ListItemSwipedListener;
 import com.android.mail.ui.SwipeableListView.ListItemsRemovedListener;
+import com.android.mail.ui.SwipeableListView.SwipeListener;
 import com.android.mail.ui.ViewMode.ModeChangeListener;
 import com.android.mail.utils.LogTag;
 import com.android.mail.utils.LogUtils;
@@ -73,7 +73,8 @@
  * The conversation list UI component.
  */
 public final class ConversationListFragment extends ListFragment implements
-        OnItemLongClickListener, ModeChangeListener, ListItemSwipedListener, OnRefreshListener {
+        OnItemLongClickListener, ModeChangeListener, ListItemSwipedListener, OnRefreshListener,
+        SwipeListener {
     /** Key used to pass data to {@link ConversationListFragment}. */
     private static final String CONVERSATION_LIST_KEY = "conversation-list";
     /** Key used to keep track of the scroll state of the list. */
@@ -165,6 +166,16 @@
         super();
     }
 
+    @Override
+    public void onBeginSwipe() {
+        mSwipeRefreshWidget.setEnabled(false);
+    }
+
+    @Override
+    public void onEndSwipe() {
+        mSwipeRefreshWidget.setEnabled(true);
+    }
+
     private class ConversationCursorObserver extends DataSetObserver {
         @Override
         public void onChanged() {
@@ -420,7 +431,8 @@
         mListView.setHeaderDividersEnabled(false);
         mListView.setOnItemLongClickListener(this);
         mListView.enableSwipe(mAccount.supportsCapability(AccountCapabilities.UNDO));
-        mListView.setSwipedListener(this);
+        mListView.setListItemSwipedListener(this);
+        mListView.setSwipeListener(this);
 
         if (savedState != null && savedState.containsKey(LIST_STATE_KEY)) {
             mListView.onRestoreInstanceState(savedState.getParcelable(LIST_STATE_KEY));
@@ -436,7 +448,6 @@
 
     /**
      * Sets the choice mode of the list view
-     * @param choiceMode ListView#
      */
     private final void setChoiceMode(int choiceMode) {
         mListView.setChoiceMode(choiceMode);
diff --git a/src/com/android/mail/ui/SwipeableListView.java b/src/com/android/mail/ui/SwipeableListView.java
index 2c0ca14..8e03b93 100644
--- a/src/com/android/mail/ui/SwipeableListView.java
+++ b/src/com/android/mail/ui/SwipeableListView.java
@@ -23,16 +23,15 @@
 import android.graphics.Rect;
 import android.net.Uri;
 import android.util.AttributeSet;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewConfiguration;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
 import android.widget.ListView;
 
 import com.android.mail.R;
 import com.android.mail.analytics.Analytics;
-import com.android.mail.analytics.AnalyticsUtils;
 import com.android.mail.browse.ConversationCursor;
 import com.android.mail.browse.ConversationItemView;
 import com.android.mail.browse.SwipeableConversationItemView;
@@ -139,7 +138,7 @@
         mSwipeAction = action;
     }
 
-    public void setSwipedListener(ListItemSwipedListener listener) {
+    public void setListItemSwipedListener(ListItemSwipedListener listener) {
         mSwipedListener = listener;
     }
 
@@ -226,6 +225,11 @@
     }
 
     public void dismissChild(final ConversationItemView target) {
+        // Notifies the SwipeListener that a swipe has ended.
+        if (mSwipeListener != null) {
+            mSwipeListener.onEndSwipe();
+        }
+
         final ToastBarOperation undoOp;
 
         undoOp = new ToastBarOperation(1, mSwipeAction, ToastBarOperation.UNDO, false /* batch */,
@@ -286,9 +290,7 @@
         requestDisallowInterceptTouchEvent(true);
         cancelDismissCounter();
 
-        // Notifies {@link ConversationListView} to disable pull to refresh since once
-        // an item in the list view has been picked up, we don't want any vertical movement
-        // to also trigger refresh.
+        // Notifies the SwipeListener that a swipe has begun.
         if (mSwipeListener != null) {
             mSwipeListener.onBeginSwipe();
         }
@@ -301,6 +303,11 @@
             adapter.startDismissCounter();
             adapter.cancelFadeOutLastLeaveBehindItemText();
         }
+
+        // Notifies the SwipeListener that a swipe has ended.
+        if (mSwipeListener != null) {
+            mSwipeListener.onEndSwipe();
+        }
     }
 
     /**
@@ -449,5 +456,6 @@
 
     public interface SwipeListener {
         public void onBeginSwipe();
+        public void onEndSwipe();
     }
 }