Allow badge to update in toolbar when user changes their featured badge.

This commit is contained in:
Alex Hart
2025-05-28 16:26:39 -03:00
parent e912bf3bc8
commit 1bd638be46

View File

@@ -67,6 +67,10 @@ import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.rx3.asFlow
import org.signal.core.ui.compose.DropdownMenus
import org.signal.core.ui.compose.IconButtons
import org.signal.core.ui.compose.Previews
@@ -75,6 +79,7 @@ import org.signal.core.ui.compose.TextFields
import org.signal.core.ui.compose.Tooltips
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.avatar.AvatarImage
import org.thoughtcrime.securesms.badges.models.Badge
import org.thoughtcrime.securesms.calls.log.CallLogFilter
import org.thoughtcrime.securesms.components.settings.app.subscription.BadgeImageSmall
import org.thoughtcrime.securesms.conversationlist.model.ConversationFilter
@@ -348,8 +353,19 @@ private fun PrimaryToolbar(
}
)
var badge by remember { mutableStateOf<Badge?>(null) }
LaunchedEffect(state.self.id) {
Recipient.observable(state.self.id)
.asFlow()
.map { it.featuredBadge }
.distinctUntilChanged()
.collectLatest {
badge = it
}
}
BadgeImageSmall(
badge = state.self.featuredBadge,
badge = badge,
modifier = Modifier
.padding(start = 14.dp, top = 16.dp)
.size(16.dp)