Report first render to main activity within nav hosts.

This commit is contained in:
Alex Hart
2025-10-29 12:56:38 -03:00
committed by jeffrey-signal
parent 5f5e0963e1
commit 24c8501985
2 changed files with 21 additions and 0 deletions

View File

@@ -5,12 +5,16 @@
package org.thoughtcrime.securesms.main
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.platform.LocalContext
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import org.thoughtcrime.securesms.MainNavigator
import org.thoughtcrime.securesms.calls.links.EditCallLinkNameScreen
import org.thoughtcrime.securesms.calls.links.details.CallLinkDetailsScreen
import org.thoughtcrime.securesms.serialization.JsonSerializableNavType
@@ -27,6 +31,8 @@ fun NavGraphBuilder.callNavGraphBuilder(navHostController: NavHostController) {
typeOf<CallLinkRoomId>() to JsonSerializableNavType(CallLinkRoomId.serializer())
)
) {
informNavigatorWeAreReady()
val route = it.toRoute<MainNavigationDetailLocation.Calls.CallLinks.CallLinkDetails>()
CallLinkDetailsScreen(roomId = route.callLinkRoomId)
@@ -37,6 +43,8 @@ fun NavGraphBuilder.callNavGraphBuilder(navHostController: NavHostController) {
typeOf<CallLinkRoomId>() to JsonSerializableNavType(CallLinkRoomId.serializer())
)
) {
informNavigatorWeAreReady()
val route = it.toRoute<MainNavigationDetailLocation.Calls.CallLinks.EditCallLinkName>()
val parent = navHostController.previousBackStackEntry ?: return@composable
@@ -45,3 +53,11 @@ fun NavGraphBuilder.callNavGraphBuilder(navHostController: NavHostController) {
}
}
}
@Composable
private fun informNavigatorWeAreReady() {
val navigator = LocalContext.current as? MainNavigator.NavigatorProvider
LaunchedEffect(navigator) {
navigator?.onFirstRender()
}
}

View File

@@ -42,6 +42,7 @@ import androidx.navigation.toRoute
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.thoughtcrime.securesms.MainNavigator
import org.thoughtcrime.securesms.conversation.ConversationArgs
import org.thoughtcrime.securesms.conversation.ConversationIntents
import org.thoughtcrime.securesms.conversation.v2.ConversationFragment
@@ -85,6 +86,10 @@ fun NavGraphBuilder.chatNavGraphBuilder(
}
}
LaunchedEffect(shouldDisplayFragment) {
(context as? MainNavigator.NavigatorProvider)?.onFirstRender()
}
if (bitmap != null) {
Image(
bitmap = bitmap,