diff --git a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt index c76150a67e..ea78faf50f 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt @@ -79,7 +79,6 @@ import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.annotations.SessionCoroutineScope import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.core.EventId -import io.element.android.libraries.matrix.api.core.MAIN_SPACE import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomIdOrAlias import io.element.android.libraries.matrix.api.core.UserId @@ -211,8 +210,6 @@ class LoggedInFlowNode( onCreate = { analyticsRoomListStateWatcher.start() appNavigationStateService.onNavigateToSession(id, matrixClient.sessionId) - // TODO We do not support Space yet, so directly navigate to main space - appNavigationStateService.onNavigateToSpace(id, MAIN_SPACE) loggedInFlowProcessor.observeEvents(sessionCoroutineScope) matrixClient.sessionVerificationService.setListener(verificationListener) mediaPreviewConfigMigration() @@ -242,7 +239,6 @@ class LoggedInFlowNode( } }, onDestroy = { - appNavigationStateService.onLeavingSpace(id) appNavigationStateService.onLeavingSession(id) loggedInFlowProcessor.stopObserving() matrixClient.sessionVerificationService.setListener(null) diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/SpaceId.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/SpaceId.kt index 6acf2e43d8..0f270b3453 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/SpaceId.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/core/SpaceId.kt @@ -9,8 +9,3 @@ package io.element.android.libraries.matrix.api.core typealias SpaceId = RoomId - -/** - * Value to use when no space is selected by the user. - */ -val MAIN_SPACE = SpaceId("!mainSpace:local") diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotificationDrawerManager.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotificationDrawerManager.kt index cd3f0faf45..3dbf09e227 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotificationDrawerManager.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotificationDrawerManager.kt @@ -72,17 +72,16 @@ class DefaultNotificationDrawerManager( when (navigationState) { NavigationState.Root -> {} is NavigationState.Session -> {} - is NavigationState.Space -> {} is NavigationState.Room -> { // Cleanup notification for current room clearMessagesForRoom( - sessionId = navigationState.parentSpace.parentSession.sessionId, + sessionId = navigationState.parentSession.sessionId, roomId = navigationState.roomId, ) } is NavigationState.Thread -> { clearMessagesForThread( - sessionId = navigationState.parentRoom.parentSpace.parentSession.sessionId, + sessionId = navigationState.parentRoom.parentSession.sessionId, roomId = navigationState.parentRoom.roomId, threadId = navigationState.threadId, ) diff --git a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppNavigationStateService.kt b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppNavigationStateService.kt index 8387afca59..cf32bb0bf4 100644 --- a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppNavigationStateService.kt +++ b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppNavigationStateService.kt @@ -10,7 +10,6 @@ package io.element.android.services.appnavstate.api import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId -import io.element.android.libraries.matrix.api.core.SpaceId import io.element.android.libraries.matrix.api.core.ThreadId import kotlinx.coroutines.flow.StateFlow @@ -23,9 +22,6 @@ interface AppNavigationStateService { fun onNavigateToSession(owner: String, sessionId: SessionId) fun onLeavingSession(owner: String) - fun onNavigateToSpace(owner: String, spaceId: SpaceId) - fun onLeavingSpace(owner: String) - fun onNavigateToRoom(owner: String, roomId: RoomId) fun onLeavingRoom(owner: String) diff --git a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationState.kt b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationState.kt index 0ff606e051..c29e153a64 100644 --- a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationState.kt +++ b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationState.kt @@ -10,7 +10,6 @@ package io.element.android.services.appnavstate.api import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId -import io.element.android.libraries.matrix.api.core.SpaceId import io.element.android.libraries.matrix.api.core.ThreadId /** @@ -29,17 +28,10 @@ sealed class NavigationState(open val owner: String) { val sessionId: SessionId, ) : NavigationState(owner) - data class Space( - override val owner: String, - // Can be fake value, if no space is selected - val spaceId: SpaceId, - val parentSession: Session, - ) : NavigationState(owner) - data class Room( override val owner: String, val roomId: RoomId, - val parentSpace: Space, + val parentSession: Session, ) : NavigationState(owner) data class Thread( diff --git a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationStateExtension.kt b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationStateExtension.kt index bf336a38bf..d0b263d698 100644 --- a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationStateExtension.kt +++ b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/NavigationStateExtension.kt @@ -10,26 +10,14 @@ package io.element.android.services.appnavstate.api import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId -import io.element.android.libraries.matrix.api.core.SpaceId import io.element.android.libraries.matrix.api.core.ThreadId fun NavigationState.currentSessionId(): SessionId? { return when (this) { NavigationState.Root -> null is NavigationState.Session -> sessionId - is NavigationState.Space -> parentSession.sessionId - is NavigationState.Room -> parentSpace.parentSession.sessionId - is NavigationState.Thread -> parentRoom.parentSpace.parentSession.sessionId - } -} - -fun NavigationState.currentSpaceId(): SpaceId? { - return when (this) { - NavigationState.Root -> null - is NavigationState.Session -> null - is NavigationState.Space -> spaceId - is NavigationState.Room -> parentSpace.spaceId - is NavigationState.Thread -> parentRoom.parentSpace.spaceId + is NavigationState.Room -> parentSession.sessionId + is NavigationState.Thread -> parentRoom.parentSession.sessionId } } @@ -37,7 +25,6 @@ fun NavigationState.currentRoomId(): RoomId? { return when (this) { NavigationState.Root -> null is NavigationState.Session -> null - is NavigationState.Space -> null is NavigationState.Room -> roomId is NavigationState.Thread -> parentRoom.roomId } @@ -47,7 +34,6 @@ fun NavigationState.currentThreadId(): ThreadId? { return when (this) { NavigationState.Root -> null is NavigationState.Session -> null - is NavigationState.Space -> null is NavigationState.Room -> null is NavigationState.Thread -> threadId } diff --git a/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppNavigationStateService.kt b/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppNavigationStateService.kt index e820bf9262..cdc8f7b07f 100644 --- a/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppNavigationStateService.kt +++ b/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppNavigationStateService.kt @@ -15,7 +15,6 @@ import io.element.android.libraries.core.log.logger.LoggerTag import io.element.android.libraries.di.annotations.AppCoroutineScope import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId -import io.element.android.libraries.matrix.api.core.SpaceId import io.element.android.libraries.matrix.api.core.ThreadId import io.element.android.services.appnavstate.api.AppForegroundStateService import io.element.android.services.appnavstate.api.AppNavigationState @@ -62,7 +61,6 @@ class DefaultAppNavigationStateService( Timber.tag(loggerTag.value).d("Navigating to session $sessionId. Current state: $currentValue") val newValue: NavigationState.Session = when (currentValue) { is NavigationState.Session, - is NavigationState.Space, is NavigationState.Room, is NavigationState.Thread, is NavigationState.Root -> NavigationState.Session(owner, sessionId) @@ -70,28 +68,14 @@ class DefaultAppNavigationStateService( state.getAndUpdate { it.copy(navigationState = newValue) } } - override fun onNavigateToSpace(owner: String, spaceId: SpaceId) { - val currentValue = state.value.navigationState - Timber.tag(loggerTag.value).d("Navigating to space $spaceId. Current state: $currentValue") - val newValue: NavigationState.Space = when (currentValue) { - NavigationState.Root -> return logError("onNavigateToSession()") - is NavigationState.Session -> NavigationState.Space(owner, spaceId, currentValue) - is NavigationState.Space -> NavigationState.Space(owner, spaceId, currentValue.parentSession) - is NavigationState.Room -> NavigationState.Space(owner, spaceId, currentValue.parentSpace.parentSession) - is NavigationState.Thread -> NavigationState.Space(owner, spaceId, currentValue.parentRoom.parentSpace.parentSession) - } - state.getAndUpdate { it.copy(navigationState = newValue) } - } - override fun onNavigateToRoom(owner: String, roomId: RoomId) { val currentValue = state.value.navigationState Timber.tag(loggerTag.value).d("Navigating to room $roomId. Current state: $currentValue") val newValue: NavigationState.Room = when (currentValue) { NavigationState.Root -> return logError("onNavigateToSession()") - is NavigationState.Session -> return logError("onNavigateToSpace()") - is NavigationState.Space -> NavigationState.Room(owner, roomId, currentValue) - is NavigationState.Room -> NavigationState.Room(owner, roomId, currentValue.parentSpace) - is NavigationState.Thread -> NavigationState.Room(owner, roomId, currentValue.parentRoom.parentSpace) + is NavigationState.Session -> NavigationState.Room(owner, roomId, currentValue) + is NavigationState.Room -> NavigationState.Room(owner, roomId, currentValue.parentSession) + is NavigationState.Thread -> NavigationState.Room(owner, roomId, currentValue.parentRoom.parentSession) } state.getAndUpdate { it.copy(navigationState = newValue) } } @@ -101,8 +85,7 @@ class DefaultAppNavigationStateService( Timber.tag(loggerTag.value).d("Navigating to thread $threadId. Current state: $currentValue") val newValue: NavigationState.Thread = when (currentValue) { NavigationState.Root -> return logError("onNavigateToSession()") - is NavigationState.Session -> return logError("onNavigateToSpace()") - is NavigationState.Space -> return logError("onNavigateToRoom()") + is NavigationState.Session -> return logError("onNavigateToRoom()") is NavigationState.Room -> NavigationState.Thread(owner, threadId, currentValue) is NavigationState.Thread -> NavigationState.Thread(owner, threadId, currentValue.parentRoom) } @@ -115,8 +98,7 @@ class DefaultAppNavigationStateService( if (!currentValue.assertOwner(owner)) return val newValue: NavigationState.Room = when (currentValue) { NavigationState.Root -> return logError("onNavigateToSession()") - is NavigationState.Session -> return logError("onNavigateToSpace()") - is NavigationState.Space -> return logError("onNavigateToRoom()") + is NavigationState.Session -> return logError("onNavigateToRoom()") is NavigationState.Room -> return logError("onNavigateToThread()") is NavigationState.Thread -> currentValue.parentRoom } @@ -127,26 +109,11 @@ class DefaultAppNavigationStateService( val currentValue = state.value.navigationState Timber.tag(loggerTag.value).d("Leaving room. Current state: $currentValue") if (!currentValue.assertOwner(owner)) return - val newValue: NavigationState.Space = when (currentValue) { - NavigationState.Root -> return logError("onNavigateToSession()") - is NavigationState.Session -> return logError("onNavigateToSpace()") - is NavigationState.Space -> return logError("onNavigateToRoom()") - is NavigationState.Room -> currentValue.parentSpace - is NavigationState.Thread -> currentValue.parentRoom.parentSpace - } - state.getAndUpdate { it.copy(navigationState = newValue) } - } - - override fun onLeavingSpace(owner: String) { - val currentValue = state.value.navigationState - Timber.tag(loggerTag.value).d("Leaving space. Current state: $currentValue") - if (!currentValue.assertOwner(owner)) return val newValue: NavigationState.Session = when (currentValue) { NavigationState.Root -> return logError("onNavigateToSession()") - is NavigationState.Session -> return logError("onNavigateToSpace()") - is NavigationState.Space -> currentValue.parentSession - is NavigationState.Room -> currentValue.parentSpace.parentSession - is NavigationState.Thread -> currentValue.parentRoom.parentSpace.parentSession + is NavigationState.Session -> return logError("onNavigateToRoom()") + is NavigationState.Room -> currentValue.parentSession + is NavigationState.Thread -> currentValue.parentRoom.parentSession } state.getAndUpdate { it.copy(navigationState = newValue) } } diff --git a/services/appnavstate/impl/src/test/kotlin/io/element/android/services/appnavstate/impl/DefaultNavigationStateServiceTest.kt b/services/appnavstate/impl/src/test/kotlin/io/element/android/services/appnavstate/impl/DefaultNavigationStateServiceTest.kt index 56f9c5e986..e29177f382 100644 --- a/services/appnavstate/impl/src/test/kotlin/io/element/android/services/appnavstate/impl/DefaultNavigationStateServiceTest.kt +++ b/services/appnavstate/impl/src/test/kotlin/io/element/android/services/appnavstate/impl/DefaultNavigationStateServiceTest.kt @@ -13,15 +13,12 @@ import io.element.android.libraries.matrix.test.A_ROOM_ID import io.element.android.libraries.matrix.test.A_ROOM_ID_2 import io.element.android.libraries.matrix.test.A_SESSION_ID import io.element.android.libraries.matrix.test.A_SESSION_ID_2 -import io.element.android.libraries.matrix.test.A_SPACE_ID -import io.element.android.libraries.matrix.test.A_SPACE_ID_2 import io.element.android.libraries.matrix.test.A_THREAD_ID import io.element.android.libraries.matrix.test.A_THREAD_ID_2 import io.element.android.services.appnavstate.api.AppNavigationStateService import io.element.android.services.appnavstate.api.NavigationState import io.element.android.services.appnavstate.test.A_ROOM_OWNER import io.element.android.services.appnavstate.test.A_SESSION_OWNER -import io.element.android.services.appnavstate.test.A_SPACE_OWNER import io.element.android.services.appnavstate.test.A_THREAD_OWNER import io.element.android.services.appnavstate.test.FakeAppForegroundStateService import kotlinx.coroutines.flow.first @@ -33,22 +30,17 @@ class DefaultNavigationStateServiceTest { private val navigationStateRoot = NavigationState.Root private val navigationStateSession = NavigationState.Session( owner = A_SESSION_OWNER, - sessionId = A_SESSION_ID - ) - private val navigationStateSpace = NavigationState.Space( - owner = A_SPACE_OWNER, - spaceId = A_SPACE_ID, - parentSession = navigationStateSession + sessionId = A_SESSION_ID, ) private val navigationStateRoom = NavigationState.Room( owner = A_ROOM_OWNER, roomId = A_ROOM_ID, - parentSpace = navigationStateSpace + parentSession = navigationStateSession, ) private val navigationStateThread = NavigationState.Thread( owner = A_THREAD_OWNER, threadId = A_THREAD_ID, - parentRoom = navigationStateRoom + parentRoom = navigationStateRoom, ) @Test @@ -57,8 +49,6 @@ class DefaultNavigationStateServiceTest { assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot) service.onNavigateToSession(A_SESSION_OWNER, A_SESSION_ID) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) - service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) service.onNavigateToRoom(A_ROOM_OWNER, A_ROOM_ID) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoom) service.onNavigateToThread(A_THREAD_OWNER, A_THREAD_ID) @@ -67,8 +57,6 @@ class DefaultNavigationStateServiceTest { service.onLeavingThread(A_THREAD_OWNER) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoom) service.onLeavingRoom(A_ROOM_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) - service.onLeavingSpace(A_SPACE_OWNER) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) service.onLeavingSession(A_SESSION_OWNER) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot) @@ -77,7 +65,7 @@ class DefaultNavigationStateServiceTest { @Test fun testFailure() = runTest { val service = createStateService() - service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID) + service.onNavigateToRoom(A_ROOM_OWNER, A_ROOM_ID) assertThat(service.appNavigationState.value.navigationState).isEqualTo(NavigationState.Root) } @@ -92,11 +80,6 @@ class DefaultNavigationStateServiceTest { service.navigateToSession() service.onNavigateToThread(A_THREAD_OWNER, A_THREAD_ID) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) - // From space (no effect) - service.reset() - service.navigateToSpace() - service.onNavigateToThread(A_THREAD_OWNER, A_THREAD_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) // From room service.reset() service.navigateToRoom() @@ -116,15 +99,10 @@ class DefaultNavigationStateServiceTest { // From root (no effect) service.onNavigateToRoom(A_ROOM_OWNER, A_ROOM_ID) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot) - // From session (no effect) + // From session service.reset() service.navigateToSession() service.onNavigateToRoom(A_ROOM_OWNER, A_ROOM_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) - // From space - service.reset() - service.navigateToSpace() - service.onNavigateToRoom(A_ROOM_OWNER, A_ROOM_ID) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoom) // From room service.reset() @@ -139,35 +117,6 @@ class DefaultNavigationStateServiceTest { assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoom) } - @Test - fun testOnNavigateToSpace() = runTest { - val service = createStateService() - // From root (no effect) - service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot) - // From session - service.reset() - service.navigateToSession() - service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) - // From space - service.reset() - service.navigateToSpace() - // Navigate to another space - service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID_2) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace.copy(spaceId = A_SPACE_ID_2)) - // From room (no effect) - service.reset() - service.navigateToRoom() - service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) - // From thread (no effect) - service.reset() - service.navigateToThread() - service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) - } - @Test fun testOnNavigateToSession() = runTest { val service = createStateService() @@ -180,11 +129,6 @@ class DefaultNavigationStateServiceTest { // Navigate to another session service.onNavigateToSession(A_SESSION_OWNER, A_SESSION_ID_2) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession.copy(sessionId = A_SESSION_ID_2)) - // From space - service.reset() - service.navigateToSpace() - service.onNavigateToSession(A_SESSION_OWNER, A_SESSION_ID) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) // From room service.reset() service.navigateToRoom() @@ -208,11 +152,6 @@ class DefaultNavigationStateServiceTest { service.navigateToSession() service.onLeavingThread(A_THREAD_OWNER) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) - // From space (no effect) - service.reset() - service.navigateToSpace() - service.onLeavingThread(A_THREAD_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) // From room (no effect) service.reset() service.navigateToRoom() @@ -236,16 +175,11 @@ class DefaultNavigationStateServiceTest { service.navigateToSession() service.onLeavingRoom(A_ROOM_OWNER) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) - // From space (no effect) - service.reset() - service.navigateToSpace() - service.onLeavingRoom(A_ROOM_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) // From room service.reset() service.navigateToRoom() service.onLeavingRoom(A_ROOM_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) + assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) // From thread (no effect) service.reset() service.navigateToThread() @@ -253,34 +187,6 @@ class DefaultNavigationStateServiceTest { assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateThread) } - @Test - fun testOnLeavingSpace() = runTest { - val service = createStateService() - // From root (no effect) - service.onLeavingSpace(A_SPACE_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot) - // From session (no effect) - service.reset() - service.navigateToSession() - service.onLeavingSpace(A_SPACE_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) - // From space - service.reset() - service.navigateToSpace() - service.onLeavingSpace(A_SPACE_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession) - // From room (no effect) - service.reset() - service.navigateToRoom() - service.onLeavingSpace(A_SPACE_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoom) - // From thread (no effect) - service.reset() - service.navigateToThread() - service.onLeavingSpace(A_SPACE_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateThread) - } - @Test fun testOnLeavingSession() = runTest { val service = createStateService() @@ -292,11 +198,6 @@ class DefaultNavigationStateServiceTest { service.navigateToSession() service.onLeavingSession(A_SESSION_OWNER) assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot) - // From space (no effect) - service.reset() - service.navigateToSpace() - service.onLeavingSession(A_SESSION_OWNER) - assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSpace) // From room (no effect) service.reset() service.navigateToRoom() @@ -318,13 +219,8 @@ class DefaultNavigationStateServiceTest { onNavigateToSession(A_SESSION_OWNER, A_SESSION_ID) } - private fun AppNavigationStateService.navigateToSpace() { - navigateToSession() - onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID) - } - private fun AppNavigationStateService.navigateToRoom() { - navigateToSpace() + navigateToSession() onNavigateToRoom(A_ROOM_OWNER, A_ROOM_ID) } diff --git a/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/AppNavStateFixture.kt b/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/AppNavStateFixture.kt index e9c2f6d2fa..7860320eee 100644 --- a/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/AppNavStateFixture.kt +++ b/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/AppNavStateFixture.kt @@ -8,21 +8,17 @@ package io.element.android.services.appnavstate.test -import io.element.android.libraries.matrix.api.core.MAIN_SPACE import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId -import io.element.android.libraries.matrix.api.core.SpaceId import io.element.android.libraries.matrix.api.core.ThreadId import io.element.android.services.appnavstate.api.NavigationState const val A_SESSION_OWNER = "aSessionOwner" -const val A_SPACE_OWNER = "aSpaceOwner" const val A_ROOM_OWNER = "aRoomOwner" const val A_THREAD_OWNER = "aThreadOwner" fun aNavigationState( sessionId: SessionId? = null, - spaceId: SpaceId? = MAIN_SPACE, roomId: RoomId? = null, threadId: ThreadId? = null, ): NavigationState { @@ -30,14 +26,10 @@ fun aNavigationState( return NavigationState.Root } val session = NavigationState.Session(A_SESSION_OWNER, sessionId) - if (spaceId == null) { + if (roomId == null) { return session } - val space = NavigationState.Space(A_SPACE_OWNER, spaceId, session) - if (roomId == null) { - return space - } - val room = NavigationState.Room(A_ROOM_OWNER, roomId, space) + val room = NavigationState.Room(A_ROOM_OWNER, roomId, session) if (threadId == null) { return room } diff --git a/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppNavigationStateService.kt b/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppNavigationStateService.kt index d01bc4f34b..fd23b7c422 100644 --- a/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppNavigationStateService.kt +++ b/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppNavigationStateService.kt @@ -10,7 +10,6 @@ package io.element.android.services.appnavstate.test import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId -import io.element.android.libraries.matrix.api.core.SpaceId import io.element.android.libraries.matrix.api.core.ThreadId import io.element.android.services.appnavstate.api.AppNavigationState import io.element.android.services.appnavstate.api.AppNavigationStateService @@ -28,15 +27,9 @@ class FakeAppNavigationStateService( override fun onNavigateToSession(owner: String, sessionId: SessionId) = Unit override fun onLeavingSession(owner: String) = Unit - override fun onNavigateToSpace(owner: String, spaceId: SpaceId) = Unit - - override fun onLeavingSpace(owner: String) = Unit - override fun onNavigateToRoom(owner: String, roomId: RoomId) = Unit - override fun onLeavingRoom(owner: String) = Unit override fun onNavigateToThread(owner: String, threadId: ThreadId) = Unit - override fun onLeavingThread(owner: String) = Unit }