[list] Sort notifications by latest first
This commit is contained in:
@ -174,7 +174,18 @@ impl Subscription {
|
||||
fn handle_event(&self, ev: ListenerEvent) {
|
||||
match ev {
|
||||
ListenerEvent::Message(msg) => {
|
||||
self.imp().messages.append(&glib::BoxedAnyObject::new(msg));
|
||||
let time = msg.time;
|
||||
let messages = &self.imp().messages;
|
||||
let pos = (0..messages.n_items())
|
||||
.find(|&i| {
|
||||
messages
|
||||
.item(i)
|
||||
.and_then(|item| item.downcast::<glib::BoxedAnyObject>().ok())
|
||||
.map(|b| b.borrow::<models::ReceivedMessage>().time > time)
|
||||
.unwrap_or(false)
|
||||
})
|
||||
.unwrap_or(messages.n_items() as u32);
|
||||
messages.insert(pos, &glib::BoxedAnyObject::new(msg));
|
||||
self.update_unread_count();
|
||||
}
|
||||
ListenerEvent::ConnectionStateChanged(connection_state) => {
|
||||
|
||||
Reference in New Issue
Block a user