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 821a9a9ae61a4bdba6d106d0fc50d18ce1a8675f..1c460d927b854ea61c8aaa0e6caddb56c9244d16 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 470cd82a2e4011ca872734193312f8ab1e8da18e..650d5913448afa108de461cb91094deb9ca566a8 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)