Skip to content

Commit 49b448a

Browse files
committed
Enhance frontend modularization by migrating the settings feature into its own module, updating Koin dependency injection to include the new featureSettingsModule. Adjust Gradle configurations to reflect the new source layout and remove obsolete test files, improving code clarity and structure. Update documentation to reflect changes in module ownership and implementation status.
1 parent 5c8e749 commit 49b448a

486 files changed

Lines changed: 218 additions & 302 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/architecture/FRONTEND_MODULARISATION_AND_STANDALONE_BUILDS.md

Lines changed: 6 additions & 4 deletions

frontend/androidApp/src/main/kotlin/com/vaultstadio/app/VaultStadioApplication.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.vaultstadio.app.data.activity.di.activityModule
1111
import com.vaultstadio.app.data.admin.di.adminModule
1212
import com.vaultstadio.app.data.auth.di.authModule
1313
import com.vaultstadio.app.feature.auth.di.featureAuthModule
14+
import com.vaultstadio.app.feature.settings.di.featureSettingsModule
1415
import com.vaultstadio.app.data.config.di.configModule
1516
import com.vaultstadio.app.data.share.di.shareModule
1617
import com.vaultstadio.app.data.plugin.di.pluginModule
@@ -48,7 +49,7 @@ class VaultStadioApplication : Application() {
4849
androidLogger(Level.INFO)
4950
androidContext(this@VaultStadioApplication)
5051
modules(
51-
runtimeModules(getServerUrl()) + listOf(androidModule, activityModule, adminModule, authModule, featureAuthModule, aiModule, collaborationModule, configModule, shareModule, pluginModule, storageModule, metadataModule, syncModule, federationModule, versionModule),
52+
runtimeModules(getServerUrl()) + listOf(androidModule, activityModule, adminModule, authModule, featureAuthModule, featureSettingsModule, aiModule, collaborationModule, configModule, shareModule, pluginModule, storageModule, metadataModule, syncModule, federationModule, versionModule),
5253
)
5354
}
5455
}

frontend/composeApp/build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ kotlin {
4343

4444
sourceSets {
4545
val commonMain by getting {
46-
kotlin.srcDirs("src/kotlin")
46+
kotlin.srcDirs("src/main")
4747
dependencies {
4848
implementation(project(":domain:result"))
4949
implementation(project(":domain:auth"))
@@ -62,6 +62,7 @@ kotlin {
6262
implementation(project(":domain:upload"))
6363
implementation(project(":core:resources"))
6464
implementation(project(":feature:auth"))
65+
implementation(project(":feature:settings"))
6566
implementation(project(":data:network"))
6667
implementation(project(":data:sync"))
6768
implementation(project(":data:metadata"))
@@ -155,6 +156,7 @@ kotlin {
155156
}
156157

157158
val commonTest by getting {
159+
kotlin.srcDirs("src/test")
158160
dependencies {
159161
implementation(kotlin("test"))
160162
implementation(libs.kotlinx.coroutines.test)

frontend/composeApp/src/desktopMain/kotlin/com/vaultstadio/app/Main.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.vaultstadio.app.data.activity.di.activityModule
1717
import com.vaultstadio.app.data.admin.di.adminModule
1818
import com.vaultstadio.app.data.auth.di.authModule
1919
import com.vaultstadio.app.feature.auth.di.featureAuthModule
20+
import com.vaultstadio.app.feature.settings.di.featureSettingsModule
2021
import com.vaultstadio.app.data.config.di.configModule
2122
import com.vaultstadio.app.data.share.di.shareModule
2223
import com.vaultstadio.app.data.plugin.di.pluginModule
@@ -32,7 +33,7 @@ import org.koin.core.context.startKoin
3233

3334
fun main() {
3435
startKoin {
35-
modules(runtimeModules("http://localhost:8080/api") + activityModule + adminModule + authModule + featureAuthModule + aiModule + collaborationModule + configModule + shareModule + pluginModule + storageModule + metadataModule + syncModule + federationModule + versionModule)
36+
modules(runtimeModules("http://localhost:8080/api") + activityModule + adminModule + authModule + featureAuthModule + featureSettingsModule + aiModule + collaborationModule + configModule + shareModule + pluginModule + storageModule + metadataModule + syncModule + federationModule + versionModule)
3637
}
3738
application {
3839
Window(

frontend/composeApp/src/kotlin/com/vaultstadio/app/feature/settings/SettingsComponent.kt

Lines changed: 0 additions & 26 deletions
This file was deleted.

frontend/composeApp/src/kotlin/com/vaultstadio/app/VaultStadioRoot.kt renamed to frontend/composeApp/src/main/kotlin/com/vaultstadio/app/VaultStadioRoot.kt

File renamed without changes.

frontend/composeApp/src/kotlin/com/vaultstadio/app/config/AppConfig.kt renamed to frontend/composeApp/src/main/kotlin/com/vaultstadio/app/config/AppConfig.kt

File renamed without changes.

frontend/composeApp/src/kotlin/com/vaultstadio/app/di/AppModule.kt renamed to frontend/composeApp/src/main/kotlin/com/vaultstadio/app/di/AppModule.kt

File renamed without changes.

frontend/composeApp/src/kotlin/com/vaultstadio/app/di/AppModuleDsl.kt renamed to frontend/composeApp/src/main/kotlin/com/vaultstadio/app/di/AppModuleDsl.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ import com.vaultstadio.app.feature.main.MainComponent
5252
import com.vaultstadio.app.feature.plugins.PluginsViewModel
5353
import com.vaultstadio.app.feature.profile.ProfileViewModel
5454
import com.vaultstadio.app.feature.security.SecurityViewModel
55-
import com.vaultstadio.app.feature.settings.SettingsViewModel
5655
import com.vaultstadio.app.feature.shares.SharesViewModel
5756
import com.vaultstadio.app.feature.sharedwithme.SharedWithMeViewModel
5857
import com.vaultstadio.app.domain.sync.usecase.DeactivateDeviceUseCase
@@ -80,7 +79,7 @@ val appModule = module {
8079

8180
// --- ViewModels (no params) ---
8281
viewModel { ProfileViewModel(get(), get(), get(), get()) }
83-
viewModel { SettingsViewModel(get()) }
82+
// SettingsViewModel is in featureSettingsModule (:feature:settings)
8483
viewModel { SecurityViewModel(get(), get(), get(), get()) }
8584
viewModel { SharesViewModel(get(), get(), get()) }
8685
viewModel { SharedWithMeViewModel(get(), get(), get(), get()) }

frontend/composeApp/src/kotlin/com/vaultstadio/app/di/InMemoryTokenStorage.kt renamed to frontend/composeApp/src/main/kotlin/com/vaultstadio/app/di/InMemoryTokenStorage.kt

File renamed without changes.

0 commit comments

Comments
 (0)