Provide serverNames when available and fix issue around analytics
This commit is contained in:
parent
231f323cb0
commit
22329b9678
42 changed files with 542 additions and 103 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue