diff --git a/app/src/main/java/com/koalasat/pokey/models/ExternalSigner.kt b/app/src/main/java/com/koalasat/pokey/models/ExternalSigner.kt
index 568f1d8..1a7bd3a 100644
--- a/app/src/main/java/com/koalasat/pokey/models/ExternalSigner.kt
+++ b/app/src/main/java/com/koalasat/pokey/models/ExternalSigner.kt
@@ -3,10 +3,12 @@ package com.koalasat.pokey.models
import android.app.Activity
import android.content.Intent
import android.util.Log
+import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.fragment.app.Fragment
import com.koalasat.pokey.Pokey
+import com.koalasat.pokey.R
import com.vitorpamplona.quartz.signers.ExternalSignerLauncher
import com.vitorpamplona.quartz.signers.SignerType
import java.util.UUID
@@ -20,6 +22,7 @@ class ExternalSigner(fragment: Fragment) {
nostrSignerLauncher = fragment.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode != Activity.RESULT_OK) {
Log.e("Pokey", "ExternalSigner result error: ${result.resultCode}")
+ Toast.makeText(fragment.context, fragment.getString(R.string.amber_not_found), Toast.LENGTH_SHORT).show()
} else {
result.data?.let { externalSignerLauncher.newResult(it) }
}
diff --git a/app/src/main/java/com/koalasat/pokey/service/NotificationsService.kt b/app/src/main/java/com/koalasat/pokey/service/NotificationsService.kt
index c0c4595..ed56119 100644
--- a/app/src/main/java/com/koalasat/pokey/service/NotificationsService.kt
+++ b/app/src/main/java/com/koalasat/pokey/service/NotificationsService.kt
@@ -24,10 +24,12 @@ import com.vitorpamplona.ammolite.relays.EVENT_FINDER_TYPES
import com.vitorpamplona.ammolite.relays.Relay
import com.vitorpamplona.ammolite.relays.RelayPool
import com.vitorpamplona.ammolite.relays.TypedFilter
-import com.vitorpamplona.ammolite.relays.filters.EOSETime
import com.vitorpamplona.ammolite.relays.filters.SincePerRelayFilter
+import com.vitorpamplona.quartz.encoders.Hex
import com.vitorpamplona.quartz.encoders.Nip19Bech32
import com.vitorpamplona.quartz.encoders.Nip19Bech32.uriToRoute
+import com.vitorpamplona.quartz.encoders.toNote
+import com.vitorpamplona.quartz.encoders.toNpub
import com.vitorpamplona.quartz.events.Event
import com.vitorpamplona.quartz.events.EventInterface
import java.time.Instant
@@ -207,9 +209,9 @@ class NotificationsService : Service() {
TypedFilter(
types = COMMON_FEED_TYPES,
filter = SincePerRelayFilter(
- kinds = listOf(1, 4, 6, 7, 13, 9735),
tags = mapOf("p" to listOf(hexKey)),
- since = RelayPool.getAll().associate { it.url to EOSETime(latestNotification) },
+// since = RelayPool.getAll().associate { it.url to EOSETime(latestNotification) },
+ limit = 1,
),
),
),
@@ -330,6 +332,7 @@ class NotificationsService : Service() {
var title = ""
var text = ""
val pubKey = EncryptedStorage.pubKey
+ var nip32Bech32 = ""
if (event.kind == 1) {
title = if (event.content().contains("nostr:$pubKey")) {
@@ -340,10 +343,13 @@ class NotificationsService : Service() {
getString(R.string.new_reply)
}
text = event.content().replace(Regex("nostr:[a-zA-Z0-9]+"), "")
+ nip32Bech32 = Hex.decode(event.id).toNote()
} else if (event.kind == 6) {
title = getString(R.string.new_repost)
+ nip32Bech32 = Hex.decode(event.id).toNote()
} else if (event.kind == 4 || event.kind == 13) {
title = getString(R.string.new_private)
+ nip32Bech32 = Hex.decode(event.pubKey).toNpub()
} else if (event.kind == 7) {
title = getString(R.string.new_reaction)
text = if (event.content.isEmpty() || event.content == "+") {
@@ -351,28 +357,23 @@ class NotificationsService : Service() {
} else {
event.content
}
+ val taggedEvent = event.taggedEvents().first()
+ nip32Bech32 = Hex.decode(taggedEvent).toNote()
} else if (event.kind == 9735) {
title = getString(R.string.new_zap)
+ var sats = event.zapraiserAmount()
+ text = "⚡ $sats Sats"
}
-
+ Log.d("Pokey", nip32Bech32)
if (title.isEmpty()) return@launch
- displayNoteNotification(title, text, event)
+ displayNoteNotification(title, text, nip32Bech32, event)
}
}
- private fun displayNoteNotification(title: String, text: String, event: Event) {
+ private fun displayNoteNotification(title: String, text: String, nip32Bech32: String, event: Event) {
val deepLinkIntent = Intent(Intent.ACTION_VIEW).apply {
-// val nPub = Nip19Bech32.parseComponents(
-// "npub",
-// event.pubKey,
-// null,
-// )
-
-// if (nPub != null) {
-// data = Uri.parse("nostr:${nPub.nip19raw}")
-// }
- data = Uri.parse("nostr:")
+ data = Uri.parse("nostr:$nip32Bech32")
}
val pendingIntent = PendingIntent.getActivity(
this@NotificationsService,
diff --git a/app/src/main/java/com/koalasat/pokey/ui/home/HomeFragment.kt b/app/src/main/java/com/koalasat/pokey/ui/home/HomeFragment.kt
index 8ac063b..c4bdd0c 100644
--- a/app/src/main/java/com/koalasat/pokey/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/koalasat/pokey/ui/home/HomeFragment.kt
@@ -66,14 +66,12 @@ class HomeFragment : Fragment() {
if (it) {
val typedValue = TypedValue()
requireContext().theme.resolveAttribute(android.R.attr.colorButtonNormal, typedValue, true)
- binding.serviceStart.setBackgroundColor(typedValue.data)
binding.serviceStart.text = getString(R.string.stop)
binding.amber.isEnabled = false
binding.npubInput.isEnabled = false
} else {
val typedValue = TypedValue()
requireContext().theme.resolveAttribute(android.R.attr.colorPrimary, typedValue, true)
- binding.serviceStart.setBackgroundColor(typedValue.data)
binding.serviceStart.text = getString(R.string.start)
binding.amber.isEnabled = true
binding.npubInput.isEnabled = true
diff --git a/app/src/main/java/com/koalasat/pokey/ui/home/HomeViewModel.kt b/app/src/main/java/com/koalasat/pokey/ui/home/HomeViewModel.kt
index ee57352..1730066 100644
--- a/app/src/main/java/com/koalasat/pokey/ui/home/HomeViewModel.kt
+++ b/app/src/main/java/com/koalasat/pokey/ui/home/HomeViewModel.kt
@@ -1,6 +1,5 @@
package com.koalasat.pokey.ui.home
-import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
@@ -39,7 +38,6 @@ class HomeViewModel : ViewModel() {
fun updateNpubInput(text: String) {
_npubInput.value = text
validateNpubInput()
- Log.e("Pokey", "validation: " + _validationResult.value.toString())
if (_validationResult.value == true) {
EncryptedStorage.updatePubKey(text)
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fa06754..00252be 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,6 +6,7 @@
Relays
Notifications
Pokey is running in background
+ Amber not installed
Relays connection
Notifications
New mention