From 1893e6866edc3ccba1b6b862633fb4aec9083b76 Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 4 Jan 2023 12:11:12 +0100 Subject: [PATCH] Create Presentation module and remove Presenter from core --- features/roomlist/build.gradle.kts | 3 +-- .../android/x/features/roomlist/RoomListNode.kt | 1 + .../x/features/roomlist/RoomListPresenter.kt | 2 +- libraries/presentation/.gitignore | 1 + libraries/presentation/build.gradle.kts | 14 ++++++++++++++ .../x/presentation}/NodePresenterConnector.kt | 5 ++--- .../element/android/x/presentation}/Presenter.kt | 2 +- settings.gradle.kts | 1 + 8 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 libraries/presentation/.gitignore create mode 100644 libraries/presentation/build.gradle.kts rename {features/roomlist/src/main/java/io/element/android/x/features/roomlist => libraries/presentation/src/main/java/io/element/android/x/presentation}/NodePresenterConnector.kt (86%) rename libraries/{core/src/main/java/io/element/android/x/core/architecture => presentation/src/main/java/io/element/android/x/presentation}/Presenter.kt (79%) diff --git a/features/roomlist/build.gradle.kts b/features/roomlist/build.gradle.kts index bf81ff34a3..62de2c6549 100644 --- a/features/roomlist/build.gradle.kts +++ b/features/roomlist/build.gradle.kts @@ -2,7 +2,6 @@ plugins { id("io.element.android-compose-library") alias(libs.plugins.ksp) alias(libs.plugins.anvil) - alias(libs.plugins.molecule) } android { @@ -18,10 +17,10 @@ dependencies { anvil(project(":anvilcodegen")) implementation(project(":libraries:di")) implementation(project(":libraries:core")) + implementation(project(":libraries:presentation")) implementation(project(":libraries:matrix")) implementation(project(":libraries:designsystem")) implementation(libs.appyx.core) - implementation(libs.mavericks.compose) implementation(libs.datetime) implementation(libs.accompanist.placeholder) testImplementation(libs.test.junit) diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListNode.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListNode.kt index d91b962476..cf3ab985c5 100644 --- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListNode.kt +++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListNode.kt @@ -8,6 +8,7 @@ import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import io.element.android.x.features.roomlist.model.RoomListEvents import io.element.android.x.matrix.core.RoomId +import io.element.android.x.presentation.presenterConnector class RoomListNode( buildContext: BuildContext, diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListPresenter.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListPresenter.kt index a13f6fcd4b..1906dced95 100644 --- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListPresenter.kt +++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListPresenter.kt @@ -9,7 +9,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue -import io.element.android.x.core.architecture.Presenter import io.element.android.x.core.coroutine.parallelMap import io.element.android.x.designsystem.components.avatar.AvatarData import io.element.android.x.designsystem.components.avatar.AvatarSize @@ -21,6 +20,7 @@ import io.element.android.x.features.roomlist.model.RoomListState import io.element.android.x.matrix.MatrixClient import io.element.android.x.matrix.media.MediaResolver import io.element.android.x.matrix.room.RoomSummary +import io.element.android.x.presentation.Presenter import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList diff --git a/libraries/presentation/.gitignore b/libraries/presentation/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/libraries/presentation/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/libraries/presentation/build.gradle.kts b/libraries/presentation/build.gradle.kts new file mode 100644 index 0000000000..829df0138f --- /dev/null +++ b/libraries/presentation/build.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("io.element.android-library") + alias(libs.plugins.molecule) +} + +android { + namespace = "io.element.android.x.libraries.presentation" +} + +dependencies { + api(libs.dagger) + api(libs.appyx.core) + api(libs.androidx.lifecycle.runtime) +} diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/NodePresenterConnector.kt b/libraries/presentation/src/main/java/io/element/android/x/presentation/NodePresenterConnector.kt similarity index 86% rename from features/roomlist/src/main/java/io/element/android/x/features/roomlist/NodePresenterConnector.kt rename to libraries/presentation/src/main/java/io/element/android/x/presentation/NodePresenterConnector.kt index 7012714324..1976e3a84b 100644 --- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/NodePresenterConnector.kt +++ b/libraries/presentation/src/main/java/io/element/android/x/presentation/NodePresenterConnector.kt @@ -1,11 +1,10 @@ -package io.element.android.x.features.roomlist +package io.element.android.x.presentation -import androidx.compose.ui.platform.AndroidUiDispatcher import androidx.lifecycle.lifecycleScope +import app.cash.molecule.AndroidUiDispatcher import app.cash.molecule.RecompositionClock import app.cash.molecule.launchMolecule import com.bumble.appyx.core.node.Node -import io.element.android.x.core.architecture.Presenter import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.StateFlow diff --git a/libraries/core/src/main/java/io/element/android/x/core/architecture/Presenter.kt b/libraries/presentation/src/main/java/io/element/android/x/presentation/Presenter.kt similarity index 79% rename from libraries/core/src/main/java/io/element/android/x/core/architecture/Presenter.kt rename to libraries/presentation/src/main/java/io/element/android/x/presentation/Presenter.kt index a48fa24b7c..682032ec28 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/architecture/Presenter.kt +++ b/libraries/presentation/src/main/java/io/element/android/x/presentation/Presenter.kt @@ -1,4 +1,4 @@ -package io.element.android.x.core.architecture +package io.element.android.x.presentation import androidx.compose.runtime.Composable import kotlinx.coroutines.flow.Flow diff --git a/settings.gradle.kts b/settings.gradle.kts index a135a4269a..c9bad7e2ed 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -31,3 +31,4 @@ include(":libraries:designsystem") include(":libraries:di") include(":anvilannotations") include(":anvilcodegen") +include(":libraries:presentation")