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 89af025d6e0a3f210d2e74d6a2f8530bb5d46b84..5914db03956e625b7a6b33d01a7bfe69dcdbdd59 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
@@ -1,5 +1,6 @@
 package org.futo.circles.core.utils
 
+import org.futo.circles.core.model.GALLERY_TYPE
 import org.futo.circles.core.model.GROUP_TYPE
 import org.futo.circles.core.provider.MatrixSessionProvider
 import org.matrix.android.sdk.api.session.room.model.Membership
@@ -9,13 +10,21 @@ import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams
 const val roomType = "m.room"
 const val spaceType = RoomType.SPACE
 
+private fun getRoomsLiveDataWithType(
+    type: String,
+    membershipFilter: List<Membership> = Membership.activeMemberships()
+) = MatrixSessionProvider.getSessionOrThrow().roomService()
+    .getRoomSummariesLive(roomSummaryQueryParams {
+        memberships = membershipFilter
+        includeType = listOf(type)
+        excludeType = listOf(roomType, spaceType)
+    })
+
 fun getGroupsLiveData(membershipFilter: List<Membership> = Membership.activeMemberships()) =
-    MatrixSessionProvider.getSessionOrThrow().roomService()
-        .getRoomSummariesLive(roomSummaryQueryParams {
-            memberships = membershipFilter
-            includeType = listOf(GROUP_TYPE)
-            excludeType = listOf(roomType, spaceType)
-        })
+    getRoomsLiveDataWithType(GROUP_TYPE, membershipFilter)
+
+fun getGalleriesLiveData(membershipFilter: List<Membership> = Membership.activeMemberships()) =
+    getRoomsLiveDataWithType(GALLERY_TYPE, membershipFilter)
 
 
 
diff --git a/gallery/src/main/java/org/futo/circles/gallery/feature/PhotosDataSource.kt b/gallery/src/main/java/org/futo/circles/gallery/feature/PhotosDataSource.kt
index eb044e1bda325fbad5ee1706324f17996e731799..1f5f9386510aae033c642b17b9dc332e76c0544c 100644
--- a/gallery/src/main/java/org/futo/circles/gallery/feature/PhotosDataSource.kt
+++ b/gallery/src/main/java/org/futo/circles/gallery/feature/PhotosDataSource.kt
@@ -6,33 +6,27 @@ import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.withContext
 import org.futo.circles.core.mapping.toJoinedGalleryListItem
-import org.futo.circles.core.model.GALLERY_TYPE
 import org.futo.circles.core.model.GalleryInvitesNotificationListItem
 import org.futo.circles.core.model.GalleryListItem
 import org.futo.circles.core.provider.MatrixSessionProvider
+import org.futo.circles.core.utils.getGalleriesLiveData
 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
 import javax.inject.Inject
 
 class PhotosDataSource @Inject constructor() {
 
     fun getGalleriesFlow() = combine(
-        MatrixSessionProvider.getSessionOrThrow().roomService()
-            .getRoomSummariesLive(roomSummaryQueryParams { excludeType = listOf(RoomType.SPACE) })
-            .asFlow(),
+        getGalleriesLiveData().asFlow(),
         MatrixSessionProvider.getSessionOrThrow().roomService().getChangeMembershipsLive().asFlow()
     ) { roomSummaries, _ ->
         withContext(Dispatchers.IO) { buildList(roomSummaries) }
     }.distinctUntilChanged()
 
 
-    private fun buildList(list: List<RoomSummary>): List<GalleryListItem> {
-        val galleries = list.filter { it.roomType == GALLERY_TYPE }
-        val joined = galleries.mapNotNull { it.takeIf { it.membership == Membership.JOIN } }
-        val invitesCount =
-            galleries.mapNotNull { it.takeIf { it.membership == Membership.INVITE } }.size
+    private fun buildList(galleries: List<RoomSummary>): List<GalleryListItem> {
+        val joined = galleries.filter { it.membership == Membership.JOIN }
+        val invitesCount = galleries.filter { it.membership == Membership.INVITE }.size
         return mutableListOf<GalleryListItem>().apply {
             if (invitesCount > 0)
                 add(GalleryInvitesNotificationListItem(invitesCount))