Skip to content

Commit

Permalink
Open notification to external uri client
Browse files Browse the repository at this point in the history
  • Loading branch information
KoalaSat committed Oct 25, 2024
1 parent 029a035 commit 8ba2f50
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 20 deletions.
3 changes: 3 additions & 0 deletions app/src/main/java/com/koalasat/pokey/models/ExternalSigner.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
),
),
),
Expand Down Expand Up @@ -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")) {
Expand All @@ -340,39 +343,37 @@ 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 == "+") {
"\uFE0F"
} 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,
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/koalasat/pokey/ui/home/HomeFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/koalasat/pokey/ui/home/HomeViewModel.kt
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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)
}
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<string name="title_relays">Relays</string>
<string name="title_notifications">Notifications</string>
<string name="pokey_is_running_in_background">Pokey is running in background</string>
<string name="amber_not_found">Amber not installed</string>
<string name="relays_connection">Relays connection</string>
<string name="notifications">Notifications</string>
<string name="new_mention">New mention</string>
Expand Down

0 comments on commit 8ba2f50

Please sign in to comment.