Guarantee busy update

This commit is contained in:
M66B 2020-04-13 20:41:13 +02:00
parent 6b9b1d6c32
commit 94b6ac26b9
3 changed files with 9 additions and 7 deletions

View File

@ -4801,7 +4801,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
same = false;
log("ui_browsed changed", next.id);
}
if (!Objects.equals(prev.ui_busy, next.ui_busy)) {
if (!Objects.equals(prev.ui_busy, next.ui_busy) ||
!Objects.equals(prev.last_attempt, next.last_attempt)) {
same = false;
log("ui_busy changed " + prev.ui_busy + "/" + next.ui_busy, next.id);
}

View File

@ -559,8 +559,8 @@ public interface DaoMessage {
@Query("UPDATE message SET ui_ignored = :ui_ignored WHERE id = :id")
int setMessageUiIgnored(long id, boolean ui_ignored);
@Query("UPDATE message SET ui_busy = :busy WHERE id = :id")
int setMessageUiBusy(long id, Long busy);
@Query("UPDATE message SET ui_busy = :busy, last_attempt = :now WHERE id = :id")
int setMessageUiBusy(long id, Long busy, long now);
@Query("UPDATE message SET received = :sent, sent = :sent WHERE id = :id")
int setMessageSent(long id, Long sent);

View File

@ -4429,9 +4429,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
ArrayList<MessageTarget> result = args.getParcelableArrayList("result");
DB db = DB.getInstance(context);
long busy = new Date().getTime() + UNDO_TIMEOUT * 2;
long now = new Date().getTime();
long busy = now + UNDO_TIMEOUT * 2;
for (MessageTarget target : result) {
db.message().setMessageUiBusy(target.id, busy);
db.message().setMessageUiBusy(target.id, busy, now);
db.message().setMessageUiHide(target.id, true);
// Prevent new message notification on undo
db.message().setMessageUiIgnored(target.id, true);
@ -4468,7 +4469,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
for (MessageTarget target : result) {
Log.i("Move undo id=" + target.id);
db.message().setMessageUiBusy(target.id, null);
db.message().setMessageUiBusy(target.id, null, new Date().getTime());
db.message().setMessageUiHide(target.id, false);
}
@ -4517,7 +4518,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
continue;
Log.i("Move id=" + id + " target=" + target.folder.name);
db.message().setMessageUiBusy(target.id, null);
db.message().setMessageUiBusy(target.id, null, new Date().getTime());
EntityOperation.queue(context, message, EntityOperation.MOVE, target.folder.id);
}