diff --git a/src/chat.rs b/src/chat.rs index 37a4dabae..745739a34 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -958,10 +958,8 @@ impl rusqlite::types::FromSql for ChatVisibility { 2 => Ok(ChatVisibility::Pinned), 1 => Ok(ChatVisibility::Archived), 0 => Ok(ChatVisibility::Normal), - n => { - // unknown archived state, falling back to normal state (was this db opened with a newer deltachat version?) - Err(rusqlite::types::FromSqlError::OutOfRange(n)) - } + // fallback to to Normal for unknown values, may happen eg. on imports created by a newer version. + _ => Ok(ChatVisibility::Normal), } }) } diff --git a/src/chatlist.rs b/src/chatlist.rs index b0f978bb0..0d2967dbf 100644 --- a/src/chatlist.rs +++ b/src/chatlist.rs @@ -199,13 +199,13 @@ impl Chatlist { SELECT MAX(timestamp) FROM msgs WHERE chat_id=c.id - AND (hidden=0 OR state=?)) + AND (hidden=0 OR state=?1)) WHERE c.id>9 AND c.blocked=0 - AND NOT c.archived=1 + AND NOT c.archived=?2 GROUP BY c.id - ORDER BY c.archived=2 DESC, IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;", - params![MessageState::OutDraft], + ORDER BY c.archived=?3 DESC, IFNULL(m.timestamp,c.created_timestamp) DESC, m.id DESC;", + params![MessageState::OutDraft, ChatVisibility::Archived, ChatVisibility::Pinned], process_row, process_rows, )?;