diff --git a/vector/src/main/java/im/vector/app/AppStateHandler.kt b/vector/src/main/java/im/vector/app/AppStateHandler.kt
index 1f090c89ab1..0df41d106de 100644
--- a/vector/src/main/java/im/vector/app/AppStateHandler.kt
+++ b/vector/src/main/java/im/vector/app/AppStateHandler.kt
@@ -22,17 +22,25 @@ import androidx.lifecycle.OnLifecycleEvent
import arrow.core.Option
import im.vector.app.core.di.ActiveSessionHolder
import im.vector.app.core.utils.BehaviorDataSource
-import im.vector.app.features.spaces.ALL_COMMUNITIES_GROUP_ID
import im.vector.app.features.ui.UiStateRepository
import io.reactivex.disposables.CompositeDisposable
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
-import org.matrix.android.sdk.api.MatrixPatterns
import org.matrix.android.sdk.api.extensions.tryOrNull
+import org.matrix.android.sdk.api.session.Session
+import org.matrix.android.sdk.api.session.group.model.GroupSummary
import org.matrix.android.sdk.api.session.room.model.RoomSummary
import javax.inject.Inject
import javax.inject.Singleton
+sealed class RoomGroupingMethod {
+ data class ByLegacyGroup(val groupSummary: GroupSummary?) : RoomGroupingMethod()
+ data class BySpace(val spaceSummary: RoomSummary?) : RoomGroupingMethod()
+}
+
+fun RoomGroupingMethod.space() = (this as? RoomGroupingMethod.BySpace)?.spaceSummary
+fun RoomGroupingMethod.group() = (this as? RoomGroupingMethod.ByLegacyGroup)?.groupSummary
+
/**
* This class handles the global app state.
* It requires to be added to ProcessLifecycleOwner.get().lifecycle
@@ -47,43 +55,65 @@ class AppStateHandler @Inject constructor(
private val compositeDisposable = CompositeDisposable()
- private val selectedSpaceDataSource = BehaviorDataSource