From 506870302ee7b58c1c9ef3de62ed1f2098732f4c Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 5 May 2021 22:12:29 +0200 Subject: [PATCH 1/2] Fix unread badges and invite filtering --- .../app/features/home/HomeDetailViewModel.kt | 4 ++ .../room/list/SpaceRoomListSectionBuilder.kt | 43 +------------------ 2 files changed, 5 insertions(+), 42 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt b/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt index 91f3877fab..c375d7b38b 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt @@ -166,10 +166,12 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho // TODO!! } is RoomGroupingMethod.BySpace -> { + val activeSpaceRoomId = groupingMethod.spaceSummary?.roomId val dmInvites = session.getRoomSummaries( roomSummaryQueryParams { memberships = listOf(Membership.INVITE) roomCategoryFilter = RoomCategoryFilter.ONLY_DM + activeSpaceId = activeSpaceRoomId?.let { ActiveSpaceFilter.ActiveSpace(it) } ?: ActiveSpaceFilter.None } ).size @@ -177,6 +179,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho roomSummaryQueryParams { memberships = listOf(Membership.INVITE) roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS + activeSpaceId = ActiveSpaceFilter.ActiveSpace(groupingMethod.spaceSummary?.roomId) } ).size @@ -184,6 +187,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho roomSummaryQueryParams { memberships = listOf(Membership.JOIN) roomCategoryFilter = RoomCategoryFilter.ONLY_DM + activeSpaceId = activeSpaceRoomId?.let { ActiveSpaceFilter.ActiveSpace(it) } ?: ActiveSpaceFilter.None } ) diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt b/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt index 37c1228b50..4124aa4b32 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt @@ -129,7 +129,7 @@ class SpaceRoomListSectionBuilder( sections, activeSpaceAwareQueries, R.string.invitations_header, true, - RoomListViewModel.SpaceFilterStrategy.NONE + RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL ) { it.memberships = listOf(Membership.INVITE) it.roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS @@ -259,47 +259,6 @@ class SpaceRoomListSectionBuilder( it.roomCategoryFilter = RoomCategoryFilter.ONLY_DM it.roomTagQueryFilter = RoomTagQueryFilter(false, null, null) } - -// // For DMs we still need some post query filter :/ -// // It's probably less important as home is not filtering at all -// val dmList = MutableLiveData>() -// Observables.combineLatest( -// session.getRoomSummariesLive( -// roomSummaryQueryParams { -// memberships = listOf(Membership.JOIN) -// roomCategoryFilter = RoomCategoryFilter.ONLY_DM -// } -// ).asObservable(), -// appStateHandler.selectedSpaceDataSource.observe() -// -// ) { rooms, currentSpaceOption -> -// val currentSpace = currentSpaceOption.orNull() -// .takeIf { -// // the +ALL trick is annoying, should find a way to fix that at the source! -// MatrixPatterns.isRoomId(it?.roomId) -// } -// if (currentSpace == null) { -// rooms -// } else { -// rooms.filter { -// it.otherMemberIds -// .intersect(currentSpace.otherMemberIds) -// .isNotEmpty() -// } -// } -// }.subscribe { -// dmList.postValue(it) -// }.also { -// onDisposable.invoke(it) -// } -// -// sections.add( -// RoomsSection( -// sectionName = stringProvider.getString(R.string.bottom_action_people_x), -// liveList = dmList, -// notifyOfLocalEcho = false -// ) -// ) } private fun addSection(sections: MutableList, From efe5176286952a7613d93756a9a2bcd7811cb6c6 Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 5 May 2021 22:36:27 +0200 Subject: [PATCH 2/2] rename activeSpaceId to activeSpaceFilter --- .../android/sdk/session/space/SpaceCreationTest.kt | 2 +- .../android/sdk/session/space/SpaceHierarchyTest.kt | 2 +- .../sdk/api/session/room/RoomSummaryQueryParams.kt | 6 +++--- .../session/room/summary/RoomSummaryDataSource.kt | 8 ++++---- .../im/vector/app/features/home/HomeDetailViewModel.kt | 8 ++++---- .../app/features/home/UnreadMessagesSharedViewModel.kt | 8 ++++---- .../home/room/list/SpaceRoomListSectionBuilder.kt | 10 +++++----- .../vector/app/features/spaces/SpacesListViewModel.kt | 4 ++-- .../features/spaces/manage/SpaceAddRoomsViewModel.kt | 4 ++-- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceCreationTest.kt b/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceCreationTest.kt index 9bdf85f1a8..a1744a0dae 100644 --- a/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceCreationTest.kt +++ b/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceCreationTest.kt @@ -210,7 +210,7 @@ class SpaceCreationTest : InstrumentedTest { val childCount = bobSession.getRoomSummaries( roomSummaryQueryParams { - activeSpaceId = ActiveSpaceFilter.ActiveSpace(spaceId) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(spaceId) } ).size diff --git a/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceHierarchyTest.kt b/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceHierarchyTest.kt index facb537225..521b5805bd 100644 --- a/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceHierarchyTest.kt +++ b/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/space/SpaceHierarchyTest.kt @@ -248,7 +248,7 @@ class SpaceHierarchyTest : InstrumentedTest { Thread.sleep(2_000) val orphansUpdate = session.getRoomSummaries(roomSummaryQueryParams { - activeSpaceId = ActiveSpaceFilter.ActiveSpace(null) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(null) }) assertEquals("Unexpected number of orphan rooms ${orphansUpdate.map { it.name }}", 2, orphansUpdate.size) } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomSummaryQueryParams.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomSummaryQueryParams.kt index 42dbecdaad..88ec2de768 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomSummaryQueryParams.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomSummaryQueryParams.kt @@ -58,7 +58,7 @@ data class RoomSummaryQueryParams( val roomTagQueryFilter: RoomTagQueryFilter?, val excludeType: List?, val includeType: List?, - val activeSpaceId: ActiveSpaceFilter?, + val activeSpaceFilter: ActiveSpaceFilter?, var activeGroupId: String? = null ) { @@ -72,7 +72,7 @@ data class RoomSummaryQueryParams( var roomTagQueryFilter: RoomTagQueryFilter? = null var excludeType: List? = listOf(RoomType.SPACE) var includeType: List? = null - var activeSpaceId: ActiveSpaceFilter = ActiveSpaceFilter.None + var activeSpaceFilter: ActiveSpaceFilter = ActiveSpaceFilter.None var activeGroupId: String? = null fun build() = RoomSummaryQueryParams( @@ -84,7 +84,7 @@ data class RoomSummaryQueryParams( roomTagQueryFilter = roomTagQueryFilter, excludeType = excludeType, includeType = includeType, - activeSpaceId = activeSpaceId, + activeSpaceFilter = activeSpaceFilter, activeGroupId = activeGroupId ) } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryDataSource.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryDataSource.kt index 887219fdd8..126458b082 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryDataSource.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryDataSource.kt @@ -282,19 +282,19 @@ internal class RoomSummaryDataSource @Inject constructor(@SessionDatabase privat } // Timber.w("VAL: activeSpaceId : ${queryParams.activeSpaceId}") - when (queryParams.activeSpaceId) { + when (queryParams.activeSpaceFilter) { is ActiveSpaceFilter.ActiveSpace -> { // It's annoying but for now realm java does not support querying in primitive list :/ // https://github.com/realm/realm-java/issues/5361 - if (queryParams.activeSpaceId.currentSpaceId == null) { + if (queryParams.activeSpaceFilter.currentSpaceId == null) { // orphan rooms query.isNull(RoomSummaryEntityFields.FLATTEN_PARENT_IDS) } else { - query.contains(RoomSummaryEntityFields.FLATTEN_PARENT_IDS, queryParams.activeSpaceId.currentSpaceId) + query.contains(RoomSummaryEntityFields.FLATTEN_PARENT_IDS, queryParams.activeSpaceFilter.currentSpaceId) } } is ActiveSpaceFilter.ExcludeSpace -> { - query.not().contains(RoomSummaryEntityFields.FLATTEN_PARENT_IDS, queryParams.activeSpaceId.spaceId) + query.not().contains(RoomSummaryEntityFields.FLATTEN_PARENT_IDS, queryParams.activeSpaceFilter.spaceId) } else -> { // nop diff --git a/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt b/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt index c375d7b38b..be5c72330e 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt @@ -171,7 +171,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho roomSummaryQueryParams { memberships = listOf(Membership.INVITE) roomCategoryFilter = RoomCategoryFilter.ONLY_DM - activeSpaceId = activeSpaceRoomId?.let { ActiveSpaceFilter.ActiveSpace(it) } ?: ActiveSpaceFilter.None + activeSpaceFilter = activeSpaceRoomId?.let { ActiveSpaceFilter.ActiveSpace(it) } ?: ActiveSpaceFilter.None } ).size @@ -179,7 +179,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho roomSummaryQueryParams { memberships = listOf(Membership.INVITE) roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS - activeSpaceId = ActiveSpaceFilter.ActiveSpace(groupingMethod.spaceSummary?.roomId) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(groupingMethod.spaceSummary?.roomId) } ).size @@ -187,7 +187,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho roomSummaryQueryParams { memberships = listOf(Membership.JOIN) roomCategoryFilter = RoomCategoryFilter.ONLY_DM - activeSpaceId = activeSpaceRoomId?.let { ActiveSpaceFilter.ActiveSpace(it) } ?: ActiveSpaceFilter.None + activeSpaceFilter = activeSpaceRoomId?.let { ActiveSpaceFilter.ActiveSpace(it) } ?: ActiveSpaceFilter.None } ) @@ -195,7 +195,7 @@ class HomeDetailViewModel @AssistedInject constructor(@Assisted initialState: Ho roomSummaryQueryParams { memberships = listOf(Membership.JOIN) roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS - activeSpaceId = ActiveSpaceFilter.ActiveSpace(groupingMethod.spaceSummary?.roomId) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(groupingMethod.spaceSummary?.roomId) } ) diff --git a/vector/src/main/java/im/vector/app/features/home/UnreadMessagesSharedViewModel.kt b/vector/src/main/java/im/vector/app/features/home/UnreadMessagesSharedViewModel.kt index 77ffe903fc..43c878624b 100644 --- a/vector/src/main/java/im/vector/app/features/home/UnreadMessagesSharedViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/UnreadMessagesSharedViewModel.kt @@ -79,7 +79,7 @@ class UnreadMessagesSharedViewModel @AssistedInject constructor(@Assisted initia session.getPagedRoomSummariesLive( roomSummaryQueryParams { this.memberships = listOf(Membership.JOIN) - this.activeSpaceId = ActiveSpaceFilter.ActiveSpace(null) + this.activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(null) }, sortOrder = RoomSortOrder.NONE ).asObservable() .throttleFirst(300, TimeUnit.MILLISECONDS) @@ -87,13 +87,13 @@ class UnreadMessagesSharedViewModel @AssistedInject constructor(@Assisted initia val counts = session.getNotificationCountForRooms( roomSummaryQueryParams { this.memberships = listOf(Membership.JOIN) - this.activeSpaceId = ActiveSpaceFilter.ActiveSpace(null) + this.activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(null) } ) val invites = session.getRoomSummaries( roomSummaryQueryParams { this.memberships = listOf(Membership.INVITE) - this.activeSpaceId = ActiveSpaceFilter.ActiveSpace(null) + this.activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(null) } ).size copy( @@ -129,7 +129,7 @@ class UnreadMessagesSharedViewModel @AssistedInject constructor(@Assisted initia val counts = session.getNotificationCountForRooms( roomSummaryQueryParams { this.memberships = listOf(Membership.JOIN) - this.activeSpaceId = ActiveSpaceFilter.ActiveSpace(null) + this.activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(null) } ) val rootCounts = session.spaceService().getRootSpaceSummaries() diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt b/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt index 4124aa4b32..f7e527a710 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/SpaceRoomListSectionBuilder.kt @@ -282,7 +282,7 @@ class SpaceRoomListSectionBuilder( override fun updateForSpaceId(roomId: String?) { it.updateQuery { it.copy( - activeSpaceId = ActiveSpaceFilter.ActiveSpace(roomId) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(roomId) ) } } @@ -294,13 +294,13 @@ class SpaceRoomListSectionBuilder( if (roomId != null) { it.updateQuery { it.copy( - activeSpaceId = ActiveSpaceFilter.ActiveSpace(roomId) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(roomId) ) } } else { it.updateQuery { it.copy( - activeSpaceId = ActiveSpaceFilter.None + activeSpaceFilter = ActiveSpaceFilter.None ) } } @@ -351,7 +351,7 @@ class SpaceRoomListSectionBuilder( return when (spaceFilter) { RoomListViewModel.SpaceFilterStrategy.NORMAL -> { copy( - activeSpaceId = ActiveSpaceFilter.ActiveSpace(currentSpace) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(currentSpace) ) } RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL -> { @@ -359,7 +359,7 @@ class SpaceRoomListSectionBuilder( this } else { copy( - activeSpaceId = ActiveSpaceFilter.ActiveSpace(currentSpace) + activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(currentSpace) ) } } diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpacesListViewModel.kt b/vector/src/main/java/im/vector/app/features/spaces/SpacesListViewModel.kt index c79f6b12a4..9b2cffc59c 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SpacesListViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SpacesListViewModel.kt @@ -111,7 +111,7 @@ class SpacesListViewModel @AssistedInject constructor(@Assisted initialState: Sp session.getPagedRoomSummariesLive( roomSummaryQueryParams { this.memberships = listOf(Membership.JOIN) - this.activeSpaceId = ActiveSpaceFilter.ActiveSpace(null) + this.activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(null) }, sortOrder = RoomSortOrder.NONE ).asObservable() .throttleFirst(300, TimeUnit.MILLISECONDS) @@ -120,7 +120,7 @@ class SpacesListViewModel @AssistedInject constructor(@Assisted initialState: Sp val counts = session.getNotificationCountForRooms( roomSummaryQueryParams { this.memberships = listOf(Membership.JOIN) - this.activeSpaceId = ActiveSpaceFilter.ActiveSpace(null) + this.activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(null) } ) setState { diff --git a/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomsViewModel.kt b/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomsViewModel.kt index 5b1674d44a..f64a4c897b 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomsViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomsViewModel.kt @@ -60,7 +60,7 @@ class SpaceAddRoomsViewModel @AssistedInject constructor( this.memberships = listOf(Membership.JOIN) this.excludeType = null this.includeType = listOf(RoomType.SPACE) - this.activeSpaceId = ActiveSpaceFilter.ExcludeSpace(initialState.spaceId) + this.activeSpaceFilter = ActiveSpaceFilter.ExcludeSpace(initialState.spaceId) this.displayName = QueryStringValue.Contains(initialState.currentFilter, QueryStringValue.Case.INSENSITIVE) }, pagedListConfig = PagedList.Config.Builder() @@ -80,7 +80,7 @@ class SpaceAddRoomsViewModel @AssistedInject constructor( this.excludeType = listOf(RoomType.SPACE) this.includeType = null this.roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS - this.activeSpaceId = ActiveSpaceFilter.ExcludeSpace(initialState.spaceId) + this.activeSpaceFilter = ActiveSpaceFilter.ExcludeSpace(initialState.spaceId) this.displayName = QueryStringValue.Contains(initialState.currentFilter, QueryStringValue.Case.INSENSITIVE) }, pagedListConfig = PagedList.Config.Builder()