mirror of
https://github.com/chatmail/core.git
synced 2026-04-26 09:56:35 +03:00
feat: use key fingerprints for color generation
This way contact colors stays the same even if the address changes later.
This commit is contained in:
@@ -1797,7 +1797,8 @@ impl Chat {
|
|||||||
|
|
||||||
/// Returns chat avatar color.
|
/// Returns chat avatar color.
|
||||||
///
|
///
|
||||||
/// For 1:1 chats, the color is calculated from the contact's address.
|
/// For 1:1 chats, the color is calculated from the contact's address
|
||||||
|
/// for address-contacts and from the OpenPGP key fingerprint for key-contacts.
|
||||||
/// For group chats the color is calculated from the grpid, if present, or the chat name.
|
/// For group chats the color is calculated from the grpid, if present, or the chat name.
|
||||||
pub async fn get_color(&self, context: &Context) -> Result<u32> {
|
pub async fn get_color(&self, context: &Context) -> Result<u32> {
|
||||||
let mut color = 0;
|
let mut color = 0;
|
||||||
|
|||||||
@@ -1575,11 +1575,16 @@ impl Contact {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Get a color for the contact.
|
/// Get a color for the contact.
|
||||||
/// The color is calculated from the contact's email address
|
/// The color is calculated from the contact's fingerprint (for key-contacts)
|
||||||
/// and can be used for an fallback avatar with white initials
|
/// or email address (for address-contacts) and can be used
|
||||||
|
/// for an fallback avatar with white initials
|
||||||
/// as well as for headlines in bubbles of group chats.
|
/// as well as for headlines in bubbles of group chats.
|
||||||
pub fn get_color(&self) -> u32 {
|
pub fn get_color(&self) -> u32 {
|
||||||
str_to_color(&self.addr.to_lowercase())
|
if let Some(fingerprint) = self.fingerprint() {
|
||||||
|
str_to_color(&fingerprint.hex())
|
||||||
|
} else {
|
||||||
|
str_to_color(&self.addr.to_lowercase())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the contact's status.
|
/// Gets the contact's status.
|
||||||
|
|||||||
Reference in New Issue
Block a user