diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1a85fe035..08379fd9d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -75,6 +75,20 @@
android:scheme="https" />
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt b/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt
index 1a0692149..786c73237 100644
--- a/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt
+++ b/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt
@@ -448,6 +448,11 @@ fun SharedTransitionScope.PrimalAppNavigation() {
)
}
+ is DeepLink.Article -> {
+ navController.popBackStack()
+ navController.navigateToArticleDetails(deepLink.naddr)
+ }
+
null -> navController.navigateToHome()
}
}
diff --git a/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLink.kt b/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLink.kt
index 82f7a5180..10add9826 100644
--- a/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLink.kt
+++ b/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLink.kt
@@ -6,5 +6,6 @@ sealed class DeepLink {
data class NostrWalletConnect(val nwc: net.primal.android.user.domain.NostrWalletConnect) : DeepLink()
data class Profile(val pubkey: String) : DeepLink()
data class Note(val noteId: String) : DeepLink()
+ data class Article(val naddr: String) : DeepLink()
data class PrimalNWC(val primalWalletNwc: PrimalWalletNwc) : DeepLink()
}
diff --git a/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLinkingHandler.kt b/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLinkingHandler.kt
index 85f4b7cf6..c01334b8b 100644
--- a/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLinkingHandler.kt
+++ b/app/src/main/kotlin/net/primal/android/navigation/deeplinking/DeepLinkingHandler.kt
@@ -8,6 +8,7 @@ import net.primal.android.user.domain.isNwcUrl
import net.primal.android.user.domain.parseNWCUrl
private val PRIMAL_NOTE_REGEX = Regex("https://.*primal.net/e/")
+private val PRIMAL_ARTICLE_REGEX = Regex("https://.*primal.net/a/")
private val PRIMAL_PROFILE_REGEX = Regex("https://.*primal.net/p/")
private const val NOSTR_WALLET_CONNECT_SCHEMA = "nostr+walletconnect://"
@@ -28,6 +29,11 @@ fun String.parseDeepLinkOrNull(): DeepLink? =
unknownProfileIdentifier.resolveProfileId()?.let { DeepLink.Profile(it) }
}
+ PRIMAL_ARTICLE_REGEX.containsMatchIn(this) -> {
+ val unknownArticleIdentifier = PRIMAL_ARTICLE_REGEX.replace(this, "")
+ unknownArticleIdentifier.let { DeepLink.Article(it) }
+ }
+
isNostrWalletConnectSchemaAndUrl() ->
runCatching {
DeepLink.NostrWalletConnect(nwc = this.parseNWCUrl())