From 3b43446c1189b456a14c0c3977f16fd1fdeccc92 Mon Sep 17 00:00:00 2001 From: Satoshi Qazi Muhammed Date: Mon, 19 Oct 2026 13:22:38 +0400 Subject: [PATCH] fix(deeplink): match the referendum path exactly ReferendumDeepLinkHandler matched any path starting with /open/gov, so the governance banner link /open/governance went to the referendum screen and failed with ReferendumIsNotSpecified. --- .../referenda/details/deeplink/ReferendumDeepLinkHandler.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/feature-governance-impl/src/main/java/io/novafoundation/nova/feature_governance_impl/presentation/referenda/details/deeplink/ReferendumDeepLinkHandler.kt b/feature-governance-impl/src/main/java/io/novafoundation/nova/feature_governance_impl/presentation/referenda/details/deeplink/ReferendumDeepLinkHandler.kt index 1c13551b..fb832850 100644 --- a/feature-governance-impl/src/main/java/io/novafoundation/nova/feature_governance_impl/presentation/referenda/details/deeplink/ReferendumDeepLinkHandler.kt +++ b/feature-governance-impl/src/main/java/io/novafoundation/nova/feature_governance_impl/presentation/referenda/details/deeplink/ReferendumDeepLinkHandler.kt @@ -31,7 +31,9 @@ class ReferendumDeepLinkHandler( override suspend fun matches(data: Uri): Boolean { val path = data.path ?: return false - return path.startsWith(ReferendumDetailsDeepLinkConfigurator.PREFIX) + // Exact match, not startsWith: otherwise "/open/governance" (and any "/open/gov*") would wrongly + // match the referendum prefix "/open/gov" and fail with ReferendumIsNotSpecified. + return path == ReferendumDetailsDeepLinkConfigurator.PREFIX } override suspend fun handleDeepLink(data: Uri) = runCatching {