mirror of https://github.com/M66B/FairEmail.git
Monitor hidden messages
This commit is contained in:
parent
903a57c020
commit
a0038c41da
|
@ -147,6 +147,12 @@ public interface DaoMessage {
|
||||||
", CASE WHEN folder.type = '" + EntityFolder.ARCHIVE + "' THEN 1 ELSE 0 END")
|
", CASE WHEN folder.type = '" + EntityFolder.ARCHIVE + "' THEN 1 ELSE 0 END")
|
||||||
DataSource.Factory<Integer, TupleMessageEx> pagedThread(long account, String thread, Long id, boolean debug);
|
DataSource.Factory<Integer, TupleMessageEx> pagedThread(long account, String thread, Long id, boolean debug);
|
||||||
|
|
||||||
|
@Query("SELECT id FROM message" +
|
||||||
|
" WHERE account = :account" +
|
||||||
|
" AND thread = :thread" +
|
||||||
|
" AND ui_hide")
|
||||||
|
LiveData<List<Long>> liveHidden(long account, String thread);
|
||||||
|
|
||||||
@Query("SELECT COUNT(id)" +
|
@Query("SELECT COUNT(id)" +
|
||||||
" FROM message" +
|
" FROM message" +
|
||||||
" WHERE id = :id")
|
" WHERE id = :id")
|
||||||
|
@ -309,6 +315,9 @@ public interface DaoMessage {
|
||||||
@Query("UPDATE message SET ui_hide = :ui_hide WHERE id = :id")
|
@Query("UPDATE message SET ui_hide = :ui_hide WHERE id = :id")
|
||||||
int setMessageUiHide(long id, boolean ui_hide);
|
int setMessageUiHide(long id, boolean ui_hide);
|
||||||
|
|
||||||
|
@Query("UPDATE message SET ui_hide = :ui_hide WHERE folder = :folder AND uid = :uid")
|
||||||
|
int setMessageUiHide(long folder, long uid, boolean ui_hide);
|
||||||
|
|
||||||
@Query("UPDATE message SET ui_ignored = :ui_ignored WHERE id = :id")
|
@Query("UPDATE message SET ui_ignored = :ui_ignored WHERE id = :id")
|
||||||
int setMessageUiIgnored(long id, boolean ui_ignored);
|
int setMessageUiIgnored(long id, boolean ui_ignored);
|
||||||
|
|
||||||
|
|
|
@ -1798,6 +1798,20 @@ public class FragmentMessages extends FragmentBase {
|
||||||
setSubtitle(getString(R.string.title_folder_thread, account == null ? "" : account.name));
|
setSubtitle(getString(R.string.title_folder_thread, account == null ? "" : account.name));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
db.message().liveHidden(account, thread).observe(getViewLifecycleOwner(), new Observer<List<Long>>() {
|
||||||
|
@Override
|
||||||
|
public void onChanged(List<Long> ids) {
|
||||||
|
if (ids != null)
|
||||||
|
for (long id : ids) {
|
||||||
|
Log.i("Hidden id=" + id);
|
||||||
|
for (String key : values.keySet())
|
||||||
|
values.get(key).remove(id);
|
||||||
|
bodies.remove(id);
|
||||||
|
html.remove(id);
|
||||||
|
attachments.remove(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SEARCH:
|
case SEARCH:
|
||||||
|
|
|
@ -744,7 +744,8 @@ public class ServiceSynchronize extends LifecycleService {
|
||||||
long uid = ifolder.getUID(imessage);
|
long uid = ifolder.getUID(imessage);
|
||||||
|
|
||||||
DB db = DB.getInstance(ServiceSynchronize.this);
|
DB db = DB.getInstance(ServiceSynchronize.this);
|
||||||
int count = db.message().deleteMessage(folder.id, uid);
|
int count = db.message().setMessageUiHide(folder.id, uid, true);
|
||||||
|
// Will be deleted on next sync
|
||||||
|
|
||||||
Log.i(folder.name + " deleted uid=" + uid + " count=" + count);
|
Log.i(folder.name + " deleted uid=" + uid + " count=" + count);
|
||||||
} catch (MessageRemovedException ex) {
|
} catch (MessageRemovedException ex) {
|
||||||
|
|
Loading…
Reference in New Issue