From 926a721c533a816c9ac062dff67fbd536d2f385c Mon Sep 17 00:00:00 2001
From: Believethehype <1097224+believethehype@users.noreply.github.com>
Date: Thu, 16 May 2024 15:02:44 +0200
Subject: [PATCH 1/5] cleanup, potential fix endless loop
---
.../loggedIn/NIP90ContentDiscoveryScreen.kt | 40 ++++++-------------
1 file changed, 13 insertions(+), 27 deletions(-)
diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
index d2b42e677..f2f5a4f7f 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
@@ -40,7 +40,6 @@ import com.vitorpamplona.amethyst.ui.screen.NostrNIP90StatusFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.RefresheableBox
import com.vitorpamplona.amethyst.ui.screen.RenderFeedState
import com.vitorpamplona.amethyst.ui.screen.SaveableFeedState
-import com.vitorpamplona.quartz.events.AppDefinitionEvent
import com.vitorpamplona.quartz.events.NIP90ContentDiscoveryRequestEvent
@Composable
@@ -90,7 +89,7 @@ fun NIP90ContentDiscoveryScreen(
@Composable
@OptIn(ExperimentalFoundationApi::class)
fun RenderNostrNIP90ContentDiscoveryScreen(
- DVMID: String?,
+ dvmID: String?,
accountViewModel: AccountViewModel,
nav: (String) -> Unit,
resultFeedViewModel: NostrNIP90ContentDiscoveryFeedViewModel,
@@ -99,51 +98,37 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
Column(Modifier.fillMaxHeight()) {
val pagerState = rememberPagerState { 2 }
val coroutineScope = rememberCoroutineScope()
- // TODO 1 Render a nice header with image and DVM name from the id
- // TODO How do we get the event information here?
- var dvminfo = "DVM " + DVMID
- if (DVMID != null) {
- val thread =
- Thread {
- try {
- var note = LocalCache.checkGetOrCreateNote(DVMID)
- if (note != null) {
- dvminfo = ((note.event as AppDefinitionEvent).appMetaData()?.name ?: "DVM from note")
- } else {
- dvminfo = "DVM from not found"
- }
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
-
- thread.start()
- thread.join()
- }
-
- // TODO this shows the status but there might be a better way
+ // TODO this now shows the first status update but there might be a better way
var dvmStatus = "DVM is processing..."
val thread =
Thread {
- println(dvmStatus)
+ var count = 0
while (resultFeedViewModel.localFilter.feed().isEmpty()) {
try {
if (statusFeedViewModel.localFilter.feed().isNotEmpty()) {
statusFeedViewModel.localFilter.feed()[0].event?.let { dvmStatus = it.content() }
println(dvmStatus)
break
+ } else if (count > 1000) {
+ // Might not be the best way, but we want to avoid hanging in the loop forever
+ break
} else {
+ count++
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
-
thread.start()
thread.join()
+ // TODO Maybe render a nice header with image and DVM name from the dvmID
+ // TODO How do we get the event information here?, LocalCache.checkGetOrCreateNote() returns note but event is empty
+ // TODO oterwise we have the NIP89 info in (note.event as AppDefinitionEvent).appMetaData()
+ // Text(text = dvminfo)
+
HorizontalPager(state = pagerState) {
RefresheableBox(resultFeedViewModel, false) {
SaveableFeedState(resultFeedViewModel, null) { listState ->
@@ -154,6 +139,7 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
nav,
null,
onEmpty = {
+ // TODO Maybe also show some dvm image/text while waiting for the notes in this custom component
FeedEmptywithStatus(status = dvmStatus) {
}
},
From 6bd98201f85b3733afd656c7e7038f48a35a86de Mon Sep 17 00:00:00 2001
From: Believethehype <1097224+believethehype@users.noreply.github.com>
Date: Thu, 16 May 2024 15:16:30 +0200
Subject: [PATCH 2/5] add DVM not replying message
---
.../ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt | 6 ++++--
app/src/main/res/values/strings.xml | 2 ++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
index f2f5a4f7f..eddc12ce6 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
@@ -31,7 +31,9 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
import androidx.lifecycle.viewmodel.compose.viewModel
+import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.model.LocalCache
import com.vitorpamplona.amethyst.service.relays.Client
import com.vitorpamplona.amethyst.ui.screen.FeedEmptywithStatus
@@ -100,7 +102,8 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
val coroutineScope = rememberCoroutineScope()
// TODO this now shows the first status update but there might be a better way
- var dvmStatus = "DVM is processing..."
+ var dvmStatus = stringResource(R.string.dvm_no_status)
+
val thread =
Thread {
var count = 0
@@ -112,7 +115,6 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
break
} else if (count > 1000) {
// Might not be the best way, but we want to avoid hanging in the loop forever
- break
} else {
count++
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 581930251..89980e2af 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -846,4 +846,6 @@
Draft Note
From Msg
+
+ DVM seems not to reply
From 193e9a5adbeb52661424ceccc95dc33844361ff3 Mon Sep 17 00:00:00 2001
From: Believethehype <1097224+believethehype@users.noreply.github.com>
Date: Thu, 16 May 2024 15:19:19 +0200
Subject: [PATCH 3/5] add more info on current dvm state
---
.../ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt | 8 +++++---
app/src/main/res/values/strings.xml | 1 +
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
index eddc12ce6..0c732212d 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
@@ -102,7 +102,8 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
val coroutineScope = rememberCoroutineScope()
// TODO this now shows the first status update but there might be a better way
- var dvmStatus = stringResource(R.string.dvm_no_status)
+ var dvmState = stringResource(R.string.dvm_waiting_status)
+ var dvmNoState = stringResource(R.string.dvm_no_status)
val thread =
Thread {
@@ -111,9 +112,10 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
try {
if (statusFeedViewModel.localFilter.feed().isNotEmpty()) {
statusFeedViewModel.localFilter.feed()[0].event?.let { dvmStatus = it.content() }
- println(dvmStatus)
+ println(dvmState)
break
} else if (count > 1000) {
+ dvmState = dvmNoState
// Might not be the best way, but we want to avoid hanging in the loop forever
} else {
count++
@@ -142,7 +144,7 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
null,
onEmpty = {
// TODO Maybe also show some dvm image/text while waiting for the notes in this custom component
- FeedEmptywithStatus(status = dvmStatus) {
+ FeedEmptywithStatus(status = dvmState) {
}
},
)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 89980e2af..2cf9242a4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -847,5 +847,6 @@
From Msg
+ Waiting for DVM to reply
DVM seems not to reply
From c494cf8ac10011d8932c4ba5266ac196fe5980c1 Mon Sep 17 00:00:00 2001
From: Believethehype <1097224+believethehype@users.noreply.github.com>
Date: Thu, 16 May 2024 15:20:04 +0200
Subject: [PATCH 4/5] Update NIP90ContentDiscoveryScreen.kt
---
.../amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
index 0c732212d..13dc1d2cb 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
@@ -111,7 +111,7 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
while (resultFeedViewModel.localFilter.feed().isEmpty()) {
try {
if (statusFeedViewModel.localFilter.feed().isNotEmpty()) {
- statusFeedViewModel.localFilter.feed()[0].event?.let { dvmStatus = it.content() }
+ statusFeedViewModel.localFilter.feed()[0].event?.let { dvmState = it.content() }
println(dvmState)
break
} else if (count > 1000) {
From b2193f48d5ebe16878ea636c867f30d7f9327c49 Mon Sep 17 00:00:00 2001
From: Believethehype <1097224+believethehype@users.noreply.github.com>
Date: Thu, 16 May 2024 16:48:19 +0200
Subject: [PATCH 5/5] Update NIP90ContentDiscoveryScreen.kt
---
.../ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
index 13dc1d2cb..5c0121309 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NIP90ContentDiscoveryScreen.kt
@@ -101,7 +101,7 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
val pagerState = rememberPagerState { 2 }
val coroutineScope = rememberCoroutineScope()
- // TODO this now shows the first status update but there might be a better way
+ // TODO (Optional) this now shows the first status update but there might be a better way
var dvmState = stringResource(R.string.dvm_waiting_status)
var dvmNoState = stringResource(R.string.dvm_no_status)
@@ -128,14 +128,15 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
thread.start()
thread.join()
- // TODO Maybe render a nice header with image and DVM name from the dvmID
- // TODO How do we get the event information here?, LocalCache.checkGetOrCreateNote() returns note but event is empty
- // TODO oterwise we have the NIP89 info in (note.event as AppDefinitionEvent).appMetaData()
+ // TODO (Optional) Maybe render a nice header with image and DVM name from the dvmID
+ // TODO (Optional) How do we get the event information here?, LocalCache.checkGetOrCreateNote() returns note but event is empty
+ // TODO (Optional) otherwise we have the NIP89 info in (note.event as AppDefinitionEvent).appMetaData()
// Text(text = dvminfo)
HorizontalPager(state = pagerState) {
RefresheableBox(resultFeedViewModel, false) {
SaveableFeedState(resultFeedViewModel, null) { listState ->
+ // TODO (Optional) Instead of a like reaction, do a Kind 31989 NIP89 App recommendation
RenderFeedState(
resultFeedViewModel,
accountViewModel,
@@ -143,7 +144,7 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
nav,
null,
onEmpty = {
- // TODO Maybe also show some dvm image/text while waiting for the notes in this custom component
+ // TODO (Optional) Maybe also show some dvm image/text while waiting for the notes in this custom component
FeedEmptywithStatus(status = dvmState) {
}
},