mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-20 11:08:31 +00:00
Report first render to main activity within nav hosts.
This commit is contained in:
committed by
jeffrey-signal
parent
5f5e0963e1
commit
24c8501985
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user