Cleanup codebase

This commit is contained in:
Benoit Marty 2025-08-13 16:42:01 +02:00
parent 586e840a74
commit 0dba05be0a
20 changed files with 28 additions and 48 deletions

View file

@ -14,7 +14,6 @@ import io.element.android.libraries.architecture.FeatureEntryPoint
import io.element.android.libraries.matrix.api.core.RoomId
interface CreateRoomEntryPoint : FeatureEntryPoint {
fun nodeBuilder(parentNode: Node, buildContext: BuildContext): NodeBuilder
interface NodeBuilder {
@ -22,7 +21,7 @@ interface CreateRoomEntryPoint : FeatureEntryPoint {
fun build(): Node
}
interface Callback: Plugin {
interface Callback : Plugin {
fun onRoomCreated(roomId: RoomId)
}
}

View file

@ -1,4 +1,3 @@
import extension.ComponentMergingStrategy
import extension.setupAnvil
/*

View file

@ -44,7 +44,6 @@ class CreateRoomFlowNode @AssistedInject constructor(
buildContext = buildContext,
plugins = plugins
) {
private fun onRoomCreated(roomId: RoomId) {
plugins<CreateRoomEntryPoint.Callback>().forEach { it.onRoomCreated(roomId) }
}

View file

@ -18,9 +18,7 @@ import javax.inject.Inject
@ContributesBinding(SessionScope::class)
class DefaultCreateRoomEntryPoint @Inject constructor() : CreateRoomEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): CreateRoomEntryPoint.NodeBuilder {
val plugins = ArrayList<Plugin>()
return object : CreateRoomEntryPoint.NodeBuilder {

View file

@ -30,7 +30,6 @@ class AddPeopleNode @AssistedInject constructor(
invitePeoplePresenterFactory: InvitePeoplePresenter.Factory,
private val invitePeopleRenderer: InvitePeopleRenderer,
) : Node(buildContext, plugins = plugins) {
data class Inputs(
val joinedRoom: JoinedRoom
) : NodeInputs
@ -51,8 +50,9 @@ class AddPeopleNode @AssistedInject constructor(
val state = invitePeoplePresenter.present()
AddPeopleView(
state = state,
invitePeopleView = { invitePeopleRenderer.Render(state, Modifier) },
onFinish = ::onFinish
)
onFinish = ::onFinish,
) {
invitePeopleRenderer.Render(state, Modifier)
}
}
}

View file

@ -30,9 +30,9 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun AddPeopleView(
state: InvitePeopleState,
invitePeopleView: @Composable () -> Unit,
onFinish: () -> Unit,
modifier: Modifier = Modifier,
invitePeopleView: @Composable () -> Unit,
) {
HeaderFooterPage(
modifier = modifier,

View file

@ -7,7 +7,6 @@
package io.element.android.features.createroom.impl.configureroom
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.media.AvatarAction
sealed interface ConfigureRoomEvents {

View file

@ -18,7 +18,6 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import im.vector.app.features.analytics.plan.MobileScreen
import io.element.android.anvilannotations.ContributesNode
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.services.analytics.api.AnalyticsService
@ -30,8 +29,7 @@ class ConfigureRoomNode @AssistedInject constructor(
private val presenter: ConfigureRoomPresenter,
private val analyticsService: AnalyticsService,
) : Node(buildContext, plugins = plugins) {
interface Callback: Plugin {
interface Callback : Plugin {
fun onCreateRoomSuccess(roomId: RoomId)
}
@ -43,7 +41,7 @@ class ConfigureRoomNode @AssistedInject constructor(
)
}
private fun onCreateRoomSuccess(roomId: RoomId){
private fun onCreateRoomSuccess(roomId: RoomId) {
plugins<Callback>().forEach { it.onCreateRoomSuccess(roomId) }
}

View file

@ -12,7 +12,6 @@ import io.element.android.libraries.androidutils.file.safeDelete
import io.element.android.libraries.matrix.api.room.alias.RoomAliasHelper
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.getAndUpdate
import java.io.File
import javax.inject.Inject

View file

@ -139,8 +139,6 @@ class ConfigureRoomPresenterTest {
val initialState = initialState()
var expectedConfig = CreateRoomConfig()
assertThat(initialState.config).isEqualTo(expectedConfig)
// Room name
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
var newState = awaitItem()
@ -250,7 +248,7 @@ class ConfigureRoomPresenterTest {
val matrixClient = createMatrixClient()
val analyticsService = FakeAnalyticsService()
val mediaPreProcessor = FakeMediaPreProcessor()
val dataStore = CreateRoomConfigStore( FakeRoomAliasHelper())
val dataStore = CreateRoomConfigStore(FakeRoomAliasHelper())
val presenter = createConfigureRoomPresenter(
dataStore = dataStore,
mediaPreProcessor = mediaPreProcessor,

View file

@ -11,9 +11,7 @@ import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.matrix.api.room.JoinedRoom
interface InvitePeoplePresenter : Presenter<InvitePeopleState> {
interface Factory {
fun create(room: JoinedRoom): InvitePeoplePresenter
}
}

View file

@ -10,7 +10,7 @@ package io.element.android.features.invitepeople.impl
import io.element.android.features.invitepeople.api.InvitePeopleEvents
import io.element.android.libraries.matrix.api.user.MatrixUser
sealed interface DefaultInvitePeopleEvents: InvitePeopleEvents {
sealed interface DefaultInvitePeopleEvents : InvitePeopleEvents {
data class ToggleUser(val user: MatrixUser) : DefaultInvitePeopleEvents
data class UpdateSearchQuery(val query: String) : DefaultInvitePeopleEvents
data class OnSearchActiveChanged(val active: Boolean) : DefaultInvitePeopleEvents

View file

@ -52,7 +52,6 @@ class DefaultInvitePeoplePresenter @AssistedInject constructor(
@AppCoroutineScope private val coroutineScope: CoroutineScope,
private val appErrorStateService: AppErrorStateService,
) : InvitePeoplePresenter {
@AssistedFactory
@ContributesBinding(SessionScope::class)
interface Factory : InvitePeoplePresenter.Factory {

View file

@ -21,4 +21,4 @@ data class DefaultInvitePeopleState(
val selectedUsers: ImmutableList<MatrixUser>,
override val isSearchActive: Boolean,
override val eventSink: (InvitePeopleEvents) -> Unit
): InvitePeopleState
) : InvitePeopleState

View file

@ -43,7 +43,6 @@ fun InvitePeopleView(
state: DefaultInvitePeopleState,
modifier: Modifier = Modifier,
) {
Column(
modifier = modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(16.dp),

View file

@ -19,7 +19,6 @@ import im.vector.app.features.analytics.plan.MobileScreen
import io.element.android.anvilannotations.ContributesNode
import io.element.android.features.invitepeople.api.InvitePeoplePresenter
import io.element.android.features.invitepeople.api.InvitePeopleRenderer
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.api.room.JoinedRoom
import io.element.android.services.analytics.api.AnalyticsService
@ -28,12 +27,11 @@ import io.element.android.services.analytics.api.AnalyticsService
class RoomInviteMembersNode @AssistedInject constructor(
@Assisted buildContext: BuildContext,
@Assisted plugins: List<Plugin>,
private val room: JoinedRoom,
private val analyticsService: AnalyticsService,
private val invitePeopleRenderer: InvitePeopleRenderer,
private val invitePeoplePresenterFactory: InvitePeoplePresenter.Factory,
room: JoinedRoom,
invitePeoplePresenterFactory: InvitePeoplePresenter.Factory,
) : Node(buildContext, plugins = plugins) {
init {
lifecycle.subscribe(
onResume = {
@ -50,9 +48,10 @@ class RoomInviteMembersNode @AssistedInject constructor(
RoomInviteMembersView(
state = state,
modifier = modifier,
invitePeopleView = { invitePeopleRenderer.Render(state, Modifier) },
onBackClick = { navigateUp() },
onSubmitClick = { navigateUp() }
)
onDone = { navigateUp() }
) {
invitePeopleRenderer.Render(state, Modifier)
}
}
}

View file

@ -7,9 +7,7 @@
package io.element.android.features.roomdetails.impl.invite
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
@ -18,7 +16,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
import io.element.android.features.invitepeople.api.InvitePeopleEvents
import io.element.android.features.invitepeople.api.InvitePeopleState
import io.element.android.features.invitepeople.api.InvitePeopleStateProvider
@ -34,10 +31,10 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun RoomInviteMembersView(
state: InvitePeopleState,
invitePeopleView: @Composable () -> Unit,
onBackClick: () -> Unit,
onSubmitClick: () -> Unit,
onDone: () -> Unit,
modifier: Modifier = Modifier,
invitePeopleView: @Composable () -> Unit,
) {
Scaffold(
modifier = modifier,
@ -52,7 +49,7 @@ fun RoomInviteMembersView(
},
onSubmitClick = {
state.eventSink(InvitePeopleEvents.SendInvites)
onSubmitClick()
onDone()
},
canSend = state.canInvite,
)
@ -60,13 +57,12 @@ fun RoomInviteMembersView(
) { padding ->
Box(
modifier = Modifier
.fillMaxWidth()
.padding(padding)
.consumeWindowInsets(padding),
.fillMaxWidth()
.padding(padding)
.consumeWindowInsets(padding),
) {
invitePeopleView()
}
}
}
@ -97,6 +93,6 @@ internal fun RoomInviteMembersViewPreview(@PreviewParameter(InvitePeopleStatePro
state = state,
invitePeopleView = {},
onBackClick = {},
onSubmitClick = {},
onDone = {},
)
}

View file

@ -12,11 +12,11 @@ import app.cash.molecule.RecompositionMode
import app.cash.molecule.moleculeFlow
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.features.invitepeople.test.FakeStartDMAction
import io.element.android.features.startchat.api.ConfirmingStartDmWithMatrixUser
import io.element.android.features.startchat.api.StartDMAction
import io.element.android.features.startchat.impl.userlist.FakeUserListPresenter
import io.element.android.features.startchat.impl.userlist.FakeUserListPresenterFactory
import io.element.android.features.invitepeople.test.FakeStartDMAction
import io.element.android.features.startchat.impl.userlist.UserListDataStore
import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.featureflag.api.FeatureFlags

View file

@ -20,8 +20,8 @@ import androidx.compose.runtime.setValue
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import io.element.android.features.startchat.api.StartDMAction
import io.element.android.features.enterprise.api.SessionEnterpriseService
import io.element.android.features.startchat.api.StartDMAction
import io.element.android.features.userprofile.api.UserProfileEvents
import io.element.android.features.userprofile.api.UserProfileState
import io.element.android.features.userprofile.api.UserProfileState.ConfirmationDialog

View file

@ -13,10 +13,10 @@ import app.cash.molecule.moleculeFlow
import app.cash.turbine.ReceiveTurbine
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.features.enterprise.test.FakeSessionEnterpriseService
import io.element.android.features.invitepeople.test.FakeStartDMAction
import io.element.android.features.startchat.api.ConfirmingStartDmWithMatrixUser
import io.element.android.features.startchat.api.StartDMAction
import io.element.android.features.invitepeople.test.FakeStartDMAction
import io.element.android.features.enterprise.test.FakeSessionEnterpriseService
import io.element.android.features.userprofile.api.UserProfileEvents
import io.element.android.features.userprofile.api.UserProfileState
import io.element.android.features.userprofile.api.UserProfileVerificationState