diff --git a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationPresenter.kt b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationPresenter.kt index bd82b823f0..63d4b7ce8d 100644 --- a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationPresenter.kt +++ b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationPresenter.kt @@ -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 { @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, diff --git a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationState.kt b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationState.kt index 947d286c5e..547bb99856 100644 --- a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationState.kt +++ b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationState.kt @@ -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, diff --git a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationStateProvider.kt b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationStateProvider.kt index 45a81af1df..0d3c448f15 100644 --- a/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationStateProvider.kt +++ b/features/location/impl/src/main/kotlin/io/element/android/features/location/impl/share/ShareLocationStateProvider.kt @@ -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 } 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,