Fix unread counting in new conversations w/o read_up_to_item
fixes #1094
This commit is contained in:
parent
4e9957deaf
commit
1378224444
|
@ -33,17 +33,21 @@ public class ChatInteraction : StreamInteractionModule, Object {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int get_num_unread(Conversation conversation) {
|
public int get_num_unread(Conversation conversation) {
|
||||||
ContentItem? read_up_to_item = stream_interactor.get_module(ContentItemStore.IDENTITY).get_item_by_id(conversation, conversation.read_up_to_item);
|
|
||||||
if (read_up_to_item == null) return 0;
|
|
||||||
|
|
||||||
Database db = Dino.Application.get_default().db;
|
Database db = Dino.Application.get_default().db;
|
||||||
|
|
||||||
|
Qlite.QueryBuilder query = db.content_item.select()
|
||||||
|
.with(db.content_item.conversation_id, "=", conversation.id)
|
||||||
|
.with(db.content_item.hide, "=", false);
|
||||||
|
|
||||||
|
ContentItem? read_up_to_item = stream_interactor.get_module(ContentItemStore.IDENTITY).get_item_by_id(conversation, conversation.read_up_to_item);
|
||||||
|
if (read_up_to_item != null) {
|
||||||
string time = read_up_to_item.time.to_unix().to_string();
|
string time = read_up_to_item.time.to_unix().to_string();
|
||||||
string id = read_up_to_item.id.to_string();
|
string id = read_up_to_item.id.to_string();
|
||||||
return (int)db.content_item.select()
|
query.where(@"time > ? OR (time = ? AND id > ?)", { time, time, id });
|
||||||
.where(@"time > ? OR (time = ? AND id > ?)", { time, time, id })
|
}
|
||||||
.with(db.content_item.conversation_id, "=", conversation.id)
|
// If it's a new conversation with read_up_to_item == null, all items are new.
|
||||||
.with(db.content_item.hide, "=", false)
|
|
||||||
.count();
|
return (int) query.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool is_active_focus(Conversation? conversation = null) {
|
public bool is_active_focus(Conversation? conversation = null) {
|
||||||
|
|
Loading…
Reference in a new issue