mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-21 03:28:47 +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
|
package org.thoughtcrime.securesms.main
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
||||||
import androidx.navigation.NavGraphBuilder
|
import androidx.navigation.NavGraphBuilder
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.compose.composable
|
import androidx.navigation.compose.composable
|
||||||
import androidx.navigation.toRoute
|
import androidx.navigation.toRoute
|
||||||
|
import org.thoughtcrime.securesms.MainNavigator
|
||||||
import org.thoughtcrime.securesms.calls.links.EditCallLinkNameScreen
|
import org.thoughtcrime.securesms.calls.links.EditCallLinkNameScreen
|
||||||
import org.thoughtcrime.securesms.calls.links.details.CallLinkDetailsScreen
|
import org.thoughtcrime.securesms.calls.links.details.CallLinkDetailsScreen
|
||||||
import org.thoughtcrime.securesms.serialization.JsonSerializableNavType
|
import org.thoughtcrime.securesms.serialization.JsonSerializableNavType
|
||||||
@@ -27,6 +31,8 @@ fun NavGraphBuilder.callNavGraphBuilder(navHostController: NavHostController) {
|
|||||||
typeOf<CallLinkRoomId>() to JsonSerializableNavType(CallLinkRoomId.serializer())
|
typeOf<CallLinkRoomId>() to JsonSerializableNavType(CallLinkRoomId.serializer())
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
informNavigatorWeAreReady()
|
||||||
|
|
||||||
val route = it.toRoute<MainNavigationDetailLocation.Calls.CallLinks.CallLinkDetails>()
|
val route = it.toRoute<MainNavigationDetailLocation.Calls.CallLinks.CallLinkDetails>()
|
||||||
|
|
||||||
CallLinkDetailsScreen(roomId = route.callLinkRoomId)
|
CallLinkDetailsScreen(roomId = route.callLinkRoomId)
|
||||||
@@ -37,6 +43,8 @@ fun NavGraphBuilder.callNavGraphBuilder(navHostController: NavHostController) {
|
|||||||
typeOf<CallLinkRoomId>() to JsonSerializableNavType(CallLinkRoomId.serializer())
|
typeOf<CallLinkRoomId>() to JsonSerializableNavType(CallLinkRoomId.serializer())
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
informNavigatorWeAreReady()
|
||||||
|
|
||||||
val route = it.toRoute<MainNavigationDetailLocation.Calls.CallLinks.EditCallLinkName>()
|
val route = it.toRoute<MainNavigationDetailLocation.Calls.CallLinks.EditCallLinkName>()
|
||||||
val parent = navHostController.previousBackStackEntry ?: return@composable
|
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.delay
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import org.thoughtcrime.securesms.MainNavigator
|
||||||
import org.thoughtcrime.securesms.conversation.ConversationArgs
|
import org.thoughtcrime.securesms.conversation.ConversationArgs
|
||||||
import org.thoughtcrime.securesms.conversation.ConversationIntents
|
import org.thoughtcrime.securesms.conversation.ConversationIntents
|
||||||
import org.thoughtcrime.securesms.conversation.v2.ConversationFragment
|
import org.thoughtcrime.securesms.conversation.v2.ConversationFragment
|
||||||
@@ -85,6 +86,10 @@ fun NavGraphBuilder.chatNavGraphBuilder(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(shouldDisplayFragment) {
|
||||||
|
(context as? MainNavigator.NavigatorProvider)?.onFirstRender()
|
||||||
|
}
|
||||||
|
|
||||||
if (bitmap != null) {
|
if (bitmap != null) {
|
||||||
Image(
|
Image(
|
||||||
bitmap = bitmap,
|
bitmap = bitmap,
|
||||||
|
|||||||
Reference in New Issue
Block a user