From 69be28ec98a6172e7ce1cb59b2133ce9d1456a2c Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 26 May 2023 18:05:35 -0400 Subject: [PATCH] Making sure the UserReactonsRow in notifications get updated as new events come in. --- README.md | 2 +- .../amethyst/ui/components/ClickableRoute.kt | 10 +++++----- .../amethyst/ui/components/RichTextViewer.kt | 14 +++++++------- .../amethyst/ui/components/UrlPreview.kt | 2 +- .../amethyst/ui/components/UrlPreviewCard.kt | 4 ++-- .../amethyst/ui/note/NoteQuickActionMenu.kt | 8 ++++---- .../amethyst/ui/note/UserReactionsRow.kt | 8 ++++---- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index f5374fa5e..6030feb40 100644 --- a/README.md +++ b/README.md @@ -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] Push Notifications (Zaps and Messages) - [x] Generic Tags (NIP-12) +- [x] Sensitive Content (NIP-36) - [ ] Marketplace (NIP-15) - [ ] Image/Video Capture in the app - [ ] Local Database - [ ] View Individual Reactions (Like, Boost, Zaps, Reports) per Post - [ ] Bookmarks, Pinned Posts, Muted Events (NIP-51) -- [ ] Sensitive Content (NIP-36) - [ ] Relay Pages (NIP-11) - [ ] Proof of Work in the Phone (NIP-13, NIP-20) - [ ] Events with a Subject (NIP-14) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableRoute.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableRoute.kt index 32bb3c997..0da6a33d7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableRoute.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableRoute.kt @@ -73,7 +73,7 @@ private fun DisplayEvent( nip19: Nip19.Return, nav: (String) -> Unit ) { - var noteBase by remember { mutableStateOf(null) } + var noteBase by remember(nip19) { mutableStateOf(null) } LaunchedEffect(key1 = nip19.hex) { withContext(Dispatchers.IO) { @@ -129,7 +129,7 @@ private fun DisplayNote( nip19: Nip19.Return, nav: (String) -> Unit ) { - var noteBase by remember { mutableStateOf(null) } + var noteBase by remember(nip19) { mutableStateOf(null) } LaunchedEffect(key1 = nip19.hex) { withContext(Dispatchers.IO) { @@ -185,7 +185,7 @@ private fun DisplayAddress( nip19: Nip19.Return, nav: (String) -> Unit ) { - var noteBase by remember { mutableStateOf(null) } + var noteBase by remember(nip19) { mutableStateOf(null) } LaunchedEffect(key1 = nip19.hex) { withContext(Dispatchers.IO) { @@ -217,7 +217,7 @@ private fun DisplayUser( nip19: Nip19.Return, nav: (String) -> Unit ) { - var userBase by remember { mutableStateOf(null) } + var userBase by remember(nip19) { mutableStateOf(null) } LaunchedEffect(key1 = nip19.hex) { withContext(Dispatchers.IO) { @@ -227,7 +227,7 @@ private fun DisplayUser( userBase?.let { 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 userTags = remember(userState) { userState?.user?.info?.latestMetadata?.tags } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt index 552c1fd0b..52ad41e47 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt @@ -95,7 +95,7 @@ fun RichTextViewer( accountViewModel: AccountViewModel, nav: (String) -> Unit ) { - val isMarkdown = remember { isMarkdown(content) } + val isMarkdown = remember(content) { isMarkdown(content) } Column(modifier = modifier) { if (isMarkdown) { @@ -124,7 +124,7 @@ private fun RenderRegular( accountViewModel: AccountViewModel, nav: (String) -> Unit ) { - var state by remember { + var state by remember(content) { mutableStateOf(RichTextViewerState(content, emptySet(), emptyMap(), emptyList(), emptyMap())) } @@ -344,9 +344,9 @@ private fun RenderContentAsMarkdown(content: String, backgroundColor: Color, tag ) ) - var markdownWithSpecialContent by remember { mutableStateOf(null) } - var nip19References by remember { mutableStateOf>(emptyList()) } - var refresh by remember { mutableStateOf(0) } + var markdownWithSpecialContent by remember(content) { mutableStateOf(null) } + var nip19References by remember(content) { mutableStateOf>(emptyList()) } + var refresh by remember(content) { mutableStateOf(0) } LaunchedEffect(key1 = content) { withContext(Dispatchers.IO) { @@ -365,8 +365,8 @@ private fun RenderContentAsMarkdown(content: String, backgroundColor: Color, tag } nip19References.forEach { - var baseUser by remember { mutableStateOf(null) } - var baseNote by remember { mutableStateOf(null) } + var baseUser by remember(it) { mutableStateOf(null) } + var baseNote by remember(it) { mutableStateOf(null) } LaunchedEffect(key1 = it.hex) { withContext(Dispatchers.IO) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt index a1d8e97ca..30bdb93fe 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt @@ -21,7 +21,7 @@ import kotlinx.coroutines.launch fun UrlPreview(url: String, urlText: String) { val context = LocalContext.current - var urlPreviewState by remember { + var urlPreviewState by remember(url) { val default = UrlCachedPreviewer.cache[url]?.let { if (it.allFetchComplete() && it.url == url) { UrlPreviewState.Loaded(it) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt index ef5673f21..54046bde9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt @@ -42,10 +42,10 @@ fun UrlPreviewCard( ) ) { Column { - val validatedUrl = remember { URL(previewInfo.url) } + val validatedUrl = remember(url) { URL(previewInfo.url) } // correctly treating relative images - val imageUrl = remember { + val imageUrl = remember(url) { if (previewInfo.image.startsWith("/")) { URL(validatedUrl, previewInfo.image).toString() } else { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt index 73c75812c..2c9ab94bb 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt @@ -116,10 +116,10 @@ fun NoteQuickActionMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Uni val cardShape = RoundedCornerShape(5.dp) val clipboardManager = LocalClipboardManager.current val scope = rememberCoroutineScope() - var showSelectTextDialog by remember { mutableStateOf(false) } - var showDeleteAlertDialog by remember { mutableStateOf(false) } - var showBlockAlertDialog by remember { mutableStateOf(false) } - var showReportDialog by remember { mutableStateOf(false) } + var showSelectTextDialog by remember(note) { mutableStateOf(false) } + var showDeleteAlertDialog by remember(note) { mutableStateOf(false) } + var showBlockAlertDialog by remember(note) { mutableStateOf(false) } + var showReportDialog by remember(note) { mutableStateOf(false) } val backgroundColor = if (MaterialTheme.colors.isLight) { MaterialTheme.colors.primary diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt index ad06c950e..26cebaa48 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt @@ -280,7 +280,7 @@ class UserReactionsViewModel : ViewModel() { fun UserReplyReaction( replyCount: Int? ) { - val showCounts = remember { showCount(replyCount) } + val showCounts = remember(replyCount) { showCount(replyCount) } Icon( painter = painterResource(R.drawable.ic_comment), @@ -302,7 +302,7 @@ fun UserReplyReaction( fun UserBoostReaction( boostCount: Int? ) { - val showCounts = remember { showCount(boostCount) } + val showCounts = remember(boostCount) { showCount(boostCount) } Icon( painter = painterResource(R.drawable.ic_retweeted), @@ -324,7 +324,7 @@ fun UserBoostReaction( fun UserLikeReaction( likeCount: Int? ) { - val showCounts = remember { showCount(likeCount) } + val showCounts = remember(likeCount) { showCount(likeCount) } Icon( painter = painterResource(R.drawable.ic_liked), @@ -346,7 +346,7 @@ fun UserLikeReaction( fun UserZapReaction( amount: BigDecimal? ) { - val showAmounts = remember { showAmountAxis(amount) } + val showAmounts = remember(amount) { showAmountAxis(amount) } Icon( imageVector = Icons.Default.Bolt,