From a5c1101ab571c1a130d947bfd1f80d82ba082dfb Mon Sep 17 00:00:00 2001 From: Evgenii Kozlov Date: Mon, 19 May 2025 15:32:34 +0200 Subject: [PATCH] DROID-3233 Deep links | Fix | Fix spade invite handling --- .../main/java/com/anytypeio/anytype/other/Deeplinks.kt | 3 ++- .../anytype/other/DefaultDeepLinkResolverTest.kt | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/anytypeio/anytype/other/Deeplinks.kt b/app/src/main/java/com/anytypeio/anytype/other/Deeplinks.kt index da27096cfe..52f9a73385 100644 --- a/app/src/main/java/com/anytypeio/anytype/other/Deeplinks.kt +++ b/app/src/main/java/com/anytypeio/anytype/other/Deeplinks.kt @@ -41,13 +41,14 @@ object DefaultDeepLinkResolver : DeepLinkResolver { private val defaultInviteRegex = Regex(DEEP_LINK_INVITE_REG_EXP) private val defaultLinkToObjectRegex = Regex(DEEP_LINK_TO_OBJECT_REG_EXP) + private val customInviteRegex = Regex(DEE_LINK_INVITE_CUSTOM_REG_EXP) override fun resolve(deeplink: String): DeepLinkResolver.Action { val uri = Uri.parse(deeplink) - return when { deeplink.contains(IMPORT_EXPERIENCE_DEEPLINK) -> resolveImportExperience(uri) defaultInviteRegex.containsMatchIn(deeplink) -> DeepLinkResolver.Action.Invite(deeplink) + customInviteRegex.containsMatchIn(deeplink) -> DeepLinkResolver.Action.Invite(deeplink) defaultLinkToObjectRegex.containsMatchIn(deeplink) -> resolveDeepLinkToObject(uri) deeplink.contains(OBJECT_PATH) -> resolveObjectPath(uri) deeplink.contains(MEMBERSHIP_PATH) -> resolveMembershipPath(uri) diff --git a/app/src/test/java/com/anytypeio/anytype/other/DefaultDeepLinkResolverTest.kt b/app/src/test/java/com/anytypeio/anytype/other/DefaultDeepLinkResolverTest.kt index 143b3e7614..212cd51c49 100644 --- a/app/src/test/java/com/anytypeio/anytype/other/DefaultDeepLinkResolverTest.kt +++ b/app/src/test/java/com/anytypeio/anytype/other/DefaultDeepLinkResolverTest.kt @@ -4,6 +4,7 @@ import android.os.Build import com.anytypeio.anytype.core_models.primitives.SpaceId import com.anytypeio.anytype.domain.misc.DeepLinkResolver import com.anytypeio.anytype.test_utils.MockDataFactory +import kotlin.test.assertIs import kotlin.test.assertTrue import org.junit.Assert.assertEquals import org.junit.Test @@ -173,4 +174,13 @@ class DefaultDeepLinkResolverTest { deepLinkResolver.isDeepLink(link1) ) } + + @Test + fun `should resolve invite`() { + val invite = "anytype://invite/?cid=bafybeibl3c5eqptcom5l5hjj5x6hkids6ayljykujamvt3bt4fcvuuebdy&key=Z7qado84JzbmwZhXBf53dYiCyNAEERyRWwwiHbBgWMv" + assertTrue( + deepLinkResolver.isDeepLink(invite) + ) + assertIs(deepLinkResolver.resolve(invite)) + } } \ No newline at end of file