Undo selection on hiding message

This commit is contained in:
M66B 2019-04-21 07:53:58 +02:00
parent 8678c62f57
commit 8810639c64
2 changed files with 22 additions and 0 deletions

View File

@ -147,6 +147,12 @@ public interface DaoMessage {
", CASE WHEN folder.type = '" + EntityFolder.ARCHIVE + "' THEN 1 ELSE 0 END")
DataSource.Factory<Integer, TupleMessageEx> pagedThread(long account, String thread, Long id, boolean debug);
@Query("SELECT message.id FROM folder" +
" JOIN message ON message.folder = folder.id" +
" WHERE CASE WHEN :folder IS NULL THEN folder.unified ELSE folder.id = :folder END" +
" AND ui_hide")
LiveData<List<Long>> liveHidden(Long folder);
@Query("SELECT id FROM message" +
" WHERE account = :account" +
" AND thread = :thread" +

View File

@ -1754,6 +1754,14 @@ public class FragmentMessages extends FragmentBase {
swipeRefresh.setRefreshing(refreshing);
}
});
db.message().liveHidden(null).observe(getViewLifecycleOwner(), new Observer<List<Long>>() {
@Override
public void onChanged(List<Long> ids) {
if (ids != null && selectionTracker != null)
for (long id : ids)
selectionTracker.deselect(id);
}
});
break;
case FOLDER:
@ -1793,6 +1801,14 @@ public class FragmentMessages extends FragmentBase {
swipeRefresh.setRefreshing(refreshing);
}
});
db.message().liveHidden(folder).observe(getViewLifecycleOwner(), new Observer<List<Long>>() {
@Override
public void onChanged(List<Long> ids) {
if (ids != null && selectionTracker != null)
for (long id : ids)
selectionTracker.deselect(id);
}
});
break;
case THREAD: