Skip to content

Commit a04e3dc

Browse files
committed
added main activity module, refactored BaseKoinModule to expect single module
1 parent 1dcb3d4 commit a04e3dc

File tree

11 files changed

+68
-41
lines changed

11 files changed

+68
-41
lines changed

app/build.gradle.kts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,12 @@ dependencies {
5858
implementation(project(DeveloperTools))
5959
}
6060

61+
with(Dependencies.Compose) {
62+
implementation(ComposeDestinations)
63+
implementation(OrbitMvi)
64+
}
65+
6166
implementation(Dependencies.Koin.Compose)
62-
implementation(Dependencies.Compose.ComposeDestinations)
6367
implementation(Dependencies.AndroidX.SplashScreen)
6468
implementation(Dependencies.ProfilerInstaller)
6569
}

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
tools:targetApi="29" />
2424

2525
<activity
26-
android:name=".MainActivity"
26+
android:name=".launcher.MainActivity"
2727
android:exported="true"
2828
android:launchMode="singleTop"
2929
android:theme="@style/Theme.Launcher">

app/src/main/java/pseudoankit/droid/tasky/MainActivity.kt renamed to app/src/main/java/pseudoankit/droid/tasky/launcher/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package pseudoankit.droid.tasky
1+
package pseudoankit.droid.tasky.launcher
22

33
import android.Manifest
44
import android.content.Intent
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package pseudoankit.droid.tasky.launcher
2+
3+
import org.koin.androidx.viewmodel.dsl.viewModel
4+
import org.koin.core.module.Module
5+
import org.koin.dsl.module
6+
import pseudoankit.droid.core.koin.BaseKoinModule
7+
8+
object MainActivityModule : BaseKoinModule() {
9+
10+
override val modules: Module
11+
get() = module {
12+
viewModel { MainActivityViewModel() }
13+
}
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package pseudoankit.droid.tasky.launcher
2+
3+
import androidx.lifecycle.ViewModel
4+
import androidx.lifecycle.viewModelScope
5+
import org.orbitmvi.orbit.Container
6+
import org.orbitmvi.orbit.ContainerHost
7+
import org.orbitmvi.orbit.container
8+
9+
class MainActivityViewModel : ViewModel(),
10+
ContainerHost<MainActivityViewModel.State, MainActivityViewModel.SideEffect> {
11+
12+
override val container: Container<State, SideEffect> = viewModelScope.container(State())
13+
14+
class State()
15+
sealed interface SideEffect {
16+
17+
}
18+
}

core/core/src/main/java/pseudoankit/droid/core/koin/BaseKoinModule.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ import org.koin.core.module.Module
77
abstract class BaseKoinModule {
88
private var isLoaded = false
99

10-
abstract val provideModules: List<Module>
10+
abstract val modules: Module
1111

1212
fun loadModules() {
1313
if (isLoaded) return
1414

1515
isLoaded = true
16-
loadKoinModules(provideModules)
16+
loadKoinModules(modules)
1717
}
1818

1919
fun unloadModules() {
2020
if (isLoaded.not()) return
2121

2222
isLoaded = false
23-
unloadKoinModules(provideModules)
23+
unloadKoinModules(modules)
2424
}
2525
}

feature/agenda/reminder/src/main/java/pseudoankit/droid/tasky/reminder/di/ReminderModule.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ import pseudoankit.droid.tasky.reminder.presentation.ReminderViewModel
88

99
internal object ReminderModule : BaseKoinModule() {
1010

11-
override val provideModules: List<Module>
12-
get() = listOf(
13-
module {
14-
viewModel { ReminderViewModel(get(), get(), get()) }
15-
}
16-
)
11+
override val modules: Module
12+
get() = module {
13+
viewModel { ReminderViewModel(get(), get(), get()) }
14+
}
1715
}

feature/authentication/src/main/java/pseudoankit/droid/authentication/di/LoginModule.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ import pseudoankit.droid.core.koin.BaseKoinModule
99

1010
internal object LoginModule : BaseKoinModule() {
1111

12-
override val provideModules: List<Module>
13-
get() = listOf(
14-
module {
15-
factory { LoginUserUseCase(get()) }
12+
override val modules: Module
13+
get() = module {
14+
factory { LoginUserUseCase(get()) }
1615

17-
viewModel { LoginViewModel(get(), get()) }
18-
}
19-
)
16+
viewModel { LoginViewModel(get(), get()) }
17+
}
2018
}

feature/authentication/src/main/java/pseudoankit/droid/authentication/di/RegistrationModule.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ import pseudoankit.droid.core.koin.BaseKoinModule
99

1010
internal object RegistrationModule : BaseKoinModule() {
1111

12-
override val provideModules: List<Module>
13-
get() = listOf(
14-
module {
15-
factory { RegisterUserUseCase() }
16-
viewModel { RegistrationViewModel(get(), get()) }
17-
}
18-
)
12+
override val modules: Module
13+
get() = module {
14+
factory { RegisterUserUseCase() }
15+
viewModel { RegistrationViewModel(get(), get()) }
16+
}
17+
1918
}

feature/home/src/main/java/pseudoankit/droid/tasky/home/di/AgendaItemScreenModule.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ import pseudoankit.droid.core.koin.BaseKoinModule
77
import pseudoankit.droid.tasky.home.presentation.taskyitems.AgendaItemsViewModel
88

99
object AgendaItemScreenModule : BaseKoinModule() {
10-
override val provideModules: List<Module>
11-
get() = listOf(
12-
module {
13-
viewModel { AgendaItemsViewModel() }
14-
}
15-
)
10+
override val modules: Module
11+
get() = module {
12+
viewModel { AgendaItemsViewModel() }
13+
}
1614
}

0 commit comments

Comments
 (0)