package com.zulip.android.networking;
import android.text.TextUtils;
import com.zulip.android.ZulipApp;
import java.util.ArrayList;
/**
* A background task used to notify the server that certain messages have been read.
* This queue {@link ZulipApp#unreadMessageQueue} stores the messages ID's and
* queue is emptied every couple of seconds.
*/
public class AsyncUnreadMessagesUpdate extends ZulipAsyncPushTask {
public AsyncUnreadMessagesUpdate(ZulipApp app) {
super(app);
}
public final void execute() {
ArrayList<Integer> messageIds = new ArrayList<>();
while (true) {
Integer item = app.unreadMessageQueue.poll();
if (item == null) {
break;
} else {
messageIds.add(item);
}
}
if (!messageIds.isEmpty()) {
setProperty("messages", "[" + TextUtils.join(",", messageIds) + "]");
setProperty("flag", "read");
setProperty("op", "add");
execute("POST", "v1/messages/flags");
}
}
}