mirror of https://github.com/M66B/FairEmail.git
Automatically add local sent messages to remote folder
This commit is contained in:
parent
bce17afbbd
commit
b472b65bf5
|
@ -261,6 +261,12 @@ public interface DaoMessage {
|
||||||
" AND NOT ui_browsed")
|
" AND NOT ui_browsed")
|
||||||
List<Long> getUids(long folder, Long received);
|
List<Long> getUids(long folder, Long received);
|
||||||
|
|
||||||
|
@Query("SELECT * FROM message" +
|
||||||
|
" WHERE folder = :folder" +
|
||||||
|
" AND uid IS NULL" +
|
||||||
|
" AND ui_browsed")
|
||||||
|
List<EntityMessage> getSentOrphans(long folder);
|
||||||
|
|
||||||
@Query("SELECT * FROM message WHERE NOT ui_snoozed IS NULL")
|
@Query("SELECT * FROM message WHERE NOT ui_snoozed IS NULL")
|
||||||
List<EntityMessage> getSnoozed();
|
List<EntityMessage> getSnoozed();
|
||||||
|
|
||||||
|
@ -294,6 +300,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_browsed = :ui_browsed WHERE id = :id")
|
||||||
|
int setMessageUiBrowsed(long id, boolean ui_browsed);
|
||||||
|
|
||||||
@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);
|
||||||
|
|
||||||
|
|
|
@ -257,7 +257,7 @@ public class EntityMessage implements Serializable {
|
||||||
this.ui_hide.equals(other.ui_hide) &&
|
this.ui_hide.equals(other.ui_hide) &&
|
||||||
this.ui_found.equals(other.ui_found) &&
|
this.ui_found.equals(other.ui_found) &&
|
||||||
this.ui_ignored.equals(other.ui_ignored) &&
|
this.ui_ignored.equals(other.ui_ignored) &&
|
||||||
//this.ui_browsed.equals(other.ui_browsed) &&
|
this.ui_browsed.equals(other.ui_browsed) &&
|
||||||
(this.ui_snoozed == null ? other.ui_snoozed == null : this.ui_snoozed.equals(other.ui_snoozed)) &&
|
(this.ui_snoozed == null ? other.ui_snoozed == null : this.ui_snoozed.equals(other.ui_snoozed)) &&
|
||||||
(this.warning == null ? other.warning == null : this.warning.equals(other.warning)) &&
|
(this.warning == null ? other.warning == null : this.warning.equals(other.warning)) &&
|
||||||
(this.error == null ? other.error == null : this.error.equals(other.error)));
|
(this.error == null ? other.error == null : this.error.equals(other.error)));
|
||||||
|
|
|
@ -2303,6 +2303,17 @@ public class ServiceSynchronize extends LifecycleService {
|
||||||
// Delete not synchronized messages without uid
|
// Delete not synchronized messages without uid
|
||||||
db.message().deleteOrphans(folder.id);
|
db.message().deleteOrphans(folder.id);
|
||||||
|
|
||||||
|
// Add local sent messages to remote sent folder
|
||||||
|
if (EntityFolder.SENT.equals(folder.type)) {
|
||||||
|
List<EntityMessage> orphans = db.message().getSentOrphans(folder.id);
|
||||||
|
Log.i(folder.name + " sent orphans=" + orphans.size());
|
||||||
|
for (EntityMessage orphan : orphans) {
|
||||||
|
Log.i(folder.name + " adding orphan id=" + orphan.id);
|
||||||
|
EntityOperation.queue(this, db, orphan, EntityOperation.ADD);
|
||||||
|
db.message().setMessageUiBrowsed(orphan.id, false); // Prevent adding again
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (download) {
|
if (download) {
|
||||||
db.folder().setFolderSyncState(folder.id, "downloading");
|
db.folder().setFolderSyncState(folder.id, "downloading");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue