From eb0e8fd28abd4cce21018019d736db4bae97513d Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Thu, 21 Sep 2023 17:43:46 +0300
Subject: [PATCH] add getJoinedRoomById

---
 .../futo/circles/model/NotificationTestStatus.kt   |  8 --------
 app/src/main/res/values/strings.xml                |  1 -
 .../feature/log_in/stages/LoginStagesDataSource.kt |  1 -
 .../auth/feature/sign_up/SignUpDataSource.kt       |  1 -
 .../main/java/org/futo/circles/core/Constants.kt   |  1 -
 .../java/org/futo/circles/core/model/TaskStatus.kt |  8 ++++++++
 .../java/org/futo/circles/core/utils/RoomUtils.kt  | 14 +++++++++++---
 7 files changed, 19 insertions(+), 15 deletions(-)
 delete mode 100644 app/src/main/java/org/futo/circles/model/NotificationTestStatus.kt
 create mode 100644 core/src/main/java/org/futo/circles/core/model/TaskStatus.kt

diff --git a/app/src/main/java/org/futo/circles/model/NotificationTestStatus.kt b/app/src/main/java/org/futo/circles/model/NotificationTestStatus.kt
deleted file mode 100644
index 56abc6886..000000000
--- a/app/src/main/java/org/futo/circles/model/NotificationTestStatus.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.futo.circles.model
-
-enum class NotificationTestStatus {
-    IDLE,
-    RUNNING,
-    SUCCESS,
-    FAILED
-}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 57661aa9d..22acdeb3b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -207,7 +207,6 @@
     <string name="unifiedpush_distributors_dialog_title">Choose how to receive notifications</string>
     <string name="thread_format">%s (thread)</string>
     <string name="unexpected_error">Something went wrong</string>
-    <string name="configuring_workspace">Configuring workspace</string>
     <string name="shared_circles">Shared Circles</string>
     <string name="save">Save</string>
     <string name="joined_members_count">Joined members: %d</string>
diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LoginStagesDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LoginStagesDataSource.kt
index 15cae3d1f..49b1b796c 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LoginStagesDataSource.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/stages/LoginStagesDataSource.kt
@@ -14,7 +14,6 @@ import org.futo.circles.core.extensions.Response
 import org.futo.circles.core.extensions.createResult
 import org.futo.circles.core.provider.MatrixInstanceProvider
 import org.futo.circles.core.provider.MatrixSessionProvider
-import org.futo.circles.core.room.CoreSpacesTreeBuilder
 import org.matrix.android.sdk.api.auth.registration.RegistrationResult
 import org.matrix.android.sdk.api.session.Session
 import org.matrix.android.sdk.api.util.JsonDict
diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt
index d7c75f5b7..2ea456317 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/SignUpDataSource.kt
@@ -14,7 +14,6 @@ import org.futo.circles.core.extensions.createResult
 import org.futo.circles.core.provider.MatrixInstanceProvider
 import org.futo.circles.core.provider.MatrixSessionProvider
 import org.futo.circles.core.provider.PreferencesProvider
-import org.futo.circles.core.room.CoreSpacesTreeBuilder
 import org.matrix.android.sdk.api.auth.registration.RegistrationResult
 import org.matrix.android.sdk.api.auth.registration.Stage
 import org.matrix.android.sdk.api.session.Session
diff --git a/core/src/main/java/org/futo/circles/core/Constants.kt b/core/src/main/java/org/futo/circles/core/Constants.kt
index 39e98ad31..f1c132008 100644
--- a/core/src/main/java/org/futo/circles/core/Constants.kt
+++ b/core/src/main/java/org/futo/circles/core/Constants.kt
@@ -3,7 +3,6 @@ package org.futo.circles.core
 import org.futo.circles.core.provider.MatrixSessionProvider
 
 const val FILE_PROVIDER_AUTHORITY_EXTENSION = ".provider"
-const val CREATE_ROOM_DELAY = 1000L
 const val SYSTEM_NOTICES_TAG = "m.server_notice"
 const val DEFAULT_USER_PREFIX = "@notices:"
 
diff --git a/core/src/main/java/org/futo/circles/core/model/TaskStatus.kt b/core/src/main/java/org/futo/circles/core/model/TaskStatus.kt
new file mode 100644
index 000000000..368708d19
--- /dev/null
+++ b/core/src/main/java/org/futo/circles/core/model/TaskStatus.kt
@@ -0,0 +1,8 @@
+package org.futo.circles.core.model
+
+enum class TaskStatus {
+    IDLE,
+    RUNNING,
+    SUCCESS,
+    FAILED
+}
\ No newline at end of file
diff --git a/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt b/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt
index 6d61643c4..e3d0ed761 100644
--- a/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt
+++ b/core/src/main/java/org/futo/circles/core/utils/RoomUtils.kt
@@ -10,6 +10,7 @@ import org.matrix.android.sdk.api.session.getRoom
 import org.matrix.android.sdk.api.session.getRoomSummary
 import org.matrix.android.sdk.api.session.room.Room
 import org.matrix.android.sdk.api.session.room.model.Membership
+import org.matrix.android.sdk.api.session.room.model.RoomSummary
 import org.matrix.android.sdk.api.session.room.model.RoomType
 import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams
 
@@ -23,10 +24,17 @@ fun getTimelineRoomIdOrThrow(circleId: String) = getTimelineRoomFor(circleId)?.r
 
 fun getSystemNoticesRoomId(): String? = getJoinedRoomIdByTag(SYSTEM_NOTICES_TAG)
 
-fun getJoinedRoomIdByTag(tag: String): String? {
+fun getJoinedRoomIdByTag(tag: String, includeSpace: Boolean = false): String? {
     val session = MatrixSessionProvider.currentSession ?: return null
-    return session.roomService().getRoomSummaries(roomSummaryQueryParams())
-        .firstOrNull { it.membership == Membership.JOIN && it.hasTag(tag) }?.roomId
+    return session.roomService().getRoomSummaries(roomSummaryQueryParams {
+        excludeType = if (includeSpace) null else listOf(RoomType.SPACE)
+        memberships = listOf(Membership.JOIN)
+    }).firstOrNull { it.hasTag(tag) }?.roomId
+}
+
+fun getJoinedRoomById(roomId: String): RoomSummary? {
+    val session = MatrixSessionProvider.currentSession ?: return null
+    return session.roomService().getRoomSummary(roomId)?.takeIf { it.membership == Membership.JOIN }
 }
 
 fun getPhotosSpaceId(): String? = getSpaceIdByTag(PHOTOS_SPACE_TAG)
-- 
GitLab