Making sure the UserReactonsRow in notifications get updated as new events come in.

This commit is contained in:
Vitor Pamplona 2023-05-26 18:05:35 -04:00
parent a8ffbb922d
commit 69be28ec98
7 changed files with 24 additions and 24 deletions

View File

@ -60,12 +60,12 @@ Or get the latest APK from the [Releases Section](https://github.com/vitorpamplo
- [x] Audio Tracks (zapstr.live) (NIP-TBD) - [x] Audio Tracks (zapstr.live) (NIP-TBD)
- [x] Push Notifications (Zaps and Messages) - [x] Push Notifications (Zaps and Messages)
- [x] Generic Tags (NIP-12) - [x] Generic Tags (NIP-12)
- [x] Sensitive Content (NIP-36)
- [ ] Marketplace (NIP-15) - [ ] Marketplace (NIP-15)
- [ ] Image/Video Capture in the app - [ ] Image/Video Capture in the app
- [ ] Local Database - [ ] Local Database
- [ ] View Individual Reactions (Like, Boost, Zaps, Reports) per Post - [ ] View Individual Reactions (Like, Boost, Zaps, Reports) per Post
- [ ] Bookmarks, Pinned Posts, Muted Events (NIP-51) - [ ] Bookmarks, Pinned Posts, Muted Events (NIP-51)
- [ ] Sensitive Content (NIP-36)
- [ ] Relay Pages (NIP-11) - [ ] Relay Pages (NIP-11)
- [ ] Proof of Work in the Phone (NIP-13, NIP-20) - [ ] Proof of Work in the Phone (NIP-13, NIP-20)
- [ ] Events with a Subject (NIP-14) - [ ] Events with a Subject (NIP-14)

View File

@ -73,7 +73,7 @@ private fun DisplayEvent(
nip19: Nip19.Return, nip19: Nip19.Return,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
var noteBase by remember { mutableStateOf<Note?>(null) } var noteBase by remember(nip19) { mutableStateOf<Note?>(null) }
LaunchedEffect(key1 = nip19.hex) { LaunchedEffect(key1 = nip19.hex) {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
@ -129,7 +129,7 @@ private fun DisplayNote(
nip19: Nip19.Return, nip19: Nip19.Return,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
var noteBase by remember { mutableStateOf<Note?>(null) } var noteBase by remember(nip19) { mutableStateOf<Note?>(null) }
LaunchedEffect(key1 = nip19.hex) { LaunchedEffect(key1 = nip19.hex) {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
@ -185,7 +185,7 @@ private fun DisplayAddress(
nip19: Nip19.Return, nip19: Nip19.Return,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
var noteBase by remember { mutableStateOf<Note?>(null) } var noteBase by remember(nip19) { mutableStateOf<Note?>(null) }
LaunchedEffect(key1 = nip19.hex) { LaunchedEffect(key1 = nip19.hex) {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
@ -217,7 +217,7 @@ private fun DisplayUser(
nip19: Nip19.Return, nip19: Nip19.Return,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
var userBase by remember { mutableStateOf<User?>(null) } var userBase by remember(nip19) { mutableStateOf<User?>(null) }
LaunchedEffect(key1 = nip19.hex) { LaunchedEffect(key1 = nip19.hex) {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
@ -227,7 +227,7 @@ private fun DisplayUser(
userBase?.let { userBase?.let {
val userState by it.live().metadata.observeAsState() val userState by it.live().metadata.observeAsState()
val route = remember { "User/${it.pubkeyHex}" } val route = remember(userState) { "User/${it.pubkeyHex}" }
val userDisplayName = remember(userState) { userState?.user?.toBestDisplayName() } val userDisplayName = remember(userState) { userState?.user?.toBestDisplayName() }
val userTags = remember(userState) { userState?.user?.info?.latestMetadata?.tags } val userTags = remember(userState) { userState?.user?.info?.latestMetadata?.tags }

View File

@ -95,7 +95,7 @@ fun RichTextViewer(
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
val isMarkdown = remember { isMarkdown(content) } val isMarkdown = remember(content) { isMarkdown(content) }
Column(modifier = modifier) { Column(modifier = modifier) {
if (isMarkdown) { if (isMarkdown) {
@ -124,7 +124,7 @@ private fun RenderRegular(
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
nav: (String) -> Unit nav: (String) -> Unit
) { ) {
var state by remember { var state by remember(content) {
mutableStateOf(RichTextViewerState(content, emptySet(), emptyMap(), emptyList(), emptyMap())) mutableStateOf(RichTextViewerState(content, emptySet(), emptyMap(), emptyList(), emptyMap()))
} }
@ -344,9 +344,9 @@ private fun RenderContentAsMarkdown(content: String, backgroundColor: Color, tag
) )
) )
var markdownWithSpecialContent by remember { mutableStateOf<String?>(null) } var markdownWithSpecialContent by remember(content) { mutableStateOf<String?>(null) }
var nip19References by remember { mutableStateOf<List<Nip19.Return>>(emptyList()) } var nip19References by remember(content) { mutableStateOf<List<Nip19.Return>>(emptyList()) }
var refresh by remember { mutableStateOf(0) } var refresh by remember(content) { mutableStateOf(0) }
LaunchedEffect(key1 = content) { LaunchedEffect(key1 = content) {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
@ -365,8 +365,8 @@ private fun RenderContentAsMarkdown(content: String, backgroundColor: Color, tag
} }
nip19References.forEach { nip19References.forEach {
var baseUser by remember { mutableStateOf<User?>(null) } var baseUser by remember(it) { mutableStateOf<User?>(null) }
var baseNote by remember { mutableStateOf<Note?>(null) } var baseNote by remember(it) { mutableStateOf<Note?>(null) }
LaunchedEffect(key1 = it.hex) { LaunchedEffect(key1 = it.hex) {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {

View File

@ -21,7 +21,7 @@ import kotlinx.coroutines.launch
fun UrlPreview(url: String, urlText: String) { fun UrlPreview(url: String, urlText: String) {
val context = LocalContext.current val context = LocalContext.current
var urlPreviewState by remember { var urlPreviewState by remember(url) {
val default = UrlCachedPreviewer.cache[url]?.let { val default = UrlCachedPreviewer.cache[url]?.let {
if (it.allFetchComplete() && it.url == url) { if (it.allFetchComplete() && it.url == url) {
UrlPreviewState.Loaded(it) UrlPreviewState.Loaded(it)

View File

@ -42,10 +42,10 @@ fun UrlPreviewCard(
) )
) { ) {
Column { Column {
val validatedUrl = remember { URL(previewInfo.url) } val validatedUrl = remember(url) { URL(previewInfo.url) }
// correctly treating relative images // correctly treating relative images
val imageUrl = remember { val imageUrl = remember(url) {
if (previewInfo.image.startsWith("/")) { if (previewInfo.image.startsWith("/")) {
URL(validatedUrl, previewInfo.image).toString() URL(validatedUrl, previewInfo.image).toString()
} else { } else {

View File

@ -116,10 +116,10 @@ fun NoteQuickActionMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Uni
val cardShape = RoundedCornerShape(5.dp) val cardShape = RoundedCornerShape(5.dp)
val clipboardManager = LocalClipboardManager.current val clipboardManager = LocalClipboardManager.current
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
var showSelectTextDialog by remember { mutableStateOf(false) } var showSelectTextDialog by remember(note) { mutableStateOf(false) }
var showDeleteAlertDialog by remember { mutableStateOf(false) } var showDeleteAlertDialog by remember(note) { mutableStateOf(false) }
var showBlockAlertDialog by remember { mutableStateOf(false) } var showBlockAlertDialog by remember(note) { mutableStateOf(false) }
var showReportDialog by remember { mutableStateOf(false) } var showReportDialog by remember(note) { mutableStateOf(false) }
val backgroundColor = if (MaterialTheme.colors.isLight) { val backgroundColor = if (MaterialTheme.colors.isLight) {
MaterialTheme.colors.primary MaterialTheme.colors.primary

View File

@ -280,7 +280,7 @@ class UserReactionsViewModel : ViewModel() {
fun UserReplyReaction( fun UserReplyReaction(
replyCount: Int? replyCount: Int?
) { ) {
val showCounts = remember { showCount(replyCount) } val showCounts = remember(replyCount) { showCount(replyCount) }
Icon( Icon(
painter = painterResource(R.drawable.ic_comment), painter = painterResource(R.drawable.ic_comment),
@ -302,7 +302,7 @@ fun UserReplyReaction(
fun UserBoostReaction( fun UserBoostReaction(
boostCount: Int? boostCount: Int?
) { ) {
val showCounts = remember { showCount(boostCount) } val showCounts = remember(boostCount) { showCount(boostCount) }
Icon( Icon(
painter = painterResource(R.drawable.ic_retweeted), painter = painterResource(R.drawable.ic_retweeted),
@ -324,7 +324,7 @@ fun UserBoostReaction(
fun UserLikeReaction( fun UserLikeReaction(
likeCount: Int? likeCount: Int?
) { ) {
val showCounts = remember { showCount(likeCount) } val showCounts = remember(likeCount) { showCount(likeCount) }
Icon( Icon(
painter = painterResource(R.drawable.ic_liked), painter = painterResource(R.drawable.ic_liked),
@ -346,7 +346,7 @@ fun UserLikeReaction(
fun UserZapReaction( fun UserZapReaction(
amount: BigDecimal? amount: BigDecimal?
) { ) {
val showAmounts = remember { showAmountAxis(amount) } val showAmounts = remember(amount) { showAmountAxis(amount) }
Icon( Icon(
imageVector = Icons.Default.Bolt, imageVector = Icons.Default.Bolt,