|
|
|
@ -88,6 +88,8 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
private long primary = -1;
|
|
|
|
|
private boolean connected = false;
|
|
|
|
|
private AdapterMessage adapter;
|
|
|
|
|
private List<Long> archives = new ArrayList<>();
|
|
|
|
|
private List<Long> trashes = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
private AdapterMessage.ViewType viewType;
|
|
|
|
|
private LiveData<PagedList<TupleMessageEx>> messages = null;
|
|
|
|
@ -242,7 +244,13 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
EntityFolder.OUTBOX.equals(message.folderType))
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
return makeMovementFlags(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT);
|
|
|
|
|
int flags = 0;
|
|
|
|
|
if (archives.contains(message.account))
|
|
|
|
|
flags |= ItemTouchHelper.RIGHT;
|
|
|
|
|
if (trashes.contains(message.account))
|
|
|
|
|
flags |= ItemTouchHelper.LEFT;
|
|
|
|
|
|
|
|
|
|
return makeMovementFlags(0, flags);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -583,8 +591,25 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Messages
|
|
|
|
|
loadMessages();
|
|
|
|
|
// Folders and messages
|
|
|
|
|
db.folder().liveSystemFolders(account).observe(getViewLifecycleOwner(), new Observer<List<EntityFolder>>() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onChanged(List<EntityFolder> folders) {
|
|
|
|
|
if (folders == null)
|
|
|
|
|
folders = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
archives.clear();
|
|
|
|
|
trashes.clear();
|
|
|
|
|
|
|
|
|
|
for (EntityFolder folder : folders)
|
|
|
|
|
if (EntityFolder.ARCHIVE.equals(folder.type))
|
|
|
|
|
archives.add(folder.account);
|
|
|
|
|
else if (EntityFolder.TRASH.equals(folder.type))
|
|
|
|
|
trashes.add(folder.account);
|
|
|
|
|
|
|
|
|
|
loadMessages();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (viewType == AdapterMessage.ViewType.THREAD) {
|
|
|
|
|
// Navigation
|
|
|
|
|