From aaa2834ed1bc5b7faddeb5d20adcd0d5bf7aed3c Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Thu, 25 Jan 2024 12:00:21 +0200
Subject: [PATCH] Set circles.futo.org for deeplinks

---
 app/src/main/AndroidManifest.xml                           | 1 +
 app/src/main/java/org/futo/circles/model/UrlData.kt        | 7 ++++++-
 .../java/org/futo/circles/core/feature/share/ShareUrl.kt   | 3 ++-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 656513a41..afcd35b86 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -52,6 +52,7 @@
                 <data android:scheme="https" />
                 <data android:scheme="http" />
                 <data android:host="circu.li" />
+                <data android:host="circles.futo.org" />
                 <data android:pathPrefix="/room" />
                 <data android:pathPrefix="/profile" />
                 <data android:pathPrefix="/group" />
diff --git a/app/src/main/java/org/futo/circles/model/UrlData.kt b/app/src/main/java/org/futo/circles/model/UrlData.kt
index f3cf5294b..e6d6b1441 100644
--- a/app/src/main/java/org/futo/circles/model/UrlData.kt
+++ b/app/src/main/java/org/futo/circles/model/UrlData.kt
@@ -1,6 +1,7 @@
 package org.futo.circles.model
 
 import org.futo.circles.core.feature.share.BASE_SHARE_URL
+import org.futo.circles.core.feature.share.LEGACY_BASE_SHARE_URL
 import org.futo.circles.core.model.ShareUrlTypeArg
 import org.futo.circles.core.model.shareUrlTypeArgFromType
 
@@ -10,7 +11,11 @@ data class RoomUrlData(
 )
 
 fun parseUrlData(url: String): RoomUrlData? {
-    val data = url.removePrefix(BASE_SHARE_URL).split("/")
+    val data = if (url.startsWith(BASE_SHARE_URL)) url.removePrefix(BASE_SHARE_URL).split("/")
+    else if (url.startsWith(LEGACY_BASE_SHARE_URL)) url.removePrefix(LEGACY_BASE_SHARE_URL)
+        .split("/")
+    else return null
+
     val typeString = data.getOrNull(0) ?: return null
     val type = shareUrlTypeArgFromType(typeString) ?: return null
     val roomId = data.getOrNull(1) ?: return null
diff --git a/core/src/main/java/org/futo/circles/core/feature/share/ShareUrl.kt b/core/src/main/java/org/futo/circles/core/feature/share/ShareUrl.kt
index 16ca4cefc..9bfc5799a 100644
--- a/core/src/main/java/org/futo/circles/core/feature/share/ShareUrl.kt
+++ b/core/src/main/java/org/futo/circles/core/feature/share/ShareUrl.kt
@@ -2,7 +2,8 @@ package org.futo.circles.core.feature.share
 
 import org.futo.circles.core.model.ShareUrlTypeArg
 
-const val BASE_SHARE_URL = "https://circu.li/"
+const val BASE_SHARE_URL = "https://circles.futo.org/"
+const val LEGACY_BASE_SHARE_URL = "https://circu.li/"
 
 fun buildShareRoomUrl(type: ShareUrlTypeArg, roomId: String) =
     BASE_SHARE_URL + type.typeKey + "/$roomId"
-- 
GitLab