From 962d05ee5d4d1504e44cde2230734b13735f638a Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Fri, 12 Jan 2024 17:38:06 +0200
Subject: [PATCH] Improve shortcut filter

---
 .../circles/feature/notifications/ShortcutsHandler.kt | 11 ++---------
 .../java/org/futo/circles/core/utils/MatrixUtils.kt   |  6 ++++++
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/app/src/main/java/org/futo/circles/feature/notifications/ShortcutsHandler.kt b/app/src/main/java/org/futo/circles/feature/notifications/ShortcutsHandler.kt
index 821a9a9ae..1c460d927 100644
--- a/app/src/main/java/org/futo/circles/feature/notifications/ShortcutsHandler.kt
+++ b/app/src/main/java/org/futo/circles/feature/notifications/ShortcutsHandler.kt
@@ -13,10 +13,8 @@ import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 import org.futo.circles.R
 import org.futo.circles.core.provider.MatrixSessionProvider
-import org.matrix.android.sdk.api.session.room.RoomSortOrder
-import org.matrix.android.sdk.api.session.room.model.Membership
+import org.futo.circles.core.utils.getAllJoinedCirclesRoomsAndSpacesLiveData
 import org.matrix.android.sdk.api.session.room.model.RoomSummary
-import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams
 import javax.inject.Inject
 
 class ShortcutsHandler @Inject constructor(
@@ -33,12 +31,7 @@ class ShortcutsHandler @Inject constructor(
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) return Job()
 
         val session = MatrixSessionProvider.currentSession ?: return Job()
-        return session.roomService().getRoomSummariesLive(
-            roomSummaryQueryParams {
-                memberships = listOf(Membership.JOIN)
-            },
-            sortOrder = RoomSortOrder.PRIORITY_AND_ACTIVITY
-        ).asFlow().onEach { rooms ->
+        return getAllJoinedCirclesRoomsAndSpacesLiveData(session).asFlow().onEach { rooms ->
             removeDeadShortcuts(rooms.map { it.roomId })
             createShortcuts(rooms)
         }
diff --git a/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt b/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt
index 470cd82a2..650d59134 100644
--- a/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt
+++ b/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt
@@ -64,6 +64,12 @@ fun getAllJoinedCirclesRoomsAndSpaces(session: Session = MatrixSessionProvider.g
         memberships = listOf(Membership.JOIN)
     })
 
+fun getAllJoinedCirclesRoomsAndSpacesLiveData(session: Session = MatrixSessionProvider.getSessionOrThrow()) =
+    session.roomService().getRoomSummariesLive(roomSummaryQueryParams {
+        excludeType = listOf(roomType, null)
+        memberships = listOf(Membership.JOIN)
+    })
+
 fun getAllJoinedCirclesRoomsLiveData() = MatrixSessionProvider.getSessionOrThrow().roomService()
     .getRoomSummariesLive(roomSummaryQueryParams {
         excludeType = listOf(roomType, spaceType, null)
-- 
GitLab