Add current user to ShareLocationState

This commit is contained in:
ganfra
2026-03-03 21:56:45 +01:00
parent 904657e86f
commit ec1d6ebabb
3 changed files with 13 additions and 0 deletions

View File

@@ -32,10 +32,13 @@ import io.element.android.libraries.core.extensions.flatMap
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.featureflag.api.FeatureFlagService
import io.element.android.libraries.featureflag.api.FeatureFlags
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.room.CreateTimelineParams
import io.element.android.libraries.matrix.api.room.JoinedRoom
import io.element.android.libraries.matrix.api.room.location.AssetType
import io.element.android.libraries.matrix.api.timeline.Timeline
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.textcomposer.model.MessageComposerMode
import io.element.android.services.analytics.api.AnalyticsService
import kotlinx.coroutines.launch
@@ -50,6 +53,7 @@ class ShareLocationPresenter(
private val locationActions: LocationActions,
private val buildMeta: BuildMeta,
private val featureFlagService: FeatureFlagService,
private val client: MatrixClient,
) : Presenter<ShareLocationState> {
@AssistedFactory
fun interface Factory {
@@ -69,6 +73,7 @@ class ShareLocationPresenter(
var dialogState: ShareLocationState.Dialog by remember {
mutableStateOf(ShareLocationState.Dialog.None)
}
val currentUser by client.userProfile.collectAsState()
val scope = rememberCoroutineScope()
LaunchedEffect(permissionsState.permissions) {
@@ -108,6 +113,7 @@ class ShareLocationPresenter(
}
return ShareLocationState(
currentUser = currentUser,
dialogState = dialogState,
trackUserLocation = trackUserPosition,
hasLocationPermission = permissionsState.isAnyGranted,

View File

@@ -8,7 +8,10 @@
package io.element.android.features.location.impl.share
import io.element.android.libraries.matrix.api.user.MatrixUser
data class ShareLocationState(
val currentUser: MatrixUser,
val dialogState: Dialog,
val trackUserLocation: Boolean,
val hasLocationPermission: Boolean,

View File

@@ -9,6 +9,8 @@
package io.element.android.features.location.impl.share
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.user.MatrixUser
private const val APP_NAME = "ApplicationName"
@@ -50,12 +52,14 @@ class ShareLocationStateProvider : PreviewParameterProvider<ShareLocationState>
}
private fun aShareLocationState(
currentUser: MatrixUser = MatrixUser(UserId("@user:matrix.org")),
permissionDialog: ShareLocationState.Dialog,
trackUserPosition: Boolean,
hasLocationPermission: Boolean,
canShareLiveLocation: Boolean = false,
): ShareLocationState {
return ShareLocationState(
currentUser = currentUser,
dialogState = permissionDialog,
trackUserLocation = trackUserPosition,
hasLocationPermission = hasLocationPermission,