Loading src/com/fsck/k9/activity/MessageList.java +36 −1 Original line number Diff line number Diff line Loading @@ -25,8 +25,10 @@ import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.util.Log; import android.util.TypedValue; import android.view.GestureDetector; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; Loading Loading @@ -58,6 +60,8 @@ import com.fsck.k9.K9; import com.fsck.k9.Preferences; import com.fsck.k9.R; import com.fsck.k9.SearchSpecification; import com.fsck.k9.activity.misc.SwipeGestureDetector; import com.fsck.k9.activity.misc.SwipeGestureDetector.OnSwipeGestureListener; import com.fsck.k9.activity.setup.AccountSettings; import com.fsck.k9.activity.setup.FolderSettings; import com.fsck.k9.activity.setup.Prefs; Loading @@ -82,7 +86,8 @@ import com.handmark.pulltorefresh.library.PullToRefreshListView; * shows a list of messages. * From this Activity the user can perform all standard message operations. */ public class MessageList extends K9ListActivity implements OnItemClickListener { public class MessageList extends K9ListActivity implements OnItemClickListener, OnSwipeGestureListener { /** * Reverses the result of a {@link Comparator}. Loading Loading @@ -675,6 +680,9 @@ public class MessageList extends K9ListActivity implements OnItemClickListener { initializeMessageList(getIntent(), true); mListView.setVerticalFadingEdgeEnabled(false); // Enable gesture detection for MessageLists mGestureDetector = new GestureDetector(new SwipeGestureDetector(this, this)); // Enable context action bar behaviour mListView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override Loading Loading @@ -1517,6 +1525,33 @@ public class MessageList extends K9ListActivity implements OnItemClickListener { return true; } @Override public void onSwipeRightToLeft(final MotionEvent e1, final MotionEvent e2) { // Handle right-to-left as an un-select handleSwipe(e1, false); } @Override public void onSwipeLeftToRight(final MotionEvent e1, final MotionEvent e2) { // Handle left-to-right as a select. handleSwipe(e1, true); } /** * Handle a select or unselect swipe event * @param downMotion Event that started the swipe * @param selected true if this was an attempt to select (i.e. left to right). */ private void handleSwipe(final MotionEvent downMotion, final boolean selected) { int[] listPosition = new int[2]; mListView.getLocationOnScreen(listPosition); int position = mListView.pointToPosition((int) downMotion.getRawX() - listPosition[0], (int) downMotion.getRawY() - listPosition[1]); if (position != AdapterView.INVALID_POSITION) { final MessageInfoHolder message = (MessageInfoHolder) mListView.getItemAtPosition(position); toggleMessageSelect(message); } } class MessageListAdapter extends BaseAdapter { private final List<MessageInfoHolder> mMessages = Collections.synchronizedList(new ArrayList<MessageInfoHolder>()); Loading Loading
src/com/fsck/k9/activity/MessageList.java +36 −1 Original line number Diff line number Diff line Loading @@ -25,8 +25,10 @@ import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.util.Log; import android.util.TypedValue; import android.view.GestureDetector; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; Loading Loading @@ -58,6 +60,8 @@ import com.fsck.k9.K9; import com.fsck.k9.Preferences; import com.fsck.k9.R; import com.fsck.k9.SearchSpecification; import com.fsck.k9.activity.misc.SwipeGestureDetector; import com.fsck.k9.activity.misc.SwipeGestureDetector.OnSwipeGestureListener; import com.fsck.k9.activity.setup.AccountSettings; import com.fsck.k9.activity.setup.FolderSettings; import com.fsck.k9.activity.setup.Prefs; Loading @@ -82,7 +86,8 @@ import com.handmark.pulltorefresh.library.PullToRefreshListView; * shows a list of messages. * From this Activity the user can perform all standard message operations. */ public class MessageList extends K9ListActivity implements OnItemClickListener { public class MessageList extends K9ListActivity implements OnItemClickListener, OnSwipeGestureListener { /** * Reverses the result of a {@link Comparator}. Loading Loading @@ -675,6 +680,9 @@ public class MessageList extends K9ListActivity implements OnItemClickListener { initializeMessageList(getIntent(), true); mListView.setVerticalFadingEdgeEnabled(false); // Enable gesture detection for MessageLists mGestureDetector = new GestureDetector(new SwipeGestureDetector(this, this)); // Enable context action bar behaviour mListView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override Loading Loading @@ -1517,6 +1525,33 @@ public class MessageList extends K9ListActivity implements OnItemClickListener { return true; } @Override public void onSwipeRightToLeft(final MotionEvent e1, final MotionEvent e2) { // Handle right-to-left as an un-select handleSwipe(e1, false); } @Override public void onSwipeLeftToRight(final MotionEvent e1, final MotionEvent e2) { // Handle left-to-right as a select. handleSwipe(e1, true); } /** * Handle a select or unselect swipe event * @param downMotion Event that started the swipe * @param selected true if this was an attempt to select (i.e. left to right). */ private void handleSwipe(final MotionEvent downMotion, final boolean selected) { int[] listPosition = new int[2]; mListView.getLocationOnScreen(listPosition); int position = mListView.pointToPosition((int) downMotion.getRawX() - listPosition[0], (int) downMotion.getRawY() - listPosition[1]); if (position != AdapterView.INVALID_POSITION) { final MessageInfoHolder message = (MessageInfoHolder) mListView.getItemAtPosition(position); toggleMessageSelect(message); } } class MessageListAdapter extends BaseAdapter { private final List<MessageInfoHolder> mMessages = Collections.synchronizedList(new ArrayList<MessageInfoHolder>()); Loading