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 22328d3980..da09add2dc 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt @@ -469,9 +469,8 @@ class LoggedInFlowNode( .callback(object : ShareEntryPoint.Callback { override fun onDone(roomIds: List) { navigateUp() - if (roomIds.size == 1) { - val targetRoomId = roomIds.first() - backstack.push(NavTarget.Room(targetRoomId.toRoomIdOrAlias())) + roomIds.singleOrNull()?.let { roomId -> + backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias())) } } }) diff --git a/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt b/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt index e268419920..12d2f5bff5 100644 --- a/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt +++ b/features/share/impl/src/main/kotlin/io/element/android/features/share/impl/ShareNode.kt @@ -61,7 +61,7 @@ class ShareNode( } override fun onCancel() { - navigateUp() + onShareDone(emptyList()) } } @@ -82,12 +82,12 @@ class ShareNode( val state = presenter.present() ShareView( state = state, - onShareSuccess = ::onShareSuccess, + onShareSuccess = ::onShareDone, ) } } - private fun onShareSuccess(roomIds: List) { + private fun onShareDone(roomIds: List) { callbacks.forEach { it.onDone(roomIds) } } }