show pinned chats again and order them to the top

This commit is contained in:
Simon Laux
2020-02-08 21:16:40 +01:00
committed by B. Petersen
parent 5678562ce2
commit 1765b8f2cf
4 changed files with 10 additions and 14 deletions

View File

@@ -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;

View File

@@ -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)")
}
}, },
)?; )?;
} }

View File

@@ -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,

View File

@@ -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,