Provide serverNames when available and fix issue around analytics

This commit is contained in:
Benoit Marty 2024-05-14 11:36:29 +02:00
parent 231f323cb0
commit 22329b9678
42 changed files with 542 additions and 103 deletions

View file

@ -28,7 +28,7 @@ import io.element.android.anvilannotations.ContributesNode
import io.element.android.features.roomaliasesolver.api.RoomAliasResolverEntryPoint
import io.element.android.libraries.architecture.inputs
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
@ContributesNode(SessionScope::class)
class RoomAliasResolverNode @AssistedInject constructor(
@ -42,8 +42,8 @@ class RoomAliasResolverNode @AssistedInject constructor(
inputs.roomAlias
)
private fun onAliasResolved(roomId: RoomId) {
plugins<RoomAliasResolverEntryPoint.Callback>().forEach { it.onAliasResolved(roomId) }
private fun onAliasResolved(data: ResolvedRoomAlias) {
plugins<RoomAliasResolverEntryPoint.Callback>().forEach { it.onAliasResolved(data) }
}
@Composable

View file

@ -29,7 +29,7 @@ import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.architecture.runCatchingUpdatingState
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
@ -46,7 +46,7 @@ class RoomAliasResolverPresenter @AssistedInject constructor(
@Composable
override fun present(): RoomAliasResolverState {
val coroutineScope = rememberCoroutineScope()
val resolveState: MutableState<AsyncData<RoomId>> = remember { mutableStateOf(AsyncData.Uninitialized) }
val resolveState: MutableState<AsyncData<ResolvedRoomAlias>> = remember { mutableStateOf(AsyncData.Uninitialized) }
LaunchedEffect(Unit) {
resolveAlias(resolveState)
}
@ -64,7 +64,7 @@ class RoomAliasResolverPresenter @AssistedInject constructor(
)
}
private fun CoroutineScope.resolveAlias(resolveState: MutableState<AsyncData<RoomId>>) = launch {
private fun CoroutineScope.resolveAlias(resolveState: MutableState<AsyncData<ResolvedRoomAlias>>) = launch {
suspend {
matrixClient.resolveRoomAlias(roomAlias).getOrThrow()
}.runCatchingUpdatingState(resolveState)

View file

@ -19,11 +19,11 @@ package io.element.android.features.roomaliasresolver.impl
import androidx.compose.runtime.Immutable
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
@Immutable
data class RoomAliasResolverState(
val roomAlias: RoomAlias,
val resolveState: AsyncData<RoomId>,
val resolveState: AsyncData<ResolvedRoomAlias>,
val eventSink: (RoomAliasResolverEvents) -> Unit
)

View file

@ -19,7 +19,7 @@ package io.element.android.features.roomaliasresolver.impl
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
open class RoomAliasResolverStateProvider : PreviewParameterProvider<RoomAliasResolverState> {
override val values: Sequence<RoomAliasResolverState>
@ -36,7 +36,7 @@ open class RoomAliasResolverStateProvider : PreviewParameterProvider<RoomAliasRe
fun aRoomAliasResolverState(
roomAlias: RoomAlias = A_ROOM_ALIAS,
resolveState: AsyncData<RoomId> = AsyncData.Uninitialized,
resolveState: AsyncData<ResolvedRoomAlias> = AsyncData.Uninitialized,
eventSink: (RoomAliasResolverEvents) -> Unit = {}
) = RoomAliasResolverState(
roomAlias = roomAlias,

View file

@ -49,14 +49,14 @@ import io.element.android.libraries.designsystem.theme.components.ButtonSize
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TopAppBar
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun RoomAliasResolverView(
state: RoomAliasResolverState,
onBackPressed: () -> Unit,
onAliasResolved: (RoomId) -> Unit,
onAliasResolved: (ResolvedRoomAlias) -> Unit,
modifier: Modifier = Modifier,
) {
val latestOnAliasResolved by rememberUpdatedState(onAliasResolved)