Private
Public Access
1
0

Some fixups for the badge

This commit is contained in:
2025-04-28 18:40:16 -07:00
parent a1250c8ebe
commit 101694ddbc
2 changed files with 13 additions and 14 deletions

View File

@@ -2,7 +2,7 @@ using Adw;
using Gtk; using Gtk;
public class ConversationRow : Adw.ActionRow { public class ConversationRow : Adw.ActionRow {
private Label? unread_badge; private Label unread_badge;
public ConversationRow(Conversation conversation) { public ConversationRow(Conversation conversation) {
Object(); Object();
@@ -11,12 +11,15 @@ public class ConversationRow : Adw.ActionRow {
subtitle = conversation.last_message_preview; subtitle = conversation.last_message_preview;
subtitle_lines = 1; subtitle_lines = 1;
// Add unread badge if needed
if (conversation.is_unread && conversation.unread_count > 0) {
unread_badge = new Label(conversation.unread_count.to_string()); unread_badge = new Label(conversation.unread_count.to_string());
unread_badge.add_css_class("badge"); unread_badge.add_css_class("badge");
unread_badge.add_css_class("accent"); unread_badge.add_css_class("accent");
add_suffix(unread_badge); add_prefix(unread_badge);
if (conversation.is_unread) {
unread_badge.opacity = 1.0;
} else {
unread_badge.opacity = 0.0;
} }
// Add timestamp if available // Add timestamp if available

View File

@@ -3,11 +3,12 @@ using GLib;
public class Conversation : Object { public class Conversation : Object {
public string id { get; set; default = ""; } public string id { get; set; default = ""; }
public string last_message_preview { get; set; default = ""; } public string last_message_preview { get; set; default = ""; }
public bool is_unread { get; set; default = false; }
public int64 date { get; set; default = 0; } public int64 date { get; set; default = 0; }
public string[] participants { get; set; default = new string[0]; } public string[] participants { get; set; default = new string[0]; }
public int unread_count { get; set; default = 0; } public int unread_count { get; set; default = 0; }
public bool is_unread { get { return unread_count > 0; } }
public string display_name { public string display_name {
owned get { owned get {
if (_display_name != null && _display_name.length > 0) { if (_display_name != null && _display_name.length > 0) {
@@ -54,11 +55,6 @@ public class Conversation : Object {
last_message_preview = last_message_variant.get_string(); last_message_preview = last_message_variant.get_string();
} }
Variant? is_unread_variant = dict.lookup_value("is_unread", VariantType.BOOLEAN);
if (is_unread_variant != null) {
is_unread = is_unread_variant.get_boolean();
}
Variant? date_variant = dict.lookup_value("date", VariantType.INT64); Variant? date_variant = dict.lookup_value("date", VariantType.INT64);
if (date_variant != null) { if (date_variant != null) {
date = date_variant.get_int64(); date = date_variant.get_int64();