mirror of
https://github.com/chatmail/core.git
synced 2026-05-06 16:36:59 +03:00
show pinned chats again and order them to the top
This commit is contained in:
@@ -25,9 +25,7 @@ use std::time::{Duration, SystemTime};
|
|||||||
use libc::uintptr_t;
|
use libc::uintptr_t;
|
||||||
use num_traits::{FromPrimitive, ToPrimitive};
|
use num_traits::{FromPrimitive, ToPrimitive};
|
||||||
|
|
||||||
use deltachat::chat::ArchiveState;
|
use deltachat::chat::{ArchiveState, ChatId, MuteDuration};
|
||||||
use deltachat::chat::ChatId;
|
|
||||||
use deltachat::chat::MuteDuration;
|
|
||||||
use deltachat::constants::DC_MSG_ID_LAST_SPECIAL;
|
use deltachat::constants::DC_MSG_ID_LAST_SPECIAL;
|
||||||
use deltachat::contact::Contact;
|
use deltachat::contact::Contact;
|
||||||
use deltachat::context::Context;
|
use deltachat::context::Context;
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ pub fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::Error> {
|
|||||||
match chat.get_id().get_archive_state(context) {
|
match chat.get_id().get_archive_state(context) {
|
||||||
ArchiveState::Normal => "",
|
ArchiveState::Normal => "",
|
||||||
ArchiveState::Archived => "📦",
|
ArchiveState::Archived => "📦",
|
||||||
ArchiveState::Pinned => "📌"
|
ArchiveState::Pinned => "📌",
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
let lot = chatlist.get_summary(context, i, Some(&chat));
|
let lot = chatlist.get_summary(context, i, Some(&chat));
|
||||||
@@ -859,9 +859,7 @@ pub fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::Error> {
|
|||||||
"archive" => ArchiveState::Archived,
|
"archive" => ArchiveState::Archived,
|
||||||
"unarchive" | "unpin" => ArchiveState::Normal,
|
"unarchive" | "unpin" => ArchiveState::Normal,
|
||||||
"pin" => ArchiveState::Pinned,
|
"pin" => ArchiveState::Pinned,
|
||||||
_ => {
|
_ => panic!("Unexpected command (This should never happen)"),
|
||||||
panic!("Unexpected command (This should never happen)")
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
|||||||
10
src/chat.rs
10
src/chat.rs
@@ -148,17 +148,17 @@ impl ChatId {
|
|||||||
self
|
self
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut send_event = false;
|
let send_event = if new_archive_state == ArchiveState::Archived {
|
||||||
|
|
||||||
if new_archive_state == ArchiveState::Archived {
|
|
||||||
sql::execute(
|
sql::execute(
|
||||||
context,
|
context,
|
||||||
&context.sql,
|
&context.sql,
|
||||||
"UPDATE msgs SET state=? WHERE chat_id=? AND state=?;",
|
"UPDATE msgs SET state=? WHERE chat_id=? AND state=?;",
|
||||||
params![MessageState::InNoticed, self, MessageState::InFresh],
|
params![MessageState::InNoticed, self, MessageState::InFresh],
|
||||||
)?;
|
)?;
|
||||||
send_event = true;
|
true
|
||||||
}
|
} else {
|
||||||
|
false
|
||||||
|
};
|
||||||
|
|
||||||
sql::execute(
|
sql::execute(
|
||||||
context,
|
context,
|
||||||
|
|||||||
@@ -202,9 +202,9 @@ impl Chatlist {
|
|||||||
AND (hidden=0 OR state=?))
|
AND (hidden=0 OR state=?))
|
||||||
WHERE c.id>9
|
WHERE c.id>9
|
||||||
AND c.blocked=0
|
AND c.blocked=0
|
||||||
AND c.archived=0
|
AND NOT c.archived=1
|
||||||
GROUP BY c.id
|
GROUP BY c.id
|
||||||
ORDER BY IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;",
|
ORDER BY c.archived=2 DESC, IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;",
|
||||||
params![MessageState::OutDraft],
|
params![MessageState::OutDraft],
|
||||||
process_row,
|
process_row,
|
||||||
process_rows,
|
process_rows,
|
||||||
|
|||||||
Reference in New Issue
Block a user