|
|
|
@ -1313,10 +1313,41 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|
|
|
|
|
|
|
|
|
Log.i("Swiped dir=" + direction + " message=" + message.id);
|
|
|
|
|
|
|
|
|
|
Long action = (direction == ItemTouchHelper.LEFT ? swipes.swipe_left : swipes.swipe_right);
|
|
|
|
|
if (FragmentAccount.SWIPE_ACTION_SEEN.equals(action))
|
|
|
|
|
Long target = (direction == ItemTouchHelper.LEFT ? swipes.swipe_left : swipes.swipe_right);
|
|
|
|
|
if (FragmentAccount.SWIPE_ACTION_SEEN.equals(target))
|
|
|
|
|
onActionSeenSelection(!message.ui_seen, message.id);
|
|
|
|
|
else if (FragmentAccount.SWIPE_ACTION_ASK.equals(action)) {
|
|
|
|
|
else if (FragmentAccount.SWIPE_ACTION_ASK.equals(target))
|
|
|
|
|
swipeAsk(message, viewHolder);
|
|
|
|
|
else
|
|
|
|
|
swipeFolder(message, target);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private TupleMessageEx getMessage(@NonNull RecyclerView.ViewHolder viewHolder) {
|
|
|
|
|
if (selectionTracker != null && selectionTracker.hasSelection())
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
int pos = viewHolder.getAdapterPosition();
|
|
|
|
|
if (pos == RecyclerView.NO_POSITION)
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
PagedList<TupleMessageEx> list = ((AdapterMessage) rvMessage.getAdapter()).getCurrentList();
|
|
|
|
|
if (pos >= list.size())
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
TupleMessageEx message = list.get(pos);
|
|
|
|
|
if (message == null || message.uid == null)
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
if (iProperties.getValue("expanded", message.id))
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
if (EntityFolder.OUTBOX.equals(message.folderType))
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
return message;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void swipeAsk(final @NonNull TupleMessageEx message, @NonNull RecyclerView.ViewHolder viewHolder) {
|
|
|
|
|
adapter.notifyItemChanged(viewHolder.getAdapterPosition());
|
|
|
|
|
|
|
|
|
|
PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(getContext(), getViewLifecycleOwner(), viewHolder.itemView);
|
|
|
|
@ -1398,12 +1429,13 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
popupMenu.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
private void swipeFolder(@NonNull TupleMessageEx message, @NonNull Long target) {
|
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
|
args.putLong("id", message.id);
|
|
|
|
|
args.putBoolean("thread", viewType != AdapterMessage.ViewType.THREAD);
|
|
|
|
|
args.putLong("target", action);
|
|
|
|
|
args.putLong("target", target);
|
|
|
|
|
|
|
|
|
|
new SimpleTask<ArrayList<MessageTarget>>() {
|
|
|
|
|
@Override
|
|
|
|
@ -1458,32 +1490,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|
|
|
|
}
|
|
|
|
|
}.execute(FragmentMessages.this, args, "messages:swipe");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private TupleMessageEx getMessage(RecyclerView.ViewHolder viewHolder) {
|
|
|
|
|
if (selectionTracker != null && selectionTracker.hasSelection())
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
int pos = viewHolder.getAdapterPosition();
|
|
|
|
|
if (pos == RecyclerView.NO_POSITION)
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
PagedList<TupleMessageEx> list = ((AdapterMessage) rvMessage.getAdapter()).getCurrentList();
|
|
|
|
|
if (pos >= list.size())
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
TupleMessageEx message = list.get(pos);
|
|
|
|
|
if (message == null || message.uid == null)
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
if (iProperties.getValue("expanded", message.id))
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
if (EntityFolder.OUTBOX.equals(message.folderType))
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
return message;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
private void onMore() {
|
|
|
|
|