From 55c1c89f78340d19f5cbb53e8f056437b534ac49 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Tue, 3 Jan 2023 15:49:08 +0200
Subject: [PATCH] Move knock into room service

---
 .../matrix/android/sdk/api/session/room/RoomService.kt |  3 +++
 .../sdk/api/session/room/members/MembershipService.kt  |  3 ---
 .../sdk/internal/session/room/DefaultRoomService.kt    | 10 ++++++++--
 .../room/membership/DefaultMembershipService.kt        |  6 ------
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt
index 65383f10..a509533c 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt
@@ -293,4 +293,7 @@ interface RoomService {
      * This is useful for refreshing summary content with encrypted messages after receiving new room keys.
      */
     fun refreshJoinedRoomSummaryPreviews(roomId: String?)
+
+    //Ask permission to join the room.
+    suspend fun knock(roomId: String, reason: String? = null)
 }
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt
index 7ea4ba3c..144cfeb3 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/members/MembershipService.kt
@@ -95,7 +95,4 @@ interface MembershipService {
 
     @Deprecated("Use remove instead", ReplaceWith("remove(userId, reason)"))
     suspend fun kick(userId: String, reason: String? = null) = remove(userId, reason)
-
-    //Ask permission to join the room.
-    suspend fun knock(userId: String, reason: String? = null)
 }
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt
index 6d72b8ef..926659be 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt
@@ -51,6 +51,7 @@ import org.matrix.android.sdk.internal.session.room.delete.DeleteLocalRoomTask
 import org.matrix.android.sdk.internal.session.room.membership.RoomChangeMembershipStateDataSource
 import org.matrix.android.sdk.internal.session.room.membership.RoomMemberHelper
 import org.matrix.android.sdk.internal.session.room.membership.joining.JoinRoomTask
+import org.matrix.android.sdk.internal.session.room.membership.joining.KnockTask
 import org.matrix.android.sdk.internal.session.room.membership.leaving.LeaveRoomTask
 import org.matrix.android.sdk.internal.session.room.peeking.PeekRoomTask
 import org.matrix.android.sdk.internal.session.room.peeking.ResolveRoomStateTask
@@ -77,8 +78,9 @@ internal class DefaultRoomService @Inject constructor(
         private val roomSummaryDataSource: RoomSummaryDataSource,
         private val roomChangeMembershipStateDataSource: RoomChangeMembershipStateDataSource,
         private val leaveRoomTask: LeaveRoomTask,
-        private val roomSummaryUpdater: RoomSummaryUpdater
-) : RoomService {
+        private val roomSummaryUpdater: RoomSummaryUpdater,
+        private val knockTask: KnockTask
+        ) : RoomService {
 
     override suspend fun createRoom(createRoomParams: CreateRoomParams): String {
         return createRoomTask.executeRetry(createRoomParams, 3)
@@ -262,4 +264,8 @@ internal class DefaultRoomService @Inject constructor(
         }
         return roomSummaryDataSource.getAllRoomSummaryChildOfLive(spaceId, memberships)
     }
+
+    override suspend fun knock(roomId: String, reason: String?) {
+        knockTask.execute(KnockTask.Params(roomId, reason))
+    }
 }
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt
index ae7f6246..0baf6a83 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt
@@ -55,7 +55,6 @@ internal class DefaultMembershipService @AssistedInject constructor(
         private val inviteTask: InviteTask,
         private val inviteThreePidTask: InviteThreePidTask,
         private val membershipAdminTask: MembershipAdminTask,
-        private val knockTask: KnockTask,
         private val roomDataSource: RoomDataSource,
         private val cryptoService: CryptoService,
         @UserId
@@ -166,9 +165,4 @@ internal class DefaultMembershipService @AssistedInject constructor(
         val params = InviteThreePidTask.Params(roomId, threePid)
         return inviteThreePidTask.execute(params)
     }
-
-    override suspend fun knock(userId: String, reason: String?) {
-        val params = KnockTask.Params(roomId, reason)
-        knockTask.execute(params)
-    }
 }
-- 
GitLab