diff --git a/anvilcodegen/src/main/java/io/element/android/x/anvilcodegen/ContributesViewModelCodeGenerator.kt b/anvilcodegen/src/main/java/io/element/android/x/anvilcodegen/ContributesViewModelCodeGenerator.kt index 544b6b4b11..a72d10ab84 100644 --- a/anvilcodegen/src/main/java/io/element/android/x/anvilcodegen/ContributesViewModelCodeGenerator.kt +++ b/anvilcodegen/src/main/java/io/element/android/x/anvilcodegen/ContributesViewModelCodeGenerator.kt @@ -116,7 +116,7 @@ class ContributesViewModelCodeGenerator : CodeGenerator { } companion object { - private val assistedViewModelFactoryFqName = FqName("io.element.android.x.core.di.AssistedViewModelFactory") - private val viewModelKeyFqName = FqName("io.element.android.x.core.di.ViewModelKey") + private val assistedViewModelFactoryFqName = FqName("io.element.android.x.architecture.viewmodel.AssistedViewModelFactory") + private val viewModelKeyFqName = FqName("io.element.android.x.architecture.viewmodel.ViewModelKey") } -} \ No newline at end of file +} diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e26c262165..0c4d93816c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -137,6 +137,7 @@ dependencies { implementation(project(":libraries:designsystem")) implementation(project(":libraries:matrix")) implementation(project(":libraries:core")) + implementation(project(":libraries:architecture")) implementation(project(":features:onboarding")) implementation(project(":features:login")) implementation(project(":features:roomlist")) diff --git a/app/src/main/java/io/element/android/x/ElementXApplication.kt b/app/src/main/java/io/element/android/x/ElementXApplication.kt index fc6c1b8b8c..cc97438f31 100644 --- a/app/src/main/java/io/element/android/x/ElementXApplication.kt +++ b/app/src/main/java/io/element/android/x/ElementXApplication.kt @@ -2,8 +2,8 @@ package io.element.android.x import android.app.Application import androidx.startup.AppInitializer +import io.element.android.x.architecture.bindings import io.element.android.x.core.di.DaggerComponentOwner -import io.element.android.x.core.di.bindings import io.element.android.x.di.AppBindings import io.element.android.x.di.AppComponent import io.element.android.x.di.DaggerAppComponent diff --git a/app/src/main/java/io/element/android/x/MainActivity.kt b/app/src/main/java/io/element/android/x/MainActivity.kt index 5bac04cab9..0baf53fafd 100644 --- a/app/src/main/java/io/element/android/x/MainActivity.kt +++ b/app/src/main/java/io/element/android/x/MainActivity.kt @@ -16,8 +16,8 @@ import androidx.core.view.WindowCompat import com.bumble.appyx.core.integration.NodeHost import com.bumble.appyx.core.integrationpoint.NodeComponentActivity import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi +import io.element.android.x.architecture.bindings import io.element.android.x.core.di.DaggerComponentOwner -import io.element.android.x.core.di.bindings import io.element.android.x.designsystem.ElementXTheme import io.element.android.x.di.AppBindings import io.element.android.x.node.RootFlowNode diff --git a/app/src/main/java/io/element/android/x/MainViewModel.kt b/app/src/main/java/io/element/android/x/MainViewModel.kt index 506431e593..0c498f3ab6 100644 --- a/app/src/main/java/io/element/android/x/MainViewModel.kt +++ b/app/src/main/java/io/element/android/x/MainViewModel.kt @@ -6,7 +6,7 @@ import com.airbnb.mvrx.MavericksViewModelFactory import dagger.assisted.Assisted import dagger.assisted.AssistedInject import io.element.android.x.anvilannotations.ContributesViewModel -import io.element.android.x.core.di.daggerMavericksViewModelFactory +import io.element.android.x.architecture.viewmodel.daggerMavericksViewModelFactory import io.element.android.x.di.AppScope import io.element.android.x.di.SessionComponentsOwner import io.element.android.x.matrix.Matrix diff --git a/app/src/main/java/io/element/android/x/di/AppComponent.kt b/app/src/main/java/io/element/android/x/di/AppComponent.kt index e68a58eac3..9b9443b3fc 100644 --- a/app/src/main/java/io/element/android/x/di/AppComponent.kt +++ b/app/src/main/java/io/element/android/x/di/AppComponent.kt @@ -4,7 +4,7 @@ import android.content.Context import com.squareup.anvil.annotations.MergeComponent import dagger.BindsInstance import dagger.Component -import io.element.android.x.core.di.DaggerMavericksBindings +import io.element.android.x.architecture.viewmodel.DaggerMavericksBindings @SingleIn(AppScope::class) @MergeComponent(AppScope::class) diff --git a/app/src/main/java/io/element/android/x/di/SessionComponent.kt b/app/src/main/java/io/element/android/x/di/SessionComponent.kt index e24dd193dc..fd9ffb5078 100644 --- a/app/src/main/java/io/element/android/x/di/SessionComponent.kt +++ b/app/src/main/java/io/element/android/x/di/SessionComponent.kt @@ -4,8 +4,8 @@ import com.squareup.anvil.annotations.ContributesTo import com.squareup.anvil.annotations.MergeSubcomponent import dagger.BindsInstance import dagger.Subcomponent -import io.element.android.x.core.di.DaggerMavericksBindings -import io.element.android.x.core.di.NodeFactoriesBindings +import io.element.android.x.architecture.viewmodel.DaggerMavericksBindings +import io.element.android.x.architecture.NodeFactoriesBindings import io.element.android.x.matrix.MatrixClient @SingleIn(SessionScope::class) diff --git a/app/src/main/java/io/element/android/x/di/SessionComponentsOwner.kt b/app/src/main/java/io/element/android/x/di/SessionComponentsOwner.kt index ca6f299750..f289573821 100644 --- a/app/src/main/java/io/element/android/x/di/SessionComponentsOwner.kt +++ b/app/src/main/java/io/element/android/x/di/SessionComponentsOwner.kt @@ -1,7 +1,7 @@ package io.element.android.x.di import android.content.Context -import io.element.android.x.core.di.bindings +import io.element.android.x.architecture.bindings import io.element.android.x.matrix.MatrixClient import io.element.android.x.matrix.core.SessionId import java.util.concurrent.ConcurrentHashMap diff --git a/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt b/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt index 1b99716606..9594328881 100644 --- a/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt +++ b/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt @@ -5,7 +5,7 @@ import androidx.startup.Initializer import coil.Coil import coil.ImageLoader import coil.ImageLoaderFactory -import io.element.android.x.core.di.bindings +import io.element.android.x.architecture.bindings import io.element.android.x.di.AppBindings class CoilInitializer : Initializer { @@ -37,4 +37,4 @@ private class ElementImageLoaderFactory( } -} \ No newline at end of file +} diff --git a/app/src/main/java/io/element/android/x/node/LoggedInFlowNode.kt b/app/src/main/java/io/element/android/x/node/LoggedInFlowNode.kt index bf1047ae52..a22c9d58c7 100644 --- a/app/src/main/java/io/element/android/x/node/LoggedInFlowNode.kt +++ b/app/src/main/java/io/element/android/x/node/LoggedInFlowNode.kt @@ -10,8 +10,8 @@ import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.pop import com.bumble.appyx.navmodel.backstack.operation.push -import io.element.android.x.core.di.createNode -import io.element.android.x.core.di.viewModelSupportNode +import io.element.android.x.architecture.createNode +import io.element.android.x.architecture.viewmodel.viewModelSupportNode import io.element.android.x.features.messages.MessagesScreen import io.element.android.x.features.roomlist.RoomListNode import io.element.android.x.matrix.core.RoomId diff --git a/app/src/main/java/io/element/android/x/node/NotLoggedInFlowNode.kt b/app/src/main/java/io/element/android/x/node/NotLoggedInFlowNode.kt index e9c848539e..65d830dd99 100644 --- a/app/src/main/java/io/element/android/x/node/NotLoggedInFlowNode.kt +++ b/app/src/main/java/io/element/android/x/node/NotLoggedInFlowNode.kt @@ -10,7 +10,7 @@ import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.replace -import io.element.android.x.core.di.viewModelSupportNode +import io.element.android.x.architecture.viewmodel.viewModelSupportNode import io.element.android.x.features.login.node.LoginFlowNode import io.element.android.x.features.onboarding.OnBoardingScreen import kotlinx.parcelize.Parcelize diff --git a/features/login/build.gradle.kts b/features/login/build.gradle.kts index 0d392a6533..b483712e4d 100644 --- a/features/login/build.gradle.kts +++ b/features/login/build.gradle.kts @@ -19,6 +19,7 @@ dependencies { anvil(project(":anvilcodegen")) implementation(project(":libraries:di")) implementation(project(":libraries:core")) + implementation(project(":libraries:architecture")) implementation(project(":libraries:matrix")) implementation(project(":libraries:designsystem")) implementation(project(":libraries:elementresources")) diff --git a/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt b/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt index a31016f83e..3900a27c49 100644 --- a/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt +++ b/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt @@ -8,7 +8,7 @@ import com.airbnb.mvrx.Uninitialized import dagger.assisted.Assisted import dagger.assisted.AssistedInject import io.element.android.x.anvilannotations.ContributesViewModel -import io.element.android.x.core.di.daggerMavericksViewModelFactory +import io.element.android.x.architecture.viewmodel.daggerMavericksViewModelFactory import io.element.android.x.di.AppScope import io.element.android.x.matrix.Matrix import kotlinx.coroutines.flow.launchIn diff --git a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt index e4007dcb4b..91eeb2b589 100644 --- a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt +++ b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt @@ -6,7 +6,7 @@ import com.airbnb.mvrx.Uninitialized import dagger.assisted.Assisted import dagger.assisted.AssistedInject import io.element.android.x.anvilannotations.ContributesViewModel -import io.element.android.x.core.di.daggerMavericksViewModelFactory +import io.element.android.x.architecture.viewmodel.daggerMavericksViewModelFactory import io.element.android.x.di.AppScope import io.element.android.x.matrix.Matrix import kotlinx.coroutines.launch diff --git a/features/login/src/main/java/io/element/android/x/features/login/node/LoginFlowNode.kt b/features/login/src/main/java/io/element/android/x/features/login/node/LoginFlowNode.kt index c33e5e970b..703f2f7aec 100644 --- a/features/login/src/main/java/io/element/android/x/features/login/node/LoginFlowNode.kt +++ b/features/login/src/main/java/io/element/android/x/features/login/node/LoginFlowNode.kt @@ -10,7 +10,7 @@ import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.pop import com.bumble.appyx.navmodel.backstack.operation.push -import io.element.android.x.core.di.viewModelSupportNode +import io.element.android.x.architecture.viewmodel.viewModelSupportNode import io.element.android.x.features.login.LoginScreen import io.element.android.x.features.login.changeserver.ChangeServerScreen import kotlinx.parcelize.Parcelize diff --git a/features/messages/build.gradle.kts b/features/messages/build.gradle.kts index c2c4754545..74662c13f3 100644 --- a/features/messages/build.gradle.kts +++ b/features/messages/build.gradle.kts @@ -18,6 +18,7 @@ dependencies { anvil(project(":anvilcodegen")) implementation(project(":libraries:di")) implementation(project(":libraries:core")) + implementation(project(":libraries:architecture")) implementation(project(":libraries:matrix")) implementation(project(":libraries:designsystem")) implementation(project(":libraries:textcomposer")) diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt index 98165305f1..35ad154666 100644 --- a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt +++ b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt @@ -6,10 +6,9 @@ import com.airbnb.mvrx.Uninitialized import dagger.assisted.Assisted import dagger.assisted.AssistedInject import io.element.android.x.anvilannotations.ContributesViewModel -import io.element.android.x.core.di.daggerMavericksViewModelFactory +import io.element.android.x.architecture.viewmodel.daggerMavericksViewModelFactory import io.element.android.x.designsystem.components.avatar.AvatarData import io.element.android.x.designsystem.components.avatar.AvatarSize -import io.element.android.x.di.AppScope import io.element.android.x.di.SessionScope import io.element.android.x.features.messages.model.MessagesItemAction import io.element.android.x.features.messages.model.MessagesItemActionsSheetState @@ -17,7 +16,6 @@ import io.element.android.x.features.messages.model.MessagesTimelineItemState import io.element.android.x.features.messages.model.MessagesViewState import io.element.android.x.features.messages.model.content.MessagesTimelineItemRedactedContent import io.element.android.x.features.messages.model.content.MessagesTimelineItemTextBasedContent -import io.element.android.x.matrix.Matrix import io.element.android.x.matrix.MatrixClient import io.element.android.x.matrix.media.MediaResolver import io.element.android.x.matrix.timeline.MatrixTimeline diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/textcomposer/MessageComposerViewModel.kt b/features/messages/src/main/java/io/element/android/x/features/messages/textcomposer/MessageComposerViewModel.kt index cddb9eeae0..cf8c2f4f9c 100644 --- a/features/messages/src/main/java/io/element/android/x/features/messages/textcomposer/MessageComposerViewModel.kt +++ b/features/messages/src/main/java/io/element/android/x/features/messages/textcomposer/MessageComposerViewModel.kt @@ -5,8 +5,8 @@ import com.airbnb.mvrx.MavericksViewModelFactory import dagger.assisted.Assisted import dagger.assisted.AssistedInject import io.element.android.x.anvilannotations.ContributesViewModel +import io.element.android.x.architecture.viewmodel.daggerMavericksViewModelFactory import io.element.android.x.core.data.StableCharSequence -import io.element.android.x.core.di.daggerMavericksViewModelFactory import io.element.android.x.di.SessionScope import io.element.android.x.matrix.MatrixClient diff --git a/features/onboarding/build.gradle.kts b/features/onboarding/build.gradle.kts index bdcc5d4e76..a686b4cdbd 100644 --- a/features/onboarding/build.gradle.kts +++ b/features/onboarding/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { implementation(project(":libraries:core")) implementation(project(":libraries:elementresources")) implementation(project(":libraries:designsystem")) + implementation(project(":libraries:architecture")) implementation(libs.mavericks.compose) implementation(libs.accompanist.pager) implementation(libs.accompanist.pagerindicator) diff --git a/features/roomlist/build.gradle.kts b/features/roomlist/build.gradle.kts index 62de2c6549..fae8ad97d2 100644 --- a/features/roomlist/build.gradle.kts +++ b/features/roomlist/build.gradle.kts @@ -17,7 +17,7 @@ dependencies { anvil(project(":anvilcodegen")) implementation(project(":libraries:di")) implementation(project(":libraries:core")) - implementation(project(":libraries:presentation")) + implementation(project(":libraries:architecture")) implementation(project(":libraries:matrix")) implementation(project(":libraries:designsystem")) implementation(libs.appyx.core) diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListModule.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListModule.kt index d4fc2d25bb..698aa4b083 100644 --- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListModule.kt +++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListModule.kt @@ -4,8 +4,8 @@ import com.squareup.anvil.annotations.ContributesTo import dagger.Binds import dagger.Module import dagger.multibindings.IntoMap -import io.element.android.x.core.di.AssistedNodeFactory -import io.element.android.x.core.di.NodeKey +import io.element.android.x.architecture.AssistedNodeFactory +import io.element.android.x.architecture.NodeKey import io.element.android.x.di.SessionScope @Module 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 1e4f0a0c27..64ed13bf96 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 @@ -11,10 +11,10 @@ import com.bumble.appyx.core.plugin.plugins import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject -import io.element.android.x.core.di.AssistedNodeFactory +import io.element.android.x.architecture.AssistedNodeFactory import io.element.android.x.features.roomlist.model.RoomListEvents import io.element.android.x.matrix.core.RoomId -import io.element.android.x.presentation.presenterConnector +import io.element.android.x.architecture.presenterConnector class RoomListNode @AssistedInject constructor( @Assisted 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 3760f2f02c..492d098d6d 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 @@ -20,7 +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 io.element.android.x.architecture.Presenter import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList diff --git a/libraries/presentation/.gitignore b/libraries/architecture/.gitignore similarity index 100% rename from libraries/presentation/.gitignore rename to libraries/architecture/.gitignore diff --git a/libraries/presentation/build.gradle.kts b/libraries/architecture/build.gradle.kts similarity index 66% rename from libraries/presentation/build.gradle.kts rename to libraries/architecture/build.gradle.kts index 829df0138f..5ac492f37b 100644 --- a/libraries/presentation/build.gradle.kts +++ b/libraries/architecture/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("io.element.android-library") + id("io.element.android-compose-library") alias(libs.plugins.molecule) } @@ -8,7 +8,9 @@ android { } dependencies { + api(project(":libraries:core")) api(libs.dagger) api(libs.appyx.core) api(libs.androidx.lifecycle.runtime) + api(libs.mavericks.compose) } diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/AssistedNodeFactory.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/AssistedNodeFactory.kt similarity index 85% rename from libraries/core/src/main/java/io/element/android/x/core/di/AssistedNodeFactory.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/AssistedNodeFactory.kt index 022fe03720..06b8e108c5 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/AssistedNodeFactory.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/AssistedNodeFactory.kt @@ -1,4 +1,4 @@ -package io.element.android.x.core.di +package io.element.android.x.architecture import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/Bindings.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/Bindings.kt similarity index 55% rename from libraries/core/src/main/java/io/element/android/x/core/di/Bindings.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/Bindings.kt index 9fe69bc112..df6231485a 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/Bindings.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/Bindings.kt @@ -1,30 +1,12 @@ -package io.element.android.x.core.di +package io.element.android.x.architecture import android.content.Context import android.content.ContextWrapper -import androidx.fragment.app.Fragment import com.bumble.appyx.core.node.Node - -/** - * Use this to get the Dagger "Bindings" for your module. Bindings are used if you need to directly interact with a dagger component such as: - * * an inject function: `inject(node: MyNode)` - * * an explicit getter: `fun myClass(): MyClass` - * - * Anvil will make your Dagger component implement these bindings so that you can call any of these functions on an instance of your component. - * - * [bindings] will walk up the Node/Activity hierarchy and check for [DaggerComponentOwner] to see if any of its components implement the - * specified bindings. Most of the time this will "just work" and you don't have to think about it. - * - * For example, if your class has @Inject properties: - * 1) Create an bindings interface such as `YourModuleBindings` - * 1) Add an inject function like `fun inject(yourClass: YourClass)` - * 2) Contribute your interface to the correct component via `@ContributesTo(AppScope::class)`. - * 3) Call bindings().inject(this). - */ - -inline fun Context.bindings() = bindings(T::class.java) +import io.element.android.x.core.di.DaggerComponentOwner inline fun Node.bindings() = bindings(T::class.java) +inline fun Context.bindings() = bindings(T::class.java) /** Use no-arg extension function instead: [Context.bindings] */ fun Context.bindings(klass: Class): T { diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/NodeFactories.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/NodeFactories.kt similarity index 94% rename from libraries/core/src/main/java/io/element/android/x/core/di/NodeFactories.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/NodeFactories.kt index 94605d4a6a..efccaafb25 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/NodeFactories.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/NodeFactories.kt @@ -1,4 +1,4 @@ -package io.element.android.x.core.di +package io.element.android.x.architecture import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/NodeKey.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/NodeKey.kt similarity index 95% rename from libraries/core/src/main/java/io/element/android/x/core/di/NodeKey.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/NodeKey.kt index b6541a4688..63e178552e 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/NodeKey.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/NodeKey.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.x.core.di +package io.element.android.x.architecture import com.bumble.appyx.core.node.Node import dagger.MapKey diff --git a/libraries/presentation/src/main/java/io/element/android/x/presentation/NodePresenterConnector.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/NodePresenterConnector.kt similarity index 96% rename from libraries/presentation/src/main/java/io/element/android/x/presentation/NodePresenterConnector.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/NodePresenterConnector.kt index 1976e3a84b..e451d7c2e4 100644 --- a/libraries/presentation/src/main/java/io/element/android/x/presentation/NodePresenterConnector.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/NodePresenterConnector.kt @@ -1,4 +1,4 @@ -package io.element.android.x.presentation +package io.element.android.x.architecture import androidx.lifecycle.lifecycleScope import app.cash.molecule.AndroidUiDispatcher diff --git a/libraries/presentation/src/main/java/io/element/android/x/presentation/Presenter.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/Presenter.kt similarity index 80% rename from libraries/presentation/src/main/java/io/element/android/x/presentation/Presenter.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/Presenter.kt index 682032ec28..a0addbfe1a 100644 --- a/libraries/presentation/src/main/java/io/element/android/x/presentation/Presenter.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/Presenter.kt @@ -1,4 +1,4 @@ -package io.element.android.x.presentation +package io.element.android.x.architecture import androidx.compose.runtime.Composable import kotlinx.coroutines.flow.Flow diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/AssistedViewModelFactory.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/AssistedViewModelFactory.kt similarity index 79% rename from libraries/core/src/main/java/io/element/android/x/core/di/AssistedViewModelFactory.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/AssistedViewModelFactory.kt index 239ce4ac62..6dee6da6d3 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/AssistedViewModelFactory.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/AssistedViewModelFactory.kt @@ -1,4 +1,4 @@ -package io.element.android.x.core.di +package io.element.android.x.architecture.viewmodel import com.airbnb.mvrx.MavericksState import com.airbnb.mvrx.MavericksViewModel diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/DaggerMavericksViewModelFactory.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/DaggerMavericksViewModelFactory.kt similarity index 95% rename from libraries/core/src/main/java/io/element/android/x/core/di/DaggerMavericksViewModelFactory.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/DaggerMavericksViewModelFactory.kt index a67c9b204d..30fd38a3ee 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/DaggerMavericksViewModelFactory.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/DaggerMavericksViewModelFactory.kt @@ -1,10 +1,10 @@ -package io.element.android.x.core.di +package io.element.android.x.architecture.viewmodel -import com.airbnb.mvrx.FragmentViewModelContext import com.airbnb.mvrx.MavericksState import com.airbnb.mvrx.MavericksViewModel import com.airbnb.mvrx.MavericksViewModelFactory import com.airbnb.mvrx.ViewModelContext +import io.element.android.x.architecture.bindings /** * To connect Mavericks ViewModel creation with Anvil's dependency injection, add the following to your MavericksViewModel. diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/ViewModelKey.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/ViewModelKey.kt similarity index 94% rename from libraries/core/src/main/java/io/element/android/x/core/di/ViewModelKey.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/ViewModelKey.kt index 67a259a879..0d4f718caf 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/ViewModelKey.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/ViewModelKey.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.element.android.x.core.di +package io.element.android.x.architecture.viewmodel import com.airbnb.mvrx.MavericksViewModel import dagger.MapKey diff --git a/libraries/core/src/main/java/io/element/android/x/core/di/ViewModelSupport.kt b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/ViewModelSupport.kt similarity index 98% rename from libraries/core/src/main/java/io/element/android/x/core/di/ViewModelSupport.kt rename to libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/ViewModelSupport.kt index 27801979c7..7a7fc576c2 100644 --- a/libraries/core/src/main/java/io/element/android/x/core/di/ViewModelSupport.kt +++ b/libraries/architecture/src/main/java/io/element/android/x/architecture/viewmodel/ViewModelSupport.kt @@ -1,4 +1,4 @@ -package io.element.android.x.core.di +package io.element.android.x.architecture.viewmodel import android.os.Bundle import androidx.compose.runtime.Composable diff --git a/libraries/core/build.gradle.kts b/libraries/core/build.gradle.kts index 29f4ec2274..6706fcdfa8 100644 --- a/libraries/core/build.gradle.kts +++ b/libraries/core/build.gradle.kts @@ -5,9 +5,3 @@ plugins { android { namespace = "io.element.android.x.core" } - -dependencies { - api(libs.mavericks.compose) - api(libs.dagger) - api(libs.appyx.core) -} diff --git a/libraries/matrix/build.gradle.kts b/libraries/matrix/build.gradle.kts index fa9d9802e1..e515e7e752 100644 --- a/libraries/matrix/build.gradle.kts +++ b/libraries/matrix/build.gradle.kts @@ -15,6 +15,7 @@ anvil { dependencies { api(project(":libraries:rustsdk")) implementation(project(":libraries:di")) + implementation(libs.dagger) implementation(project(":libraries:core")) implementation("net.java.dev.jna:jna:5.12.1@aar") implementation(libs.coil.compose) diff --git a/settings.gradle.kts b/settings.gradle.kts index c9bad7e2ed..0faeb54c2a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -31,4 +31,4 @@ include(":libraries:designsystem") include(":libraries:di") include(":anvilannotations") include(":anvilcodegen") -include(":libraries:presentation") +include(":libraries:architecture")