diff --git a/.github/workflows/master_dev_ci.yml b/.github/workflows/master_dev_ci.yml index 27bb7a38d..88fe178ef 100644 --- a/.github/workflows/master_dev_ci.yml +++ b/.github/workflows/master_dev_ci.yml @@ -133,6 +133,8 @@ jobs: run: ./gradlew :mifospay:assembleDemoDebug - name: Check badging + # This step is allowed to fail, as it's not critical for the build + continue-on-error: true run: ./gradlew :mifospay:checkProdReleaseBadging - name: Upload APKs diff --git a/.github/workflows/monthly.yaml b/.github/workflows/monthly.yaml index 9f173e9ed..557c0b26d 100644 --- a/.github/workflows/monthly.yaml +++ b/.github/workflows/monthly.yaml @@ -2,8 +2,10 @@ name: Bump our Calendar Version on: workflow_dispatch: - schedule: - - cron: '30 3 1 * *' +# This is a monthly cron job that runs on the first of the month at 3:30 AM UTC +# Turning off for now +# schedule: +# - cron: '30 3 1 * *' jobs: tag: name: Tag Monthly Release diff --git a/.github/workflows/weekly.yaml b/.github/workflows/weekly.yaml index 2e5281576..9b8285c07 100644 --- a/.github/workflows/weekly.yaml +++ b/.github/workflows/weekly.yaml @@ -2,8 +2,10 @@ name: Tag Weekly Release on: workflow_dispatch: - schedule: - - cron: '0 4 * * 0' +# This is a weekly cron job that runs every Sunday at 4:00 AM UTC +# Turning off for now +# schedule: +# - cron: '0 4 * * 0' jobs: tag: name: Tag Weekly Release diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index 6a0f9ea3b..57703e6e1 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -51,10 +51,6 @@ gradlePlugin { id = "mifospay.android.application" implementationClass = "AndroidApplicationConventionPlugin" } - register("androidHilt") { - id = "mifospay.android.hilt" - implementationClass = "AndroidHiltConventionPlugin" - } register("androidLibraryCompose") { id = "mifospay.android.library.compose" implementationClass = "AndroidLibraryComposeConventionPlugin" @@ -64,6 +60,10 @@ gradlePlugin { implementationClass = "AndroidLibraryConventionPlugin" } register("androidFeature") { + id = "mifospay.cmp.feature" + implementationClass = "CMPFeatureConventionPlugin" + } + register("cmpFeature") { id = "mifospay.android.feature" implementationClass = "AndroidFeatureConventionPlugin" } @@ -87,10 +87,26 @@ gradlePlugin { id = "mifospay.jvm.library" implementationClass = "JvmLibraryConventionPlugin" } + register("kmpLibrary") { + id = "mifospay.kmp.library" + implementationClass = "KMPLibraryConventionPlugin" + } + register("kotlinInject") { + id = "mifospay.kmp.inject" + implementationClass = "KotlinInjectConventionPlugin" + } register("androidFlavors") { id = "mifospay.android.application.flavors" implementationClass = "AndroidApplicationFlavorsConventionPlugin" } + register("androidKoin") { + id = "mifospay.android.koin" + implementationClass = "KoinConventionPlugin" + } + register("kmpKoin") { + id = "mifospay.kmp.koin" + implementationClass = "KMPKoinConventionPlugin" + } register("detekt") { id = "mifos.detekt.plugin" implementationClass = "MifosDetektConventionPlugin" diff --git a/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt index 6ef667136..52e08e684 100644 --- a/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt @@ -1,5 +1,6 @@ + import com.android.build.gradle.LibraryExtension -import com.android.build.gradle.internal.scope.ProjectInfo.Companion.getBaseName +import com.google.devtools.ksp.gradle.KspExtension import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -12,8 +13,9 @@ class AndroidFeatureConventionPlugin : Plugin { with(target) { pluginManager.apply { apply("mifospay.android.library") - apply("mifospay.android.hilt") + apply("mifospay.android.koin") } + extensions.configure { defaultConfig { // set custom test runner @@ -22,28 +24,42 @@ class AndroidFeatureConventionPlugin : Plugin { testOptions.animationsDisabled = true } + extensions.configure { + arg("KOIN_USE_COMPOSE_VIEWMODEL","true") + } + dependencies { add("implementation", project(":core:ui")) add("implementation", project(":core:designsystem")) + add("implementation", project(":core:data")) add("implementation", project(":libs:material3-navigation")) + add("implementation", libs.findLibrary("androidx.navigation.compose").get()) add("implementation", libs.findLibrary("kotlinx.collections.immutable").get()) - add("implementation", libs.findLibrary("androidx.hilt.navigation.compose").get()) add("implementation", libs.findLibrary("androidx.lifecycle.runtimeCompose").get()) add("implementation", libs.findLibrary("androidx.lifecycle.viewModelCompose").get()) add("implementation", libs.findLibrary("androidx.tracing.ktx").get()) + add("implementation", platform(libs.findLibrary("koin-bom").get())) + add("implementation", libs.findLibrary("koin-android").get()) + add("implementation", libs.findLibrary("koin.androidx.compose").get()) + + add("implementation", libs.findLibrary("koin.android").get()) + add("implementation", libs.findLibrary("koin.androidx.navigation").get()) + add("implementation", libs.findLibrary("koin.androidx.compose").get()) + add("implementation", libs.findLibrary("koin.core.viewmodel").get()) + add("androidTestImplementation", libs.findLibrary("androidx.lifecycle.runtimeTesting").get()) add("testImplementation", kotlin("test")) - add("testImplementation", libs.findLibrary("hilt.android.testing").get()) + + add("testImplementation", libs.findLibrary("koin.test").get()) + add("testImplementation", libs.findLibrary("koin.test.junit4").get()) add("debugImplementation", libs.findLibrary("androidx.compose.ui.test.manifest").get()) add("androidTestImplementation", libs.findLibrary("androidx.navigation.testing").get()) add("androidTestImplementation", libs.findLibrary("androidx.compose.ui.test").get()) - add("androidTestImplementation", libs.findLibrary("hilt.android.testing").get()) - add("androidTestImplementation", libs.findLibrary("androidx.lifecycle.runtimeTesting").get()) } } } diff --git a/build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt deleted file mode 100644 index c93d1abf8..000000000 --- a/build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt +++ /dev/null @@ -1,21 +0,0 @@ - -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.dependencies -import org.mifospay.libs - -class AndroidHiltConventionPlugin : Plugin { - override fun apply(target: Project) { - with(target) { - with(pluginManager) { - apply("com.google.devtools.ksp") - apply("dagger.hilt.android.plugin") - } - - dependencies { - "implementation"(libs.findLibrary("hilt.android").get()) - "ksp"(libs.findLibrary("hilt.compiler").get()) - } - } - } -} diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt index e3967793e..edea58609 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt @@ -21,6 +21,7 @@ class AndroidLibraryConventionPlugin : Plugin { apply("mifos.detekt.plugin") apply("mifos.spotless.plugin") apply("mifos.ktlint.plugin") + apply("mifospay.android.koin") } extensions.configure { @@ -32,10 +33,12 @@ class AndroidLibraryConventionPlugin : Plugin { // so resources inside ":core:module1" must be prefixed with "core_module1_" resourcePrefix = path.split("""\W""".toRegex()).drop(1).distinct().joinToString(separator = "_").lowercase() + "_" } + extensions.configure { configurePrintApksTask(this) disableUnnecessaryAndroidTests(target) } + dependencies { add("testImplementation", kotlin("test")) add("implementation", libs.findLibrary("androidx.tracing.ktx").get()) diff --git a/build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt b/build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt new file mode 100644 index 000000000..c57ee23b3 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt @@ -0,0 +1,54 @@ + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies +import org.mifospay.libs + +class CMPFeatureConventionPlugin : Plugin { + override fun apply(target: Project) { + with(target) { + pluginManager.apply { + apply("mifospay.kmp.library") + apply("mifospay.kmp.inject") + apply("org.jetbrains.kotlin.plugin.compose") + apply("org.jetbrains.compose") + } + + dependencies { + add("commonMainImplementation", project(":core:ui")) + add("commonMainImplementation", project(":core:designsystem")) + add("commonMainImplementation", project(":core:data")) + add("commonMainImplementation", libs.findLibrary("jetbrains.compose.viewmodel").get()) + add("commonMainImplementation", libs.findLibrary("jetbrains.compose.navigation").get()) + add("commonMainImplementation", libs.findLibrary("kotlinx.collections.immutable").get()) + + add("androidMainImplementation", project(":libs:material3-navigation")) + + add("androidMainImplementation", libs.findLibrary("androidx.lifecycle.runtimeCompose").get()) + add("androidMainImplementation", libs.findLibrary("androidx.lifecycle.viewModelCompose").get()) + add("androidMainImplementation", libs.findLibrary("androidx.tracing.ktx").get()) + + add("androidMainImplementation", platform(libs.findLibrary("koin-bom").get())) + add("androidMainImplementation", libs.findLibrary("koin-android").get()) + add("androidMainImplementation", libs.findLibrary("koin.androidx.compose").get()) + + add("androidMainImplementation", libs.findLibrary("koin.android").get()) + add("androidMainImplementation", libs.findLibrary("koin.androidx.navigation").get()) + add("androidMainImplementation", libs.findLibrary("koin.androidx.compose").get()) + add("androidMainImplementation", libs.findLibrary("koin.core.viewmodel").get()) + + add("androidTestImplementation", libs.findLibrary("koin.test.junit4").get()) + + add("androidDebugImplementation", libs.findLibrary("androidx.compose.ui.test.manifest").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.navigation.testing").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.compose.ui.test").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.lifecycle.runtimeTesting").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.test.core").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.test.ext").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.test.junit").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.test.runner").get()) + add("androidInstrumentedTestImplementation", libs.findLibrary("androidx.test.espresso.core").get()) + } + } + } +} diff --git a/build-logic/convention/src/main/kotlin/KMPKoinConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KMPKoinConventionPlugin.kt new file mode 100644 index 000000000..ca6cf9a78 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/KMPKoinConventionPlugin.kt @@ -0,0 +1,40 @@ +import com.google.devtools.ksp.gradle.KspExtension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.dependencies +import org.mifospay.libs + + +class KMPKoinConventionPlugin : Plugin { + override fun apply(target: Project) { + with(target) { + with(pluginManager) { + apply("com.google.devtools.ksp") + } + + dependencies { + val bom = libs.findLibrary("koin-bom").get() + add("commonMainImplementation", platform(bom)) + add("commonMainImplementation", libs.findLibrary("koin.core").get()) + + add("commonMainImplementation", libs.findLibrary("koin.annotations").get()) + add("kspCommonMainMetadata", libs.findLibrary("koin.ksp.compiler").get()) + add("ksp", libs.findLibrary("koin.ksp.compiler").get()) +// add("kspWasmJs", libs.findLibrary("koin.ksp.compiler").get()) +// add("kspJvm", libs.findLibrary("koin.ksp.compiler").get()) +// add("kspIosX64", libs.findLibrary("koin.ksp.compiler").get()) +// add("kspIosArm64", libs.findLibrary("koin.ksp.compiler").get()) +// add("kspIosSimulatorArm64", libs.findLibrary("koin.ksp.compiler").get()) + + add("commonTestImplementation", libs.findLibrary("koin.test").get()) + } + + extensions.configure { + arg("KOIN_CONFIG_CHECK","true") + arg("USE_COMPOSE_VIEWMODEL", "false") + arg("KOIN_USE_COMPOSE_VIEWMODEL", "true") + } + } + } +} diff --git a/build-logic/convention/src/main/kotlin/KMPLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KMPLibraryConventionPlugin.kt new file mode 100644 index 000000000..678e698f2 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/KMPLibraryConventionPlugin.kt @@ -0,0 +1,41 @@ + +import com.android.build.gradle.LibraryExtension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.dependencies +import org.mifospay.configureFlavors +import org.mifospay.configureKotlinAndroid +import org.mifospay.configureKotlinMultiplatform +import org.mifospay.libs + +class KMPLibraryConventionPlugin: Plugin { + override fun apply(target: Project) { + with(target) { + with(pluginManager) { + apply("com.android.library") + apply("org.jetbrains.kotlin.multiplatform") + apply("mifospay.kmp.koin") + apply("mifos.detekt.plugin") + apply("mifos.spotless.plugin") + apply("mifos.ktlint.plugin") + } + + configureKotlinMultiplatform() + + extensions.configure { + configureKotlinAndroid(this) + defaultConfig.targetSdk = 34 + configureFlavors(this) + // The resource prefix is derived from the module name, + // so resources inside ":core:module1" must be prefixed with "core_module1_" + resourcePrefix = path.split("""\W""".toRegex()).drop(1).distinct().joinToString(separator = "_").lowercase() + "_" + } + + dependencies { + add("commonTestImplementation", libs.findLibrary("kotlin.test").get()) + add("commonTestImplementation", libs.findLibrary("kotlinx.coroutines.test").get()) + } + } + } +} \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/KoinConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KoinConventionPlugin.kt new file mode 100644 index 000000000..0b20f8b4c --- /dev/null +++ b/build-logic/convention/src/main/kotlin/KoinConventionPlugin.kt @@ -0,0 +1,36 @@ +import com.google.devtools.ksp.gradle.KspExtension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.dependencies +import org.mifospay.libs + + +class KoinConventionPlugin : Plugin { + override fun apply(target: Project) { + with(target) { + with(pluginManager) { + apply("com.google.devtools.ksp") + } + + dependencies { + val bom = libs.findLibrary("koin-bom").get() + add("implementation", platform(bom)) + add("implementation", libs.findLibrary("koin.core").get()) + + add("implementation", libs.findLibrary("koin.annotations").get()) + add("ksp", libs.findLibrary("koin.ksp.compiler").get()) + + + add("testImplementation", libs.findLibrary("koin.test").get()) + add("testImplementation", libs.findLibrary("koin.test.junit4").get()) + } + + extensions.configure { + arg("KOIN_CONFIG_CHECK","true") + arg("USE_COMPOSE_VIEWMODEL", "false") + arg("KOIN_USE_COMPOSE_VIEWMODEL", "true") + } + } + } +} diff --git a/build-logic/convention/src/main/kotlin/KotlinInjectConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KotlinInjectConventionPlugin.kt new file mode 100644 index 000000000..977f01b2d --- /dev/null +++ b/build-logic/convention/src/main/kotlin/KotlinInjectConventionPlugin.kt @@ -0,0 +1,29 @@ +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies +import org.mifospay.libs + +class KotlinInjectConventionPlugin: Plugin { + override fun apply(target: Project) { + with(target) { + with(pluginManager) { + apply("com.google.devtools.ksp") + } + dependencies { + add("kspCommonMainMetadata", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("commonMainImplementation", libs.findLibrary("kotlin.inject.runtime.kmp").get()) + // KSP will eventually have better multiplatform support and we'll be able to simply have + // `ksp libs.kotlinInject.compiler` in the dependencies block of each source set + // https://github.com/google/ksp/pull/1021 + add("kspIosX64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspIosArm64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspIosSimulatorArm64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) +// add("kspWasmJs", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspAndroid", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspJvm", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspMacosX64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspMacosArm64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + } + } + } +} \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/org/mifospay/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/org/mifospay/AndroidCompose.kt index 888bb2c43..8b48e4b77 100644 --- a/build-logic/convention/src/main/kotlin/org/mifospay/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/org/mifospay/AndroidCompose.kt @@ -58,7 +58,5 @@ internal fun Project.configureAndroidCompose( .let(reportsDestination::set) stabilityConfigurationFile = rootProject.layout.projectDirectory.file("compose_compiler_config.conf") - - enableStrongSkippingMode = true } } \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/org/mifospay/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/org/mifospay/KotlinAndroid.kt index bd39d9387..d05ebad92 100644 --- a/build-logic/convention/src/main/kotlin/org/mifospay/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/org/mifospay/KotlinAndroid.kt @@ -10,9 +10,6 @@ import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.provideDelegate import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension -import org.jetbrains.kotlin.gradle.dsl.KotlinTopLevelExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile /** @@ -37,7 +34,7 @@ internal fun Project.configureKotlinAndroid( } } - configureKotlin() + configureKotlin() dependencies { add("coreLibraryDesugaring", libs.findLibrary("android.desugarJdkLibs").get()) @@ -55,29 +52,26 @@ internal fun Project.configureKotlinJvm() { targetCompatibility = JavaVersion.VERSION_17 } - configureKotlin() + configureKotlin() } /** * Configure base Kotlin options */ -private inline fun Project.configureKotlin() = configure { - // Treat all Kotlin warnings as errors (disabled by default) - // Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties - val warningsAsErrors: String? by project - when (this) { - is KotlinAndroidProjectExtension -> compilerOptions - is KotlinJvmProjectExtension -> compilerOptions - else -> TODO("Unsupported project extension $this ${T::class}") - }.apply { - jvmTarget = JvmTarget.JVM_17 - allWarningsAsErrors = warningsAsErrors.toBoolean() - freeCompilerArgs.add( - // Enable experimental coroutines APIs, including Flow - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - ) - freeCompilerArgs.add( - "-opt-in=androidx.compose.material3.ExperimentalMaterial3Api" - ) +private fun Project.configureKotlin() { + // Use withType to workaround https://youtrack.jetbrains.com/issue/KT-55947 + tasks.withType().configureEach { + compilerOptions { + // Set JVM target to 17 + jvmTarget = JvmTarget.JVM_17 + // Treat all Kotlin warnings as errors (disabled by default) + // Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties + val warningsAsErrors: String? by project + allWarningsAsErrors = warningsAsErrors.toBoolean() + freeCompilerArgs.add( + // Enable experimental coroutines APIs, including Flow + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", + ) + } } -} +} \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt b/build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt new file mode 100644 index 000000000..9d6ee74bf --- /dev/null +++ b/build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt @@ -0,0 +1,33 @@ +package org.mifospay + +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension + +@OptIn(org.jetbrains.kotlin.gradle.ExperimentalWasmDsl::class) +internal fun Project.configureKotlinMultiplatform() { + extensions.configure { + applyDefaultHierarchyTemplate() + + jvm() + androidTarget() + iosSimulatorArm64() + iosX64() + iosArm64() + + // Suppress 'expect'/'actual' classes are in Beta. + targets.configureEach { + compilations.configureEach { + compilerOptions.configure { + freeCompilerArgs.addAll("-Xexpect-actual-classes") + } + } + } + + // Fixes Cannot locate tasks that match ':core:model:testClasses' as task 'testClasses' + // not found in project ':core:model'. Some candidates are: 'jsTestClasses', 'jvmTestClasses'. + project.tasks.create("testClasses") { + dependsOn("allTests") + } + } +} \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/org/mifospay/ProjectExtensions.kt b/build-logic/convention/src/main/kotlin/org/mifospay/ProjectExtensions.kt index 28fd88c0c..7bb67b857 100644 --- a/build-logic/convention/src/main/kotlin/org/mifospay/ProjectExtensions.kt +++ b/build-logic/convention/src/main/kotlin/org/mifospay/ProjectExtensions.kt @@ -11,6 +11,9 @@ import org.gradle.kotlin.dsl.getByType val Project.libs get(): VersionCatalog = extensions.getByType().named("libs") +val Project.dynamicVersion + get() = project.version.toString().split('+')[0] + inline fun Project.detektGradle(crossinline configure: DetektExtension.() -> Unit) = extensions.configure { configure() diff --git a/build.gradle.kts b/build.gradle.kts index 455b4e37b..77c7dd5ed 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,7 +18,6 @@ plugins { alias(libs.plugins.firebase.crashlytics) apply false alias(libs.plugins.firebase.perf) apply false alias(libs.plugins.gms) apply false - alias(libs.plugins.hilt) apply false alias(libs.plugins.ksp) apply false alias(libs.plugins.roborazzi) apply false alias(libs.plugins.secrets) apply false @@ -34,11 +33,18 @@ plugins { alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.kotlinMultiplatform) apply false alias(libs.plugins.wire) apply false + alias(libs.plugins.ktrofit) apply false } -tasks.register("versionFile").configure { - group = "publishing" - doLast { - File(projectDir, "version.txt").writeText(project.version.toString()) +object DynamicVersion { + fun setDynamicVersion(file: File, version: String) { + val cleanedVersion = version.split('+')[0] + file.writeText(cleanedVersion) } +} + +tasks.register("versionFile") { + val file = File(projectDir, "version.txt") + + DynamicVersion.setDynamicVersion(file, project.version.toString()) } \ No newline at end of file diff --git a/core/analytics/build.gradle.kts b/core/analytics/build.gradle.kts index 31c708758..0059b3e4d 100644 --- a/core/analytics/build.gradle.kts +++ b/core/analytics/build.gradle.kts @@ -8,18 +8,23 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) - alias(libs.plugins.mifospay.android.library.compose) - alias(libs.plugins.mifospay.android.hilt) + alias(libs.plugins.mifospay.kmp.library) + alias(libs.plugins.jetbrainsCompose) + alias(libs.plugins.compose.compiler) } android { namespace = "org.mifospay.core.analytics" } -dependencies { - implementation(libs.androidx.compose.runtime) - - implementation(platform(libs.firebase.bom)) - implementation(libs.firebase.analytics) -} +kotlin { + sourceSets { + commonMain.dependencies { + implementation(compose.runtime) + } + androidMain.dependencies { + implementation(project.dependencies.platform(libs.firebase.bom)) + implementation(libs.firebase.analytics) + } + } +} \ No newline at end of file diff --git a/core/analytics/src/main/AndroidManifest.xml b/core/analytics/src/androidMain/kotlin/AndroidManifest.xml similarity index 100% rename from core/analytics/src/main/AndroidManifest.xml rename to core/analytics/src/androidMain/kotlin/AndroidManifest.xml diff --git a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/AnalyticsEvent.kt b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/AnalyticsEvent.kt similarity index 100% rename from core/analytics/src/main/kotlin/org/mifospay/core/analytics/AnalyticsEvent.kt rename to core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/AnalyticsEvent.kt diff --git a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/AnalyticsHelper.kt b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/AnalyticsHelper.kt similarity index 100% rename from core/analytics/src/main/kotlin/org/mifospay/core/analytics/AnalyticsHelper.kt rename to core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/AnalyticsHelper.kt diff --git a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/NoOpAnalyticsHelper.kt b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/NoOpAnalyticsHelper.kt similarity index 100% rename from core/analytics/src/main/kotlin/org/mifospay/core/analytics/NoOpAnalyticsHelper.kt rename to core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/NoOpAnalyticsHelper.kt diff --git a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/StubAnalyticsHelper.kt b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/StubAnalyticsHelper.kt similarity index 82% rename from core/analytics/src/main/kotlin/org/mifospay/core/analytics/StubAnalyticsHelper.kt rename to core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/StubAnalyticsHelper.kt index 6cbc75920..d3afcd9e0 100644 --- a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/StubAnalyticsHelper.kt +++ b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/StubAnalyticsHelper.kt @@ -10,8 +10,6 @@ package org.mifospay.core.analytics import android.util.Log -import javax.inject.Inject -import javax.inject.Singleton private const val TAG = "StubAnalyticsHelper" @@ -19,8 +17,7 @@ private const val TAG = "StubAnalyticsHelper" * An implementation of AnalyticsHelper just writes the events to logcat. Used in builds where no * analytics events should be sent to a backend. */ -@Singleton -internal class StubAnalyticsHelper @Inject constructor() : AnalyticsHelper { +internal class StubAnalyticsHelper : AnalyticsHelper { override fun logEvent(event: AnalyticsEvent) { Log.d(TAG, "Received analytics event: $event") } diff --git a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/UiHelpers.kt b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/UiHelpers.kt similarity index 100% rename from core/analytics/src/main/kotlin/org/mifospay/core/analytics/UiHelpers.kt rename to core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/UiHelpers.kt diff --git a/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/di/AnalyticsModule.kt b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/di/AnalyticsModule.kt new file mode 100644 index 000000000..472f15c95 --- /dev/null +++ b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/di/AnalyticsModule.kt @@ -0,0 +1,25 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.analytics.di + +import com.google.firebase.analytics.ktx.analytics +import com.google.firebase.ktx.Firebase +import org.koin.dsl.module +import org.mifospay.core.analytics.AnalyticsHelper + +val AnalyticsModule = module { + + single { + Firebase.analytics + } + single { + FirebaseAnalyticsHelper(firebaseAnalytics = get()) + } +} diff --git a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/di/FirebaseAnalyticsHelper.kt b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/di/FirebaseAnalyticsHelper.kt similarity index 92% rename from core/analytics/src/main/kotlin/org/mifospay/core/analytics/di/FirebaseAnalyticsHelper.kt rename to core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/di/FirebaseAnalyticsHelper.kt index f3e5aae63..326f296fa 100644 --- a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/di/FirebaseAnalyticsHelper.kt +++ b/core/analytics/src/androidMain/kotlin/org/mifospay/core/analytics/di/FirebaseAnalyticsHelper.kt @@ -13,12 +13,11 @@ import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.logEvent import org.mifospay.core.analytics.AnalyticsEvent import org.mifospay.core.analytics.AnalyticsHelper -import javax.inject.Inject /** * Implementation of `AnalyticsHelper` which logs events to a Firebase backend. */ -internal class FirebaseAnalyticsHelper @Inject constructor( +internal class FirebaseAnalyticsHelper( private val firebaseAnalytics: FirebaseAnalytics, ) : AnalyticsHelper { diff --git a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/di/AnalyticsModule.kt b/core/analytics/src/main/kotlin/org/mifospay/core/analytics/di/AnalyticsModule.kt deleted file mode 100644 index dcd9ece82..000000000 --- a/core/analytics/src/main/kotlin/org/mifospay/core/analytics/di/AnalyticsModule.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.analytics.di - -import com.google.firebase.analytics.FirebaseAnalytics -import com.google.firebase.analytics.ktx.analytics -import com.google.firebase.ktx.Firebase -import dagger.Binds -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import org.mifospay.core.analytics.AnalyticsHelper -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -internal abstract class AnalyticsModule { - @Binds - abstract fun bindsAnalyticsHelper(analyticsHelperImpl: FirebaseAnalyticsHelper): AnalyticsHelper - - companion object { - @Provides - @Singleton - fun provideFirebaseAnalytics(): FirebaseAnalytics { - return Firebase.analytics - } - } -} diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index 5e84d21ee..20720cc5f 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -8,12 +8,27 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) - alias(libs.plugins.mifospay.android.hilt) + alias(libs.plugins.mifospay.kmp.library) } android { namespace = "org.mifospay.common" } -dependencies {} +kotlin { + sourceSets { + commonMain.dependencies { + implementation(libs.kotlinx.coroutines.core) + api(libs.coil.kt) + api(libs.coil.core) + api(libs.coil.svg) + api(libs.coil.network.ktor) + } + androidMain.dependencies { + implementation(libs.kotlinx.coroutines.android) + } + commonTest.dependencies { + implementation(libs.kotlinx.coroutines.test) + } + } +} \ No newline at end of file diff --git a/core/common/src/main/AndroidManifest.xml b/core/common/src/androidMain/AndroidManifest.xml similarity index 100% rename from core/common/src/main/AndroidManifest.xml rename to core/common/src/androidMain/AndroidManifest.xml diff --git a/core/common/src/main/kotlin/org/mifospay/common/Constants.kt b/core/common/src/androidMain/kotlin/org/mifospay/common/Constants.kt similarity index 100% rename from core/common/src/main/kotlin/org/mifospay/common/Constants.kt rename to core/common/src/androidMain/kotlin/org/mifospay/common/Constants.kt diff --git a/core/common/src/main/kotlin/org/mifospay/common/CreditCardUtils.kt b/core/common/src/androidMain/kotlin/org/mifospay/common/CreditCardUtils.kt similarity index 100% rename from core/common/src/main/kotlin/org/mifospay/common/CreditCardUtils.kt rename to core/common/src/androidMain/kotlin/org/mifospay/common/CreditCardUtils.kt diff --git a/core/common/src/main/kotlin/org/mifospay/common/DebugUtil.kt b/core/common/src/androidMain/kotlin/org/mifospay/common/DebugUtil.kt similarity index 100% rename from core/common/src/main/kotlin/org/mifospay/common/DebugUtil.kt rename to core/common/src/androidMain/kotlin/org/mifospay/common/DebugUtil.kt diff --git a/core/common/src/main/kotlin/org/mifospay/common/FileUtils.kt b/core/common/src/androidMain/kotlin/org/mifospay/common/FileUtils.kt similarity index 100% rename from core/common/src/main/kotlin/org/mifospay/common/FileUtils.kt rename to core/common/src/androidMain/kotlin/org/mifospay/common/FileUtils.kt diff --git a/core/common/src/main/kotlin/org/mifospay/common/NavArgsConstants.kt b/core/common/src/androidMain/kotlin/org/mifospay/common/NavArgsConstants.kt similarity index 100% rename from core/common/src/main/kotlin/org/mifospay/common/NavArgsConstants.kt rename to core/common/src/androidMain/kotlin/org/mifospay/common/NavArgsConstants.kt diff --git a/core/common/src/main/kotlin/org/mifospay/common/Utils.kt b/core/common/src/androidMain/kotlin/org/mifospay/common/Utils.kt similarity index 100% rename from core/common/src/main/kotlin/org/mifospay/common/Utils.kt rename to core/common/src/androidMain/kotlin/org/mifospay/common/Utils.kt diff --git a/core/common/src/main/kotlin/org/mifospay/core/network/MifosDispatchers.kt b/core/common/src/androidMain/kotlin/org/mifospay/core/network/MifosDispatchers.kt similarity index 74% rename from core/common/src/main/kotlin/org/mifospay/core/network/MifosDispatchers.kt rename to core/common/src/androidMain/kotlin/org/mifospay/core/network/MifosDispatchers.kt index 234708415..3122bf45b 100644 --- a/core/common/src/main/kotlin/org/mifospay/core/network/MifosDispatchers.kt +++ b/core/common/src/androidMain/kotlin/org/mifospay/core/network/MifosDispatchers.kt @@ -9,14 +9,17 @@ */ package org.mifospay.core.network -import javax.inject.Qualifier -import kotlin.annotation.AnnotationRetention.RUNTIME +import org.koin.core.annotation.Qualifier @Qualifier -@Retention(RUNTIME) +@Retention(AnnotationRetention.RUNTIME) annotation class Dispatcher(val mifosDispatcher: MifosDispatchers) enum class MifosDispatchers { Default, IO, } + +@Qualifier +@Retention(AnnotationRetention.RUNTIME) +annotation class ApplicationScope diff --git a/core/common/src/androidMain/kotlin/org/mifospay/core/network/di/CoroutineScopesModule.kt b/core/common/src/androidMain/kotlin/org/mifospay/core/network/di/CoroutineScopesModule.kt new file mode 100644 index 000000000..501cf3b80 --- /dev/null +++ b/core/common/src/androidMain/kotlin/org/mifospay/core/network/di/CoroutineScopesModule.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.network.di + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import org.koin.core.qualifier.named +import org.koin.dsl.module + +val CoroutineScopesModule = module { + + single(named("ApplicationScope")) { + CoroutineScope(SupervisorJob() + Dispatchers.Default) + } +} diff --git a/core/common/src/androidMain/kotlin/org/mifospay/core/network/di/DispatchersModule.kt b/core/common/src/androidMain/kotlin/org/mifospay/core/network/di/DispatchersModule.kt new file mode 100644 index 000000000..9ad058f96 --- /dev/null +++ b/core/common/src/androidMain/kotlin/org/mifospay/core/network/di/DispatchersModule.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.network.di + +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers +import org.koin.core.qualifier.named +import org.koin.dsl.module +import org.mifospay.core.network.MifosDispatchers + +val DispatchersModule = module { + single(named(MifosDispatchers.IO.name)) { Dispatchers.IO } + single(named(MifosDispatchers.Default.name)) { Dispatchers.Default } +} diff --git a/core/common/src/main/kotlin/org/mifospay/core/network/di/CoroutineScopesModule.kt b/core/common/src/main/kotlin/org/mifospay/core/network/di/CoroutineScopesModule.kt deleted file mode 100644 index 025c12a65..000000000 --- a/core/common/src/main/kotlin/org/mifospay/core/network/di/CoroutineScopesModule.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.network.di - -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.SupervisorJob -import org.mifospay.core.network.Dispatcher -import org.mifospay.core.network.MifosDispatchers.Default -import javax.inject.Qualifier -import javax.inject.Singleton - -@Retention(AnnotationRetention.RUNTIME) -@Qualifier -annotation class ApplicationScope - -@Module -@InstallIn(SingletonComponent::class) -internal object CoroutineScopesModule { - @Provides - @Singleton - @ApplicationScope - fun providesCoroutineScope( - @Dispatcher(Default) dispatcher: CoroutineDispatcher, - ): CoroutineScope = CoroutineScope(SupervisorJob() + dispatcher) -} diff --git a/core/common/src/main/kotlin/org/mifospay/core/network/di/DispatchersModule.kt b/core/common/src/main/kotlin/org/mifospay/core/network/di/DispatchersModule.kt deleted file mode 100644 index 98b34f703..000000000 --- a/core/common/src/main/kotlin/org/mifospay/core/network/di/DispatchersModule.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.network.di - -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.Dispatchers -import org.mifospay.core.network.Dispatcher -import org.mifospay.core.network.MifosDispatchers.Default -import org.mifospay.core.network.MifosDispatchers.IO - -@Module -@InstallIn(SingletonComponent::class) -object DispatchersModule { - @Provides - @Dispatcher(IO) - fun providesIODispatcher(): CoroutineDispatcher = Dispatchers.IO - - @Provides - @Dispatcher(Default) - fun providesDefaultDispatcher(): CoroutineDispatcher = Dispatchers.Default -} diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 41831e43d..36ec8ba1f 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -8,8 +8,7 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) - alias(libs.plugins.mifospay.android.hilt) + alias(libs.plugins.mifospay.kmp.library) alias(libs.plugins.kotlin.parcelize) id("kotlinx-serialization") } @@ -24,23 +23,27 @@ android { } } -dependencies { - api(projects.core.common) - api(projects.core.model) - api(projects.core.network) +kotlin { + sourceSets { + commonMain.dependencies { + api(projects.core.common) + api(projects.core.datastore) + api(projects.core.network) + api(projects.core.model) - implementation(libs.squareup.retrofit2) { - // exclude Retrofit’s OkHttp peer-dependency module and define your own module import - exclude(module = "okhttp") - } - implementation(libs.squareup.retrofit.adapter.rxjava) - implementation(libs.squareup.retrofit.converter.gson) - implementation(libs.squareup.okhttp) - implementation(libs.squareup.logging.interceptor) + implementation(projects.core.analytics) + } - implementation(libs.reactivex.rxjava.android) - implementation(libs.reactivex.rxjava) + commonTest.dependencies { + implementation(libs.multiplatform.settings) + implementation(libs.multiplatform.settings.test) + implementation(libs.kotlinx.serialization.json) + } - testImplementation(libs.junit) - androidTestImplementation(libs.espresso.core) -} + androidMain.dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.tracing.ktx) + implementation(libs.koin.android) + } + } +} \ No newline at end of file diff --git a/core/data/src/main/AndroidManifest.xml b/core/data/src/androidMain/AndroidManifest.xml similarity index 100% rename from core/data/src/main/AndroidManifest.xml rename to core/data/src/androidMain/AndroidManifest.xml diff --git a/core/data/src/main/assets/banks.json b/core/data/src/androidMain/assets/banks.json similarity index 100% rename from core/data/src/main/assets/banks.json rename to core/data/src/androidMain/assets/banks.json diff --git a/core/data/src/main/assets/cities.json b/core/data/src/androidMain/assets/cities.json similarity index 100% rename from core/data/src/main/assets/cities.json rename to core/data/src/androidMain/assets/cities.json diff --git a/core/data/src/main/assets/countriesToCities.json b/core/data/src/androidMain/assets/countriesToCities.json similarity index 100% rename from core/data/src/main/assets/countriesToCities.json rename to core/data/src/androidMain/assets/countriesToCities.json diff --git a/core/data/src/main/java/org/mifospay/core/data/base/TaskLooper.kt b/core/data/src/androidMain/java/org/mifospay/core/data/base/TaskLooper.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/base/TaskLooper.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/base/TaskLooper.kt index 175b2da3a..6fa7abbf7 100644 --- a/core/data/src/main/java/org/mifospay/core/data/base/TaskLooper.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/base/TaskLooper.kt @@ -10,9 +10,8 @@ package org.mifospay.core.data.base import org.mifospay.core.data.base.UseCase.UseCaseCallback -import javax.inject.Inject -class TaskLooper @Inject constructor( +class TaskLooper( private val mUseCaseHandler: UseCaseHandler, ) { var isFailed = false diff --git a/core/data/src/main/java/org/mifospay/core/data/base/ThreadPoolQueue.kt b/core/data/src/androidMain/java/org/mifospay/core/data/base/ThreadPoolQueue.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/base/ThreadPoolQueue.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/base/ThreadPoolQueue.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/base/UseCase.kt b/core/data/src/androidMain/java/org/mifospay/core/data/base/UseCase.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/base/UseCase.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/base/UseCase.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/base/UseCaseFactory.kt b/core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseFactory.kt similarity index 93% rename from core/data/src/main/java/org/mifospay/core/data/base/UseCaseFactory.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseFactory.kt index ea1eb6bb7..d7f6b510b 100644 --- a/core/data/src/main/java/org/mifospay/core/data/base/UseCaseFactory.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseFactory.kt @@ -13,9 +13,8 @@ import org.mifospay.core.data.domain.usecase.account.FetchAccountTransfer import org.mifospay.core.data.domain.usecase.client.FetchClientDetails import org.mifospay.core.data.fineract.repository.FineractRepository import org.mifospay.core.data.util.Constants -import javax.inject.Inject -class UseCaseFactory @Inject constructor( +class UseCaseFactory( private val mFineractRepository: FineractRepository, ) { fun getUseCase(useCase: String): UseCase<*, *>? { diff --git a/core/data/src/main/java/org/mifospay/core/data/base/UseCaseHandler.kt b/core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseHandler.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/base/UseCaseHandler.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseHandler.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/base/UseCaseScheduler.kt b/core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseScheduler.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/base/UseCaseScheduler.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseScheduler.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/base/UseCaseThreadPoolScheduler.kt b/core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseThreadPoolScheduler.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/base/UseCaseThreadPoolScheduler.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/base/UseCaseThreadPoolScheduler.kt diff --git a/core/data/src/androidMain/java/org/mifospay/core/data/di/DataModule.kt b/core/data/src/androidMain/java/org/mifospay/core/data/di/DataModule.kt new file mode 100644 index 000000000..e498908c9 --- /dev/null +++ b/core/data/src/androidMain/java/org/mifospay/core/data/di/DataModule.kt @@ -0,0 +1,214 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.data.di + +import org.koin.android.ext.koin.androidContext +import org.koin.core.qualifier.named +import org.koin.dsl.module +import org.mifos.core.network.localAssets.LocalAssetDataSource +import org.mifospay.core.data.base.TaskLooper +import org.mifospay.core.data.base.UseCaseFactory +import org.mifospay.core.data.base.UseCaseHandler +import org.mifospay.core.data.base.UseCaseScheduler +import org.mifospay.core.data.base.UseCaseThreadPoolScheduler +import org.mifospay.core.data.domain.usecase.account.BlockUnblockCommand +import org.mifospay.core.data.domain.usecase.account.DownloadTransactionReceipt +import org.mifospay.core.data.domain.usecase.account.FetchAccount +import org.mifospay.core.data.domain.usecase.account.FetchAccountTransaction +import org.mifospay.core.data.domain.usecase.account.FetchAccountTransactions +import org.mifospay.core.data.domain.usecase.account.FetchAccountTransfer +import org.mifospay.core.data.domain.usecase.account.FetchAccounts +import org.mifospay.core.data.domain.usecase.account.FetchMerchants +import org.mifospay.core.data.domain.usecase.account.TransferFunds +import org.mifospay.core.data.domain.usecase.client.CreateClient +import org.mifospay.core.data.domain.usecase.client.FetchClientData +import org.mifospay.core.data.domain.usecase.client.FetchClientDetails +import org.mifospay.core.data.domain.usecase.client.FetchClientImage +import org.mifospay.core.data.domain.usecase.client.SearchClient +import org.mifospay.core.data.domain.usecase.client.UpdateClient +import org.mifospay.core.data.domain.usecase.history.TransactionsHistory +import org.mifospay.core.data.domain.usecase.invoice.FetchInvoice +import org.mifospay.core.data.domain.usecase.invoice.FetchInvoices +import org.mifospay.core.data.domain.usecase.kyc.FetchKYCLevel1Details +import org.mifospay.core.data.domain.usecase.kyc.UpdateKYCLevel1Details +import org.mifospay.core.data.domain.usecase.kyc.UploadKYCDocs +import org.mifospay.core.data.domain.usecase.kyc.UploadKYCLevel1Details +import org.mifospay.core.data.domain.usecase.notification.FetchNotifications +import org.mifospay.core.data.domain.usecase.savedcards.AddCard +import org.mifospay.core.data.domain.usecase.savedcards.DeleteCard +import org.mifospay.core.data.domain.usecase.savedcards.EditCard +import org.mifospay.core.data.domain.usecase.savedcards.FetchSavedCards +import org.mifospay.core.data.domain.usecase.standinginstruction.CreateStandingTransaction +import org.mifospay.core.data.domain.usecase.standinginstruction.DeleteStandingInstruction +import org.mifospay.core.data.domain.usecase.standinginstruction.FetchStandingInstruction +import org.mifospay.core.data.domain.usecase.standinginstruction.GetAllStandingInstructions +import org.mifospay.core.data.domain.usecase.standinginstruction.UpdateStandingInstruction +import org.mifospay.core.data.domain.usecase.twofactor.FetchDeliveryMethods +import org.mifospay.core.data.domain.usecase.twofactor.RequestOTP +import org.mifospay.core.data.domain.usecase.twofactor.ValidateOTP +import org.mifospay.core.data.domain.usecase.user.AuthenticateUser +import org.mifospay.core.data.domain.usecase.user.CreateUser +import org.mifospay.core.data.domain.usecase.user.DeleteUser +import org.mifospay.core.data.domain.usecase.user.FetchUserDetails +import org.mifospay.core.data.domain.usecase.user.FetchUsers +import org.mifospay.core.data.domain.usecase.user.RegisterUser +import org.mifospay.core.data.domain.usecase.user.UpdateUser +import org.mifospay.core.data.domain.usecase.user.VerifyUser +import org.mifospay.core.data.fineract.entity.mapper.AccountMapper +import org.mifospay.core.data.fineract.entity.mapper.ClientDetailsMapper +import org.mifospay.core.data.fineract.entity.mapper.CurrencyMapper +import org.mifospay.core.data.fineract.entity.mapper.SearchedEntitiesMapper +import org.mifospay.core.data.fineract.entity.mapper.TransactionMapper +import org.mifospay.core.data.fineract.repository.FineractRepository +import org.mifospay.core.data.repository.auth.AuthenticationUserRepository +import org.mifospay.core.data.repository.auth.UserDataRepository +import org.mifospay.core.data.repository.local.LocalAssetRepository +import org.mifospay.core.data.repository.local.LocalRepository +import org.mifospay.core.data.repository.local.MifosLocalAssetRepository +import org.mifospay.core.data.util.ConnectivityManagerNetworkMonitor +import org.mifospay.core.data.util.NetworkMonitor +import org.mifospay.core.data.util.TimeZoneBroadcastMonitor +import org.mifospay.core.data.util.TimeZoneMonitor +import org.mifospay.core.datastore.PreferencesHelper +import org.mifospay.core.network.MifosDispatchers +import org.mifospay.core.network.di.LocalModule +import org.mifospay.core.network.localAssets.MifosLocalAssetDataSource + +val DataModule = module { + includes(LocalModule) + + single { UseCaseThreadPoolScheduler() } + single { UseCaseHandler(get()) } + single { TaskLooper(get()) } + single { UseCaseFactory(get()) } + single { FetchClientData(get(), get()) } + single { ClientDetailsMapper() } + single { SearchClient(get(), get()) } + single { UpdateClient(get()) } + single { CreateClient(get()) } + single { FetchClientDetails(get()) } + single { FetchClientImage(get()) } + single { BlockUnblockCommand(get()) } + single { DownloadTransactionReceipt(get()) } + single { AccountMapper(get()) } + single { FetchAccount(get(), get()) } + single { FetchAccounts(get(), get()) } + single { FetchAccountTransaction(get(), get()) } + single { FetchAccountTransactions(get(), get()) } + single { FetchAccountTransfer(get()) } + single { FetchMerchants(get()) } + single { TransferFunds(get()) } + single { + TransactionsHistory( + mUseCaseHandler = get(), + fetchAccountTransactionsUseCase = get(), + ) + } + + // Invoice UseCase + single { FetchInvoice(get()) } + single { FetchInvoices(get()) } + + // KYC UseCase + single { FetchKYCLevel1Details(get()) } + single { UpdateKYCLevel1Details(get()) } + single { UploadKYCDocs(get()) } + single { UploadKYCLevel1Details(get()) } + + // Notifications + single { FetchNotifications(get()) } + + // Saved Cards + single { AddCard(get()) } + single { DeleteCard(get()) } + single { EditCard(get()) } + single { FetchSavedCards(get()) } + + // Standing Instructions + single { CreateStandingTransaction(get()) } + single { DeleteStandingInstruction(get()) } + single { FetchStandingInstruction(get()) } + single { GetAllStandingInstructions(get()) } + single { UpdateStandingInstruction(get()) } + + // Two-Factor + single { FetchDeliveryMethods(get()) } + single { RequestOTP(get()) } + single { ValidateOTP(get()) } + + // User + single { AuthenticateUser(get()) } + single { CreateUser(get()) } + single { DeleteUser(get()) } + single { FetchUserDetails(get()) } + single { FetchUsers(get()) } + single { RegisterUser(get()) } + single { UpdateUser(get()) } + single { VerifyUser(get()) } + + // Fineract Entity Mappers + single { CurrencyMapper() } + single { SearchedEntitiesMapper() } + single { TransactionMapper(get()) } + single { AccountMapper(get()) } + single { ClientDetailsMapper() } + + // Fineract Repository + + single { + FineractRepository( + fineractApiManager = get(), + selfApiManager = get(), + ktorAuthenticationService = get(), + ) + } + + // Fineract Repository Auth + + single { AuthenticationUserRepository(get()) } + + // Fineract Repository Local + + single { + val preferencesHelper: PreferencesHelper = get() + LocalRepository(preferencesHelper) + } + + factory { + MifosLocalAssetDataSource( + ioDispatcher = get( + named(MifosDispatchers.IO.name), + ), + networkJson = get(), + assets = get(), + ) + } + + factory { + MifosLocalAssetRepository( + ioDispatcher = get( + named(MifosDispatchers.IO.name), + ), + datasource = get(), + ) + } + + // Util + + single { ConnectivityManagerNetworkMonitor(context = androidContext()) } + + single { + TimeZoneBroadcastMonitor( + context = androidContext(), + appScope = get(named("ApplicationScope")), + ioDispatcher = get(named(MifosDispatchers.IO.name)), + ) + } +} diff --git a/core/data/src/androidMain/java/org/mifospay/core/data/di/LocalDataModule.kt b/core/data/src/androidMain/java/org/mifospay/core/data/di/LocalDataModule.kt new file mode 100644 index 000000000..87be810d2 --- /dev/null +++ b/core/data/src/androidMain/java/org/mifospay/core/data/di/LocalDataModule.kt @@ -0,0 +1,19 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.data.di + +import androidx.lifecycle.SavedStateHandle +import org.koin.dsl.module + +val LocalDataModule = module { + factory { + SavedStateHandle() + } +} diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/BlockUnblockCommand.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/BlockUnblockCommand.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/BlockUnblockCommand.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/BlockUnblockCommand.kt index 1185fba19..45075fd22 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/BlockUnblockCommand.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/BlockUnblockCommand.kt @@ -16,9 +16,8 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.fineract.repository.FineractRepository -import javax.inject.Inject -class BlockUnblockCommand @Inject constructor( +class BlockUnblockCommand( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/DownloadTransactionReceipt.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/DownloadTransactionReceipt.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/DownloadTransactionReceipt.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/DownloadTransactionReceipt.kt index f6bc1058f..36d955040 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/DownloadTransactionReceipt.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/DownloadTransactionReceipt.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class DownloadTransactionReceipt @Inject constructor( +class DownloadTransactionReceipt( private val mFineractRepository: FineractRepository, ) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccount.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccount.kt similarity index 97% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccount.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccount.kt index 314e4deff..4bc88a5e1 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccount.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccount.kt @@ -18,9 +18,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchAccount @Inject constructor( +class FetchAccount( private val fineractRepository: FineractRepository, private val accountMapper: AccountMapper, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransaction.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransaction.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransaction.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransaction.kt index 52c917278..6ad743a05 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransaction.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransaction.kt @@ -19,9 +19,8 @@ import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.fineract.entity.mapper.TransactionMapper import org.mifospay.core.data.fineract.repository.FineractRepository import org.mifospay.core.data.util.Constants -import javax.inject.Inject -class FetchAccountTransaction @Inject constructor( +class FetchAccountTransaction( private val fineractRepository: FineractRepository, private val transactionMapper: TransactionMapper, ) : diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransactions.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransactions.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransactions.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransactions.kt index 9504ee9ee..7ab0830d4 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransactions.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransactions.kt @@ -19,9 +19,8 @@ import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.fineract.entity.mapper.TransactionMapper import org.mifospay.core.data.fineract.repository.FineractRepository import org.mifospay.core.data.util.Constants -import javax.inject.Inject -class FetchAccountTransactions @Inject constructor( +class FetchAccountTransactions( private val fineractRepository: FineractRepository, private val transactionMapper: TransactionMapper, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransfer.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransfer.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransfer.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransfer.kt index 05890a5b3..78cc231a7 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransfer.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccountTransfer.kt @@ -15,9 +15,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchAccountTransfer @Inject constructor( +class FetchAccountTransfer( private val mFineractRepository: FineractRepository, ) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccounts.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccounts.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccounts.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccounts.kt index 60895b71d..9b3b4732f 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchAccounts.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchAccounts.kt @@ -18,9 +18,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchAccounts @Inject constructor( +class FetchAccounts( private val fineractRepository: FineractRepository, private val accountMapper: AccountMapper, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchMerchants.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchMerchants.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchMerchants.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchMerchants.kt index 2d255f28f..57bdbba0a 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/FetchMerchants.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/FetchMerchants.kt @@ -18,9 +18,8 @@ import kotlinx.coroutines.withContext import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.fineract.repository.FineractRepository import org.mifospay.core.data.util.Constants -import javax.inject.Inject -class FetchMerchants @Inject constructor( +class FetchMerchants( private val mFineractRepository: FineractRepository, ) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/TransferFunds.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/TransferFunds.kt similarity index 99% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/TransferFunds.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/TransferFunds.kt index fdb32c9b2..ec3efb669 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/account/TransferFunds.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/account/TransferFunds.kt @@ -25,10 +25,9 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject @Suppress("UnusedPrivateMember") -class TransferFunds @Inject constructor( +class TransferFunds( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/CreateClient.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/CreateClient.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/CreateClient.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/CreateClient.kt index 64246586f..fd84e1477 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/CreateClient.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/CreateClient.kt @@ -17,9 +17,8 @@ import retrofit2.HttpException import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class CreateClient @Inject constructor( +class CreateClient( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientData.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientData.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientData.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientData.kt index 2d74601ce..ad588cd33 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientData.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientData.kt @@ -18,15 +18,12 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchClientData @Inject constructor( +class FetchClientData( private val fineractRepository: FineractRepository, + private val clientDetailsMapper: ClientDetailsMapper, ) : UseCase() { - @Inject - lateinit var clientDetailsMapper: ClientDetailsMapper - override fun executeUseCase(requestValues: RequestValues) { requestValues.clientId?.let { clientId -> fineractRepository.getSelfClientDetails(clientId) diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientDetails.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientDetails.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientDetails.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientDetails.kt index 7728aeee4..3ab9b074f 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientDetails.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientDetails.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchClientDetails @Inject constructor( +class FetchClientDetails( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientImage.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientImage.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientImage.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientImage.kt index db51bf3fe..90bd05665 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/FetchClientImage.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/FetchClientImage.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.util.ErrorJsonMessageHelper.getUserMessage import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchClientImage @Inject constructor( +class FetchClientImage( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/SearchClient.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/SearchClient.kt similarity index 93% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/SearchClient.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/SearchClient.kt index 4cf55ef81..05b882da0 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/SearchClient.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/SearchClient.kt @@ -18,15 +18,12 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class SearchClient @Inject constructor( +class SearchClient( private val apiRepository: FineractRepository, + private val searchedEntitiesMapper: SearchedEntitiesMapper, ) : UseCase() { - @Inject - lateinit var searchedEntitiesMapper: SearchedEntitiesMapper - data class RequestValues(val externalId: String) : UseCase.RequestValues data class ResponseValue(val results: List) : UseCase.ResponseValue diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/UpdateClient.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/UpdateClient.kt similarity index 97% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/UpdateClient.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/UpdateClient.kt index c6d533071..6badef3e6 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/client/UpdateClient.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/client/UpdateClient.kt @@ -17,9 +17,8 @@ import retrofit2.HttpException import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class UpdateClient @Inject constructor( +class UpdateClient( private val fineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/history/HistoryContract.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/history/HistoryContract.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/history/HistoryContract.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/history/HistoryContract.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/history/TransactionsHistory.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/history/TransactionsHistory.kt similarity index 83% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/history/TransactionsHistory.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/history/TransactionsHistory.kt index 5253742b2..10e105b76 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/history/TransactionsHistory.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/history/TransactionsHistory.kt @@ -10,26 +10,15 @@ package org.mifospay.core.data.domain.usecase.history import com.mifospay.core.model.domain.Transaction -import org.mifospay.core.data.base.TaskLooper import org.mifospay.core.data.base.UseCase.UseCaseCallback -import org.mifospay.core.data.base.UseCaseFactory import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.FetchAccountTransactions -import javax.inject.Inject -class TransactionsHistory @Inject constructor( +class TransactionsHistory( private val mUseCaseHandler: UseCaseHandler, private val fetchAccountTransactionsUseCase: FetchAccountTransactions, ) { var delegate: HistoryContract.TransactionsHistoryAsync? = null - - @JvmField - @Inject - var mTaskLooper: TaskLooper? = null - - @JvmField - @Inject - var mUseCaseFactory: UseCaseFactory? = null private var transactions: List? init { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoice.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoice.kt similarity index 97% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoice.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoice.kt index bfdcfb24e..4a6cf57ea 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoice.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoice.kt @@ -18,9 +18,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchInvoice @Inject constructor( +class FetchInvoice( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoices.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoices.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoices.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoices.kt index 50caac4f2..e9a4b5b2a 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoices.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/invoice/FetchInvoices.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchInvoices @Inject constructor( +class FetchInvoices( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/FetchKYCLevel1Details.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/FetchKYCLevel1Details.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/FetchKYCLevel1Details.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/FetchKYCLevel1Details.kt index 2cf235a3d..42e9d19c9 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/FetchKYCLevel1Details.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/FetchKYCLevel1Details.kt @@ -15,9 +15,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchKYCLevel1Details @Inject constructor( +class FetchKYCLevel1Details( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UpdateKYCLevel1Details.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UpdateKYCLevel1Details.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UpdateKYCLevel1Details.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UpdateKYCLevel1Details.kt index 90b1c0d4a..6f232ca29 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UpdateKYCLevel1Details.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UpdateKYCLevel1Details.kt @@ -16,9 +16,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class UpdateKYCLevel1Details @Inject constructor( +class UpdateKYCLevel1Details( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCDocs.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCDocs.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCDocs.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCDocs.kt index c62971778..6eb539c1f 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCDocs.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCDocs.kt @@ -16,9 +16,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class UploadKYCDocs @Inject constructor( +class UploadKYCDocs( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCLevel1Details.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCLevel1Details.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCLevel1Details.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCLevel1Details.kt index cf8627e6b..74ace32cb 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCLevel1Details.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/kyc/UploadKYCLevel1Details.kt @@ -16,9 +16,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class UploadKYCLevel1Details @Inject constructor( +class UploadKYCLevel1Details( var mFineractRepository: FineractRepository, ) : UseCase() { class RequestValues( diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/notification/FetchNotifications.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/notification/FetchNotifications.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/notification/FetchNotifications.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/notification/FetchNotifications.kt index 7aef23b3b..4237dc12a 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/notification/FetchNotifications.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/notification/FetchNotifications.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchNotifications @Inject constructor( +class FetchNotifications( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/AddCard.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/AddCard.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/AddCard.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/AddCard.kt index 85b01ae6e..73bb2bbcc 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/AddCard.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/AddCard.kt @@ -16,9 +16,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class AddCard @Inject constructor( +class AddCard( private val mFineractRepository: FineractRepository, ) : UseCase() { class RequestValues(val clientId: Long, val card: Card) : UseCase.RequestValues diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/DeleteCard.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/DeleteCard.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/DeleteCard.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/DeleteCard.kt index d143d1ea4..c11cb90f0 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/DeleteCard.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/DeleteCard.kt @@ -15,9 +15,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class DeleteCard @Inject constructor( +class DeleteCard( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/EditCard.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/EditCard.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/EditCard.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/EditCard.kt index b27627897..7f0440b18 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/EditCard.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/EditCard.kt @@ -16,9 +16,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class EditCard @Inject constructor( +class EditCard( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/FetchSavedCards.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/FetchSavedCards.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/FetchSavedCards.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/FetchSavedCards.kt index 6400ae78d..8750008de 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/savedcards/FetchSavedCards.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/savedcards/FetchSavedCards.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchSavedCards @Inject constructor( +class FetchSavedCards( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/CreateStandingTransaction.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/CreateStandingTransaction.kt similarity index 98% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/CreateStandingTransaction.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/CreateStandingTransaction.kt index 690651c9a..5e4dfd300 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/CreateStandingTransaction.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/CreateStandingTransaction.kt @@ -20,9 +20,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class CreateStandingTransaction @Inject constructor( +class CreateStandingTransaction( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/DeleteStandingInstruction.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/DeleteStandingInstruction.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/DeleteStandingInstruction.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/DeleteStandingInstruction.kt index dea053f75..569a9149b 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/DeleteStandingInstruction.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/DeleteStandingInstruction.kt @@ -15,9 +15,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class DeleteStandingInstruction @Inject constructor( +class DeleteStandingInstruction( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/FetchStandingInstruction.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/FetchStandingInstruction.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/FetchStandingInstruction.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/FetchStandingInstruction.kt index c14f2815d..8e165f333 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/FetchStandingInstruction.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/FetchStandingInstruction.kt @@ -15,9 +15,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchStandingInstruction @Inject constructor( +class FetchStandingInstruction( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/GetAllStandingInstructions.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/GetAllStandingInstructions.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/GetAllStandingInstructions.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/GetAllStandingInstructions.kt index cd715c479..1e4338704 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/GetAllStandingInstructions.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/GetAllStandingInstructions.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class GetAllStandingInstructions @Inject constructor( +class GetAllStandingInstructions( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/UpdateStandingInstruction.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/UpdateStandingInstruction.kt similarity index 97% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/UpdateStandingInstruction.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/UpdateStandingInstruction.kt index 81bfc27e2..8eef580b2 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/standinginstruction/UpdateStandingInstruction.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/standinginstruction/UpdateStandingInstruction.kt @@ -17,9 +17,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class UpdateStandingInstruction @Inject constructor( +class UpdateStandingInstruction( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/FetchDeliveryMethods.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/FetchDeliveryMethods.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/FetchDeliveryMethods.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/FetchDeliveryMethods.kt index 4698b3934..29cf2bb7c 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/FetchDeliveryMethods.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/FetchDeliveryMethods.kt @@ -15,9 +15,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchDeliveryMethods @Inject constructor( +class FetchDeliveryMethods( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/RequestOTP.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/RequestOTP.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/RequestOTP.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/RequestOTP.kt index d2f9dc829..004806f96 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/RequestOTP.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/RequestOTP.kt @@ -14,9 +14,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class RequestOTP @Inject constructor( +class RequestOTP( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/ValidateOTP.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/ValidateOTP.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/ValidateOTP.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/ValidateOTP.kt index 76ddc75ba..1249e58be 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/twofactor/ValidateOTP.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/twofactor/ValidateOTP.kt @@ -15,9 +15,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class ValidateOTP @Inject constructor( +class ValidateOTP( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/AuthenticateUser.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/AuthenticateUser.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/AuthenticateUser.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/AuthenticateUser.kt index b87fb4736..c849b1261 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/AuthenticateUser.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/AuthenticateUser.kt @@ -18,9 +18,8 @@ import kotlinx.coroutines.withContext import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.fineract.repository.FineractRepository import org.mifospay.core.data.util.Constants -import javax.inject.Inject -class AuthenticateUser @Inject constructor( +class AuthenticateUser( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/CreateUser.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/CreateUser.kt similarity index 94% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/CreateUser.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/CreateUser.kt index 7cbfc079b..79f056b70 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/CreateUser.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/CreateUser.kt @@ -17,9 +17,8 @@ import retrofit2.HttpException import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class CreateUser @Inject constructor(private val apiRepository: FineractRepository) : +class CreateUser(private val apiRepository: FineractRepository) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { apiRepository.createUser(requestValues.user) diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/DeleteUser.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/DeleteUser.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/DeleteUser.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/DeleteUser.kt index 8bf1177c8..2a537345f 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/DeleteUser.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/DeleteUser.kt @@ -15,9 +15,8 @@ import org.mifospay.core.network.GenericResponse import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class DeleteUser @Inject constructor( +class DeleteUser( private val mFineractRepository: FineractRepository, ) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/FetchUserDetails.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/FetchUserDetails.kt similarity index 95% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/FetchUserDetails.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/FetchUserDetails.kt index c019540f5..153e46ee0 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/FetchUserDetails.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/FetchUserDetails.kt @@ -15,9 +15,8 @@ import org.mifospay.core.data.fineract.repository.FineractRepository import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchUserDetails @Inject constructor( +class FetchUserDetails( private val mFineractRepository: FineractRepository, ) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/FetchUsers.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/FetchUsers.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/FetchUsers.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/FetchUsers.kt index b2813e61e..61340673a 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/FetchUsers.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/FetchUsers.kt @@ -16,9 +16,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchUsers @Inject constructor( +class FetchUsers( private val mFineractRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/RegisterUser.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/RegisterUser.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/RegisterUser.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/RegisterUser.kt index 3eaed68e2..f37d1df98 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/RegisterUser.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/RegisterUser.kt @@ -17,9 +17,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class RegisterUser @Inject constructor( +class RegisterUser( private val apiRepository: FineractRepository, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/UpdateUser.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/UpdateUser.kt similarity index 97% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/UpdateUser.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/UpdateUser.kt index a53f16fda..9fac23150 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/UpdateUser.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/UpdateUser.kt @@ -17,9 +17,8 @@ import retrofit2.HttpException import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class UpdateUser @Inject constructor( +class UpdateUser( private val mFineractRepository: FineractRepository, ) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { diff --git a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/VerifyUser.kt b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/VerifyUser.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/VerifyUser.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/VerifyUser.kt index cd68fbb97..d946eff90 100644 --- a/core/data/src/main/java/org/mifospay/core/data/domain/usecase/user/VerifyUser.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/domain/usecase/user/VerifyUser.kt @@ -17,9 +17,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class VerifyUser @Inject constructor( +class VerifyUser( private val apiRepository: FineractRepository, ) : UseCase() { override fun executeUseCase(requestValues: RequestValues) { diff --git a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/AccountMapper.kt b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/AccountMapper.kt similarity index 94% rename from core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/AccountMapper.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/AccountMapper.kt index 64f21ba33..672f1a393 100644 --- a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/AccountMapper.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/AccountMapper.kt @@ -11,9 +11,8 @@ package org.mifospay.core.data.fineract.entity.mapper import com.mifospay.core.model.domain.Account import com.mifospay.core.model.entity.client.ClientAccounts -import javax.inject.Inject -class AccountMapper @Inject constructor( +class AccountMapper( private val currencyMapper: CurrencyMapper, ) { diff --git a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/ClientDetailsMapper.kt b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/ClientDetailsMapper.kt similarity index 93% rename from core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/ClientDetailsMapper.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/ClientDetailsMapper.kt index 8c96d6542..eccd4a613 100644 --- a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/ClientDetailsMapper.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/ClientDetailsMapper.kt @@ -10,10 +10,9 @@ package org.mifospay.core.data.fineract.entity.mapper import com.mifospay.core.model.entity.client.Client -import javax.inject.Inject import com.mifospay.core.model.domain.client.Client as DomainClient -class ClientDetailsMapper @Inject constructor() { +class ClientDetailsMapper { fun transformList(clients: List?): List { val clientList: MutableList = ArrayList() clients?.forEach { client -> diff --git a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/CurrencyMapper.kt b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/CurrencyMapper.kt similarity index 83% rename from core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/CurrencyMapper.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/CurrencyMapper.kt index a96dc6802..21270ee2d 100644 --- a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/CurrencyMapper.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/CurrencyMapper.kt @@ -10,13 +10,11 @@ package org.mifospay.core.data.fineract.entity.mapper import com.mifospay.core.model.entity.accounts.savings.Currency -import javax.inject.Inject import com.mifospay.core.model.domain.Currency as DomainCurrency -class CurrencyMapper @Inject internal constructor() { +class CurrencyMapper { fun transform(savingsCurrency: Currency): DomainCurrency { - val currency: DomainCurrency = - DomainCurrency() + val currency = DomainCurrency() currency.code = savingsCurrency.code currency.displayLabel = savingsCurrency.displayLabel currency.displaySymbol = savingsCurrency.displaySymbol diff --git a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/FetchAccount.kt b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/FetchAccount.kt similarity index 97% rename from core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/FetchAccount.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/FetchAccount.kt index 4073c72ef..d21aa0b8e 100644 --- a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/FetchAccount.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/FetchAccount.kt @@ -17,9 +17,8 @@ import org.mifospay.core.data.util.Constants import rx.Subscriber import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -import javax.inject.Inject -class FetchAccount @Inject constructor( +class FetchAccount( private val fineractRepository: FineractRepository, private val accountMapper: AccountMapper, ) : UseCase() { diff --git a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/SearchedEntitiesMapper.kt b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/SearchedEntitiesMapper.kt similarity index 92% rename from core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/SearchedEntitiesMapper.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/SearchedEntitiesMapper.kt index 4f9b58ea1..affc21632 100644 --- a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/SearchedEntitiesMapper.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/SearchedEntitiesMapper.kt @@ -11,9 +11,8 @@ package org.mifospay.core.data.fineract.entity.mapper import com.mifospay.core.model.domain.SearchResult import com.mifospay.core.model.entity.SearchedEntity -import javax.inject.Inject -class SearchedEntitiesMapper @Inject internal constructor() { +class SearchedEntitiesMapper { fun transformList(searchedEntities: List?): List { val searchResults: MutableList = ArrayList() diff --git a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/TransactionMapper.kt b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/TransactionMapper.kt similarity index 96% rename from core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/TransactionMapper.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/TransactionMapper.kt index 9f2c09513..340298508 100644 --- a/core/data/src/main/java/org/mifospay/core/data/fineract/entity/mapper/TransactionMapper.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/entity/mapper/TransactionMapper.kt @@ -14,9 +14,8 @@ import com.mifospay.core.model.domain.TransactionType import com.mifospay.core.model.entity.accounts.savings.SavingsWithAssociations import com.mifospay.core.model.entity.accounts.savings.Transactions import com.mifospay.core.model.utils.DateHelper -import javax.inject.Inject -class TransactionMapper @Inject constructor( +class TransactionMapper( private val currencyMapper: CurrencyMapper, ) { diff --git a/core/data/src/main/java/org/mifospay/core/data/fineract/repository/FineractRepository.kt b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/repository/FineractRepository.kt similarity index 98% rename from core/data/src/main/java/org/mifospay/core/data/fineract/repository/FineractRepository.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/fineract/repository/FineractRepository.kt index 054b9a6d3..80e0be3ea 100644 --- a/core/data/src/main/java/org/mifospay/core/data/fineract/repository/FineractRepository.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/fineract/repository/FineractRepository.kt @@ -40,20 +40,17 @@ import com.mifospay.core.model.entity.standinginstruction.SDIResponse import com.mifospay.core.model.entity.standinginstruction.StandingInstruction import okhttp3.MultipartBody import okhttp3.ResponseBody +import org.mifos.core.network.services.KtorAuthenticationService import org.mifospay.core.data.domain.usecase.client.CreateClient import org.mifospay.core.data.domain.usecase.user.CreateUser import org.mifospay.core.data.util.Constants import org.mifospay.core.network.FineractApiManager import org.mifospay.core.network.GenericResponse import org.mifospay.core.network.SelfServiceApiManager -import org.mifospay.core.network.services.KtorAuthenticationService import rx.Observable -import javax.inject.Inject -import javax.inject.Singleton -@Singleton @Suppress("TooManyFunctions") -class FineractRepository @Inject constructor( +class FineractRepository( private val fineractApiManager: FineractApiManager, private val selfApiManager: SelfServiceApiManager, private val ktorAuthenticationService: KtorAuthenticationService, diff --git a/core/data/src/main/java/org/mifospay/core/data/repository/auth/AuthenticationUserRepository.kt b/core/data/src/androidMain/java/org/mifospay/core/data/repository/auth/AuthenticationUserRepository.kt similarity index 92% rename from core/data/src/main/java/org/mifospay/core/data/repository/auth/AuthenticationUserRepository.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/repository/auth/AuthenticationUserRepository.kt index 266f7f9c4..70cc1a2c3 100644 --- a/core/data/src/main/java/org/mifospay/core/data/repository/auth/AuthenticationUserRepository.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/repository/auth/AuthenticationUserRepository.kt @@ -13,9 +13,8 @@ import com.mifospay.core.model.UserData import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -class AuthenticationUserRepository @Inject constructor( +class AuthenticationUserRepository( private val preferencesHelper: PreferencesHelper, ) : UserDataRepository { diff --git a/core/data/src/main/java/org/mifospay/core/data/repository/auth/UserDataRepository.kt b/core/data/src/androidMain/java/org/mifospay/core/data/repository/auth/UserDataRepository.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/repository/auth/UserDataRepository.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/repository/auth/UserDataRepository.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/repository/local/LocalAssetRepository.kt b/core/data/src/androidMain/java/org/mifospay/core/data/repository/local/LocalAssetRepository.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/repository/local/LocalAssetRepository.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/repository/local/LocalAssetRepository.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/repository/local/LocalRepository.kt b/core/data/src/androidMain/java/org/mifospay/core/data/repository/local/LocalRepository.kt similarity index 90% rename from core/data/src/main/java/org/mifospay/core/data/repository/local/LocalRepository.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/repository/local/LocalRepository.kt index d6554c5e4..de55915ed 100644 --- a/core/data/src/main/java/org/mifospay/core/data/repository/local/LocalRepository.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/repository/local/LocalRepository.kt @@ -11,11 +11,8 @@ package org.mifospay.core.data.repository.local import com.mifospay.core.model.domain.client.Client import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -import javax.inject.Singleton -@Singleton -class LocalRepository @Inject constructor( +class LocalRepository( val preferencesHelper: PreferencesHelper, ) { diff --git a/core/data/src/main/java/org/mifospay/core/data/repository/local/MifosLocalAssetRepository.kt b/core/data/src/androidMain/java/org/mifospay/core/data/repository/local/MifosLocalAssetRepository.kt similarity index 77% rename from core/data/src/main/java/org/mifospay/core/data/repository/local/MifosLocalAssetRepository.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/repository/local/MifosLocalAssetRepository.kt index d2d5062b5..c93b060fa 100644 --- a/core/data/src/main/java/org/mifospay/core/data/repository/local/MifosLocalAssetRepository.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/repository/local/MifosLocalAssetRepository.kt @@ -16,19 +16,17 @@ import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn -import org.mifospay.core.network.Dispatcher -import org.mifospay.core.network.MifosDispatchers -import org.mifospay.core.network.localAssets.MifosLocalAssetDataSource -import javax.inject.Inject +import org.mifos.core.network.localAssets.LocalAssetDataSource /** * Local implementation of the [LocalAssetRepository] that retrieves the countries, banks, cities * and state list from a JSON String. * */ -class MifosLocalAssetRepository @Inject constructor( - @Dispatcher(MifosDispatchers.IO) private val ioDispatcher: CoroutineDispatcher, - private val datasource: MifosLocalAssetDataSource, + +class MifosLocalAssetRepository( + private val ioDispatcher: CoroutineDispatcher, + private val datasource: LocalAssetDataSource, ) : LocalAssetRepository { override fun getCountries(): Flow> = flow { diff --git a/core/data/src/main/java/org/mifospay/core/data/util/ConnectivityManagerNetworkMonitor.kt b/core/data/src/androidMain/java/org/mifospay/core/data/util/ConnectivityManagerNetworkMonitor.kt similarity index 92% rename from core/data/src/main/java/org/mifospay/core/data/util/ConnectivityManagerNetworkMonitor.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/util/ConnectivityManagerNetworkMonitor.kt index 1f7f15bd4..8e0986c79 100644 --- a/core/data/src/main/java/org/mifospay/core/data/util/ConnectivityManagerNetworkMonitor.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/util/ConnectivityManagerNetworkMonitor.kt @@ -19,15 +19,13 @@ import android.net.NetworkRequest.Builder import android.os.Build.VERSION import android.os.Build.VERSION_CODES import androidx.core.content.getSystemService -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.conflate -import javax.inject.Inject -internal class ConnectivityManagerNetworkMonitor @Inject constructor( - @ApplicationContext private val context: Context, +internal class ConnectivityManagerNetworkMonitor( + private val context: Context, ) : NetworkMonitor { override val isOnline: Flow = callbackFlow { val connectivityManager = context.getSystemService() diff --git a/core/data/src/main/java/org/mifospay/core/data/util/Constants.kt b/core/data/src/androidMain/java/org/mifospay/core/data/util/Constants.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/util/Constants.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/util/Constants.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/util/ErrorJsonMessageHelper.kt b/core/data/src/androidMain/java/org/mifospay/core/data/util/ErrorJsonMessageHelper.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/util/ErrorJsonMessageHelper.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/util/ErrorJsonMessageHelper.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/util/NetworkMonitor.kt b/core/data/src/androidMain/java/org/mifospay/core/data/util/NetworkMonitor.kt similarity index 100% rename from core/data/src/main/java/org/mifospay/core/data/util/NetworkMonitor.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/util/NetworkMonitor.kt diff --git a/core/data/src/main/java/org/mifospay/core/data/util/TimeZoneMonitor.kt b/core/data/src/androidMain/java/org/mifospay/core/data/util/TimeZoneMonitor.kt similarity index 87% rename from core/data/src/main/java/org/mifospay/core/data/util/TimeZoneMonitor.kt rename to core/data/src/androidMain/java/org/mifospay/core/data/util/TimeZoneMonitor.kt index c32ef6808..bd92230cd 100644 --- a/core/data/src/main/java/org/mifospay/core/data/util/TimeZoneMonitor.kt +++ b/core/data/src/androidMain/java/org/mifospay/core/data/util/TimeZoneMonitor.kt @@ -16,7 +16,6 @@ import android.content.IntentFilter import android.os.Build.VERSION import android.os.Build.VERSION_CODES import androidx.tracing.trace -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.channels.awaitClose @@ -30,26 +29,21 @@ import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.shareIn import kotlinx.datetime.TimeZone import kotlinx.datetime.toKotlinTimeZone -import org.mifospay.core.network.Dispatcher -import org.mifospay.core.network.MifosDispatchers -import org.mifospay.core.network.di.ApplicationScope import java.time.ZoneId -import javax.inject.Inject -import javax.inject.Singleton /** * Utility for reporting current timezone the device has set. * It always emits at least once with default setting and then for each TZ change. */ + interface TimeZoneMonitor { val currentTimeZone: Flow } -@Singleton -internal class TimeZoneBroadcastMonitor @Inject constructor( - @ApplicationContext private val context: Context, - @ApplicationScope appScope: CoroutineScope, - @Dispatcher(MifosDispatchers.IO) private val ioDispatcher: CoroutineDispatcher, +internal class TimeZoneBroadcastMonitor( + private val context: Context, + appScope: CoroutineScope, + private val ioDispatcher: CoroutineDispatcher, ) : TimeZoneMonitor { override val currentTimeZone: SharedFlow = diff --git a/core/data/src/main/res/values/strings.xml b/core/data/src/androidMain/res/values/strings.xml similarity index 100% rename from core/data/src/main/res/values/strings.xml rename to core/data/src/androidMain/res/values/strings.xml diff --git a/core/data/src/main/java/org/mifospay/core/data/di/DataModule.kt b/core/data/src/main/java/org/mifospay/core/data/di/DataModule.kt deleted file mode 100644 index 6317d5f41..000000000 --- a/core/data/src/main/java/org/mifospay/core/data/di/DataModule.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.data.di - -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import org.mifospay.core.data.base.UseCaseHandler -import org.mifospay.core.data.base.UseCaseThreadPoolScheduler -import org.mifospay.core.data.fineract.repository.FineractRepository -import org.mifospay.core.network.FineractApiManager -import org.mifospay.core.network.SelfServiceApiManager -import org.mifospay.core.network.services.KtorAuthenticationService - -@Module -@InstallIn(SingletonComponent::class) -class DataModule { - - @Provides - fun provideUseCaseThreadPoolScheduler(): UseCaseThreadPoolScheduler = - UseCaseThreadPoolScheduler() - - @Provides - fun providesUseCaseHandler(useCaseThreadPoolScheduler: UseCaseThreadPoolScheduler): UseCaseHandler { - return UseCaseHandler(useCaseThreadPoolScheduler) - } - - @Provides - fun providesFineractRepository( - fineractApiManager: FineractApiManager, - selfServiceApiManager: SelfServiceApiManager, - ktorAuthenticationService: KtorAuthenticationService, - ): FineractRepository { - return FineractRepository( - fineractApiManager, - selfServiceApiManager, - ktorAuthenticationService, - ) - } -} diff --git a/core/data/src/main/java/org/mifospay/core/data/di/LocalDataModule.kt b/core/data/src/main/java/org/mifospay/core/data/di/LocalDataModule.kt deleted file mode 100644 index 9b477903d..000000000 --- a/core/data/src/main/java/org/mifospay/core/data/di/LocalDataModule.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.data.di - -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import org.mifospay.core.data.repository.auth.AuthenticationUserRepository -import org.mifospay.core.data.repository.auth.UserDataRepository -import org.mifospay.core.data.repository.local.LocalAssetRepository -import org.mifospay.core.data.repository.local.MifosLocalAssetRepository -import org.mifospay.core.data.util.ConnectivityManagerNetworkMonitor -import org.mifospay.core.data.util.NetworkMonitor -import org.mifospay.core.data.util.TimeZoneBroadcastMonitor -import org.mifospay.core.data.util.TimeZoneMonitor - -@Module -@InstallIn(SingletonComponent::class) -abstract class LocalDataModule { - - @Binds - internal abstract fun bindsUserDataRepository( - authenticationUserRepository: AuthenticationUserRepository, - ): UserDataRepository - - @Binds - internal abstract fun bindsLocalAssetRepository( - repository: MifosLocalAssetRepository, - ): LocalAssetRepository - - @Binds - internal abstract fun bindsNetworkMonitor( - networkMonitor: ConnectivityManagerNetworkMonitor, - ): NetworkMonitor - - @Binds - internal abstract fun binds(impl: TimeZoneBroadcastMonitor): TimeZoneMonitor -} diff --git a/core/data/src/test/java/org/mifospay/mobilewallet/core/ExampleUnitTest.kt b/core/data/src/test/java/org/mifospay/mobilewallet/core/ExampleUnitTest.kt deleted file mode 100644 index abad7a3e6..000000000 --- a/core/data/src/test/java/org/mifospay/mobilewallet/core/ExampleUnitTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.mobilewallet.core - -import org.junit.Assert -import org.junit.Test - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see [Testing documentation](http://d.android.com/tools/testing) - */ -class ExampleUnitTest { - @Test - @Throws(Exception::class) - fun additionIsCorrect() { - Assert.assertEquals(4, (2 + 2).toLong()) - } -} diff --git a/core/datastore-proto/build.gradle.kts b/core/datastore-proto/build.gradle.kts index b579ecfba..51683868e 100644 --- a/core/datastore-proto/build.gradle.kts +++ b/core/datastore-proto/build.gradle.kts @@ -8,8 +8,9 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) + alias(libs.plugins.mifospay.kmp.library) alias(libs.plugins.protobuf) + id("kotlinx-serialization") } android { @@ -24,9 +25,6 @@ protobuf { generateProtoTasks { all().forEach { task -> task.builtins { - register("java") { - option("lite") - } register("kotlin") { option("lite") } @@ -35,14 +33,11 @@ protobuf { } } -/*androidComponents.beforeVariants { - android.sourceSets.register(it.name) { - val buildDir = layout.buildDirectory.get().asFile - java.srcDir(buildDir.resolve("generated/source/proto/${it.name}/java")) - kotlin.srcDir(buildDir.resolve("generated/source/proto/${it.name}/kotlin")) +kotlin { + sourceSets { + commonMain.dependencies { + api(libs.protobuf.kotlin.lite) + implementation(libs.kotlinx.serialization.core) + } } -}*/ - -dependencies { - api(libs.protobuf.kotlin.lite) -} +} \ No newline at end of file diff --git a/core/datastore-proto/src/main/AndroidManifest.xml b/core/datastore-proto/src/androidMain/AndroidManifest.xml similarity index 100% rename from core/datastore-proto/src/main/AndroidManifest.xml rename to core/datastore-proto/src/androidMain/AndroidManifest.xml diff --git a/core/datastore-proto/src/main/proto/org.mifospay.core.data/user_preferences.proto b/core/datastore-proto/src/androidMain/proto/org.mifospay.core.data/user_preferences.proto similarity index 100% rename from core/datastore-proto/src/main/proto/org.mifospay.core.data/user_preferences.proto rename to core/datastore-proto/src/androidMain/proto/org.mifospay.core.data/user_preferences.proto diff --git a/core/datastore/build.gradle.kts b/core/datastore/build.gradle.kts index d11f08063..f447d6a0d 100644 --- a/core/datastore/build.gradle.kts +++ b/core/datastore/build.gradle.kts @@ -8,11 +8,9 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) - alias(libs.plugins.mifospay.android.hilt) + alias(libs.plugins.mifospay.kmp.library) } - android { namespace = "org.mifospay.core.datastore" defaultConfig { @@ -25,11 +23,20 @@ android { } } -dependencies { - api(libs.kotlinx.datetime) - api(libs.androidx.dataStore.core) - api(projects.core.datastoreProto) - api(projects.core.common) - api(projects.core.model) - implementation(libs.squareup.retrofit.converter.gson) +kotlin { + sourceSets { + commonMain.dependencies { + implementation(libs.multiplatform.settings) + implementation(libs.multiplatform.settings.serialization) + implementation(libs.multiplatform.settings.coroutines) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.kotlinx.serialization.core) + implementation(projects.core.model) + implementation(projects.core.common) + implementation(projects.core.datastoreProto) + } + commonTest.dependencies { + implementation(libs.multiplatform.settings.test) + } + } } \ No newline at end of file diff --git a/core/datastore/src/main/AndroidManifest.xml b/core/datastore/src/androidMain/AndroidManifest.xml similarity index 100% rename from core/datastore/src/main/AndroidManifest.xml rename to core/datastore/src/androidMain/AndroidManifest.xml diff --git a/core/datastore/src/main/java/org/mifospay/core/datastore/PreferencesHelper.kt b/core/datastore/src/androidMain/java/org/mifospay/core/datastore/PreferencesHelper.kt similarity index 92% rename from core/datastore/src/main/java/org/mifospay/core/datastore/PreferencesHelper.kt rename to core/datastore/src/androidMain/java/org/mifospay/core/datastore/PreferencesHelper.kt index b3fba0ce4..ac1ba99b3 100644 --- a/core/datastore/src/main/java/org/mifospay/core/datastore/PreferencesHelper.kt +++ b/core/datastore/src/androidMain/java/org/mifospay/core/datastore/PreferencesHelper.kt @@ -15,17 +15,10 @@ import android.preference.PreferenceManager import com.google.gson.Gson import com.mifospay.core.model.domain.client.Client import com.mifospay.core.model.domain.user.User -import dagger.hilt.android.qualifiers.ApplicationContext -import javax.inject.Inject -import javax.inject.Singleton -@Singleton -class PreferencesHelper @Inject constructor(@ApplicationContext context: Context?) { - private val sharedPreferences: SharedPreferences - - init { - sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) - } +class PreferencesHelper(private val context: Context?) { + private val sharedPreferences: SharedPreferences = + PreferenceManager.getDefaultSharedPreferences(context) fun clear() { sharedPreferences.edit().clear().apply() diff --git a/core/datastore/src/androidMain/java/org/mifospay/core/datastore/di/CoreDataStoreModule.kt b/core/datastore/src/androidMain/java/org/mifospay/core/datastore/di/CoreDataStoreModule.kt new file mode 100644 index 000000000..a38fb6ff2 --- /dev/null +++ b/core/datastore/src/androidMain/java/org/mifospay/core/datastore/di/CoreDataStoreModule.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.datastore.di + +import org.koin.android.ext.koin.androidContext +import org.koin.dsl.module +import org.mifospay.core.datastore.PreferencesHelper + +val CoreDataStoreModule = module { + + factory { + PreferencesHelper(context = androidContext()) + } +} diff --git a/core/datastore/src/main/java/org/mifospay/core/datastore/di/DataStoreModule.kt b/core/datastore/src/main/java/org/mifospay/core/datastore/di/DataStoreModule.kt deleted file mode 100644 index 986a08b89..000000000 --- a/core/datastore/src/main/java/org/mifospay/core/datastore/di/DataStoreModule.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.datastore.di - -import android.content.Context -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent -import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -object DataStoreModule { - - @Provides - @Singleton - fun prefManager(@ApplicationContext context: Context): PreferencesHelper { - return PreferencesHelper(context) - } -} diff --git a/core/designsystem/build.gradle.kts b/core/designsystem/build.gradle.kts index f08a5aea8..d776a2ebe 100644 --- a/core/designsystem/build.gradle.kts +++ b/core/designsystem/build.gradle.kts @@ -1,3 +1,15 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig + /* * Copyright 2024 Mifos Initiative * @@ -8,8 +20,10 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) - alias(libs.plugins.mifospay.android.library.compose) + alias(libs.plugins.mifospay.kmp.library) + alias(libs.plugins.jetbrainsCompose) + alias(libs.plugins.compose.compiler) + alias(libs.plugins.roborazzi) } android { @@ -19,20 +33,51 @@ android { namespace = "org.mifospay.core.designsystem" } -dependencies { - lintPublish(projects.lint) - - implementation(projects.core.model) +kotlin { + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + moduleName = "composeApp" + browser { + commonWebpackConfig { + outputFileName = "composeApp.js" + devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { + static = (static ?: mutableListOf()).apply { + // Serve sources to debug inside browser + add(project.projectDir.path) + } + } + } + } + binaries.executable() + } - api(libs.androidx.compose.ui) - api(libs.androidx.compose.foundation) - api(libs.androidx.compose.foundation.layout) - api(libs.androidx.compose.material.iconsExtended) - api(libs.androidx.compose.material3) - api(libs.androidx.compose.runtime) - api(libs.androidx.compose.ui.util) - api(libs.androidx.activity.compose) + sourceSets { + androidMain.dependencies { + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.activity.compose) + implementation(projects.core.model) + } + androidInstrumentedTest.dependencies { + implementation(libs.androidx.compose.ui.test) + } + androidUnitTest.dependencies { + implementation(libs.androidx.compose.ui.test) + } + commonMain.dependencies { + implementation(libs.coil.kt.compose) + implementation(compose.runtime) + implementation(compose.foundation) + implementation(compose.material) + implementation(compose.material3) + implementation(compose.materialIconsExtended) + implementation(compose.ui) + implementation(compose.uiUtil) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + } + } +} - testImplementation(libs.androidx.compose.ui.test) - androidTestImplementation(libs.androidx.compose.ui.test) +dependencies { + lintPublish(projects.lint) } \ No newline at end of file diff --git a/core/model/build.gradle.kts b/core/model/build.gradle.kts index fb199f33d..8cadff653 100644 --- a/core/model/build.gradle.kts +++ b/core/model/build.gradle.kts @@ -8,7 +8,7 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) + alias(libs.plugins.mifospay.kmp.library) alias(libs.plugins.kotlin.parcelize) id("kotlinx-serialization") } @@ -17,10 +17,14 @@ android { namespace = "org.mifospay.core.model" } -dependencies { - api(libs.kotlinx.datetime) - - // For Serialized name - implementation(libs.squareup.retrofit.converter.gson) - implementation(libs.kotlinx.serialization.json) -} +kotlin { + sourceSets { + commonMain.dependencies { + api(libs.kotlinx.datetime) + implementation(libs.kotlinx.serialization.json) + } + androidMain.dependencies { + implementation(libs.squareup.retrofit.converter.gson) + } + } +} \ No newline at end of file diff --git a/core/model/src/test/java/com/mifos/mobilewallet/model/ExampleUnitTest.kt b/core/model/src/test/java/com/mifos/mobilewallet/model/ExampleUnitTest.kt deleted file mode 100644 index 1915be841..000000000 --- a/core/model/src/test/java/com/mifos/mobilewallet/model/ExampleUnitTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package com.mifos.mobilewallet.model - -import org.junit.Assert.assertEquals -import org.junit.Test - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts index 5b13992d6..f4f2243dd 100644 --- a/core/network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -7,7 +7,6 @@ * * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ -import com.android.build.api.dsl.Packaging /* * Copyright 2024 Mifos Initiative @@ -19,9 +18,10 @@ import com.android.build.api.dsl.Packaging * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) - alias(libs.plugins.mifospay.android.hilt) + alias(libs.plugins.mifospay.kmp.library) + alias(libs.plugins.ktrofit) id("kotlinx-serialization") + id("com.google.devtools.ksp") } android { @@ -32,37 +32,53 @@ android { testOptions { unitTests { isReturnDefaultValues = true + isIncludeAndroidResources = true } } } -dependencies { - api(libs.kotlinx.datetime) - api(projects.core.common) - api(projects.core.model) - api(projects.core.datastore) - - implementation(libs.squareup.okhttp) - implementation(libs.squareup.logging.interceptor) - - implementation(libs.squareup.retrofit2) - implementation(libs.retrofit.kotlin.serialization) - implementation(libs.squareup.retrofit.adapter.rxjava) - implementation(libs.squareup.retrofit.converter.gson) - - implementation(libs.reactivex.rxjava.android) - implementation(libs.reactivex.rxjava) - - implementation(libs.jetbrains.kotlin.stdlib) - implementation(libs.ktor.client.core) - implementation(libs.ktor.client.android) - implementation(libs.ktor.client.serialization) - implementation(libs.ktor.client.logging) - implementation(libs.ktor.client.content.negotiation) - implementation(libs.ktor.client.json) - implementation(libs.ktor.client.websockets) - implementation(libs.ktor.serialization.kotlinx.json) - implementation(libs.logback.classic) - - testImplementation(libs.kotlinx.coroutines.test) +kotlin { + sourceSets { + commonMain.dependencies { + api(libs.kotlinx.datetime) + api(projects.core.common) + api(projects.core.model) + implementation(libs.kotlinx.serialization.json) + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.json) + implementation(libs.ktor.client.logging) + implementation(libs.ktor.client.serialization) + implementation(libs.ktor.client.content.negotiation) + implementation(libs.ktor.serialization.kotlinx.json) + implementation(libs.ktorfit.lib) + implementation(libs.ktorfit.converters.call) + implementation(libs.ktorfit.converters.flow) + } + androidMain.dependencies { + implementation(libs.ktor.client.android) + implementation(libs.koin.android) + } + appleMain.dependencies { + implementation(libs.ktor.client.darwin) + } +// wasmJsMain.dependencies { +// implementation(libs.ktor.client.js) +// } + jvmMain.dependencies { + implementation(libs.ktor.client.java) + } + mingwMain.dependencies { + implementation(libs.ktor.client.winhttp) + } + } } + +dependencies { + add("kspCommonMainMetadata", libs.ktorfit.ksp) + add("kspAndroid", libs.ktorfit.ksp) +// add("kspWasmJs", libs.ktorfit.ksp) + add("kspJvm", libs.ktorfit.ksp) + add("kspIosX64", libs.ktorfit.ksp) + add("kspIosArm64", libs.ktorfit.ksp) + add("kspIosSimulatorArm64", libs.ktorfit.ksp) +} \ No newline at end of file diff --git a/core/network/src/main/AndroidManifest.xml b/core/network/src/androidMain/AndroidManifest.xml similarity index 100% rename from core/network/src/main/AndroidManifest.xml rename to core/network/src/androidMain/AndroidManifest.xml diff --git a/core/network/src/main/assets/banks.json b/core/network/src/androidMain/assets/banks.json similarity index 100% rename from core/network/src/main/assets/banks.json rename to core/network/src/androidMain/assets/banks.json diff --git a/core/network/src/main/assets/cities.json b/core/network/src/androidMain/assets/cities.json similarity index 100% rename from core/network/src/main/assets/cities.json rename to core/network/src/androidMain/assets/cities.json diff --git a/core/network/src/main/assets/countries.json b/core/network/src/androidMain/assets/countries.json similarity index 100% rename from core/network/src/main/assets/countries.json rename to core/network/src/androidMain/assets/countries.json diff --git a/core/network/src/main/assets/countriesToCities.json b/core/network/src/androidMain/assets/countriesToCities.json similarity index 100% rename from core/network/src/main/assets/countriesToCities.json rename to core/network/src/androidMain/assets/countriesToCities.json diff --git a/core/network/src/main/assets/states.json b/core/network/src/androidMain/assets/states.json similarity index 100% rename from core/network/src/main/assets/states.json rename to core/network/src/androidMain/assets/states.json diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/ApiEndPoints.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/ApiEndPoints.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/ApiEndPoints.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/ApiEndPoints.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/ApiInterceptor.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/ApiInterceptor.kt similarity index 81% rename from core/network/src/main/kotlin/org/mifospay/core/network/ApiInterceptor.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/ApiInterceptor.kt index a006691cd..26d2511d6 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/ApiInterceptor.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/ApiInterceptor.kt @@ -20,12 +20,12 @@ class ApiInterceptor(private val preferencesHelper: PreferencesHelper) : Interce override fun intercept(chain: Interceptor.Chain): Response { val chainRequest = chain.request() val builder = chainRequest.newBuilder().header( - org.mifospay.core.network.ApiInterceptor.Companion.HEADER_TENANT, - org.mifospay.core.network.ApiInterceptor.Companion.DEFAULT, + HEADER_TENANT, + DEFAULT, ) val authToken = preferencesHelper.token if (!authToken.isNullOrEmpty()) { - builder.header(org.mifospay.core.network.ApiInterceptor.Companion.HEADER_AUTH, authToken) + builder.header(HEADER_AUTH, authToken) } val request = builder.build() return chain.proceed(request) diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/BaseURL.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/BaseURL.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/BaseURL.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/BaseURL.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/FineractApiManager.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/FineractApiManager.kt similarity index 98% rename from core/network/src/main/kotlin/org/mifospay/core/network/FineractApiManager.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/FineractApiManager.kt index a424d3d92..b42a185f4 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/FineractApiManager.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/FineractApiManager.kt @@ -26,9 +26,8 @@ import org.mifospay.core.network.services.StandingInstructionService import org.mifospay.core.network.services.ThirdPartyTransferService import org.mifospay.core.network.services.TwoFactorAuthService import org.mifospay.core.network.services.UserService -import javax.inject.Inject -class FineractApiManager @Inject constructor( +class FineractApiManager( private val authenticationService: AuthenticationService, private val clientService: ClientService, private val savingsAccountsService: SavingsAccountsService, diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/GenericResponse.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/GenericResponse.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/GenericResponse.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/GenericResponse.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/JvmLocalAssetManager.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/JvmLocalAssetManager.kt similarity index 57% rename from core/network/src/main/kotlin/org/mifospay/core/network/JvmLocalAssetManager.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/JvmLocalAssetManager.kt index a2e332838..37cc92891 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/JvmLocalAssetManager.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/JvmLocalAssetManager.kt @@ -13,25 +13,25 @@ import androidx.annotation.VisibleForTesting import org.mifospay.core.network.localAssets.LocalAssetManager import java.io.File import java.io.InputStream -import java.util.Properties /** * This class helps with loading Android `/assets` files, especially when running JVM unit tests. * It must remain on the root package for an easier [Class.getResource] with relative paths. * @see https://developer.android.com/reference/tools/gradle-api/7.3/com/android/build/api/dsl/UnitTestOptions */ + @VisibleForTesting internal object JvmLocalAssetManager : LocalAssetManager { - private val config = - requireNotNull(javaClass.getResource("com/android/tools/test_config.properties")) { - """ - Missing Android resources properties file. - Did you forget to enable the feature in the gradle build file? - android.testOptions.unitTests.isIncludeAndroidResources = true - """.trimIndent() - } - private val properties = Properties().apply { config.openStream().use(::load) } - private val assets = File(properties["android_merged_assets"].toString()) +// private val config = +// requireNotNull(javaClass.getResource("com/android/tools/test_config.properties")) { +// """ +// Missing Android resources properties file. +// Did you forget to enable the feature in the gradle build file? +// android.testOptions.unitTests.isIncludeAndroidResources = true +// """.trimIndent() +// } +// private val properties = Properties().apply { config.openStream().use(::load) } +// private val assets = File(properties["android_merged_assets"].toString()) - override fun open(fileName: String): InputStream = File(assets, fileName).inputStream() + override fun open(fileName: String): InputStream = File(fileName).inputStream() } diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/KtorInterceptor.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/KtorInterceptor.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/KtorInterceptor.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/KtorInterceptor.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/MifosWalletOkHttpClient.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/MifosWalletOkHttpClient.kt similarity index 97% rename from core/network/src/main/kotlin/org/mifospay/core/network/MifosWalletOkHttpClient.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/MifosWalletOkHttpClient.kt index c58705e70..b2fd7bafd 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/MifosWalletOkHttpClient.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/MifosWalletOkHttpClient.kt @@ -78,7 +78,7 @@ class MifosWalletOkHttpClient(private val preferences: PreferencesHelper) { // Interceptor :> Full Body Logger and ApiRequest Header builder.addInterceptor(logger) - builder.addInterceptor(org.mifospay.core.network.ApiInterceptor(preferences)) + builder.addInterceptor(ApiInterceptor(preferences)) return builder.build() } } diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/SelfServiceApiManager.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/SelfServiceApiManager.kt similarity index 96% rename from core/network/src/main/kotlin/org/mifospay/core/network/SelfServiceApiManager.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/SelfServiceApiManager.kt index 059594223..54ea9d17d 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/SelfServiceApiManager.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/SelfServiceApiManager.kt @@ -16,9 +16,8 @@ import org.mifospay.core.network.services.KtorSavingsAccountService import org.mifospay.core.network.services.RegistrationService import org.mifospay.core.network.services.SavingsAccountsService import org.mifospay.core.network.services.ThirdPartyTransferService -import javax.inject.Inject -class SelfServiceApiManager @Inject constructor( +class SelfServiceApiManager( private val authenticationService: AuthenticationService, private val clientService: ClientService, private val savingsAccountsService: SavingsAccountsService, diff --git a/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/LocalModule.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/LocalModule.kt new file mode 100644 index 000000000..484d2effe --- /dev/null +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/LocalModule.kt @@ -0,0 +1,20 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.network.di + +import org.koin.android.ext.koin.androidContext +import org.koin.dsl.module +import org.mifospay.core.network.localAssets.LocalAssetManager + +val LocalModule = module { + single { + LocalAssetManager { fileName -> androidContext().assets.open(fileName) } + } +} diff --git a/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/NetworkModule.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/NetworkModule.kt new file mode 100644 index 000000000..639d5623c --- /dev/null +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/NetworkModule.kt @@ -0,0 +1,233 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.network.di + +import io.ktor.client.HttpClient +import io.ktor.client.engine.android.Android +import io.ktor.client.plugins.HttpTimeout +import io.ktor.client.plugins.contentnegotiation.ContentNegotiation +import io.ktor.client.plugins.logging.LogLevel +import io.ktor.client.plugins.logging.Logging +import io.ktor.client.plugins.websocket.WebSockets +import io.ktor.serialization.kotlinx.json.json +import kotlinx.serialization.json.Json +import org.koin.dsl.module +import org.mifospay.core.datastore.PreferencesHelper +import org.mifospay.core.network.BaseURL +import org.mifospay.core.network.FineractApiManager +import org.mifospay.core.network.KtorInterceptor +import org.mifospay.core.network.MifosWalletOkHttpClient +import org.mifospay.core.network.SelfServiceApiManager +import org.mifospay.core.network.services.AccountTransfersService +import org.mifospay.core.network.services.AuthenticationService +import org.mifospay.core.network.services.BeneficiaryService +import org.mifospay.core.network.services.ClientService +import org.mifospay.core.network.services.DocumentService +import org.mifospay.core.network.services.InvoiceService +import org.mifospay.core.network.services.KYCLevel1Service +import org.mifospay.core.network.services.KtorAuthenticationService +import org.mifospay.core.network.services.KtorSavingsAccountService +import org.mifospay.core.network.services.NotificationService +import org.mifospay.core.network.services.RegistrationService +import org.mifospay.core.network.services.RunReportService +import org.mifospay.core.network.services.SavedCardService +import org.mifospay.core.network.services.SavingsAccountsService +import org.mifospay.core.network.services.SearchService +import org.mifospay.core.network.services.StandingInstructionService +import org.mifospay.core.network.services.ThirdPartyTransferService +import org.mifospay.core.network.services.TwoFactorAuthService +import org.mifospay.core.network.services.UserService +import retrofit2.Retrofit +import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory +import retrofit2.converter.gson.GsonConverterFactory + +@Suppress("TooManyFunctions") +val NetworkModule = module { + + single { + Json { + ignoreUnknownKeys = true + } + } + + single(SelfServiceApi) { + val preferencesHelper: PreferencesHelper = get() + Retrofit.Builder() + .baseUrl(BaseURL().selfServiceUrl) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(MifosWalletOkHttpClient(preferencesHelper).mifosOkHttpClient) + .build() + } + + single(FineractApi) { + val preferencesHelper: PreferencesHelper = get() + Retrofit.Builder() + .baseUrl(BaseURL().url) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(MifosWalletOkHttpClient(preferencesHelper).mifosOkHttpClient) + .build() + } + + single { + FineractApiManager( + authenticationService = get(FineractAuthenticationService), + clientService = get(FineractClientService), + savingsAccountsService = get(FineractSavingsAccountsService), + registrationService = get(FineractRegistrationService), + searchService = get(), + documentService = get(), + runReportService = get(), + twoFactorAuthService = get(), + accountTransfersService = get(), + savedCardService = get(), + kYCLevel1Service = get(), + invoiceService = get(), + userService = get(), + thirdPartyTransferService = get(FineractThirdPartyTransferService), + standingInstructionService = get(), + notificationService = get(), + ktorSavingsAccountService = get(), + ) + } + + single { + SelfServiceApiManager( + authenticationService = get(SelfServiceAuthenticationService), + clientService = get(SelfServiceClientService), + savingsAccountsService = get(SelfServiceSavingsAccountsService), + registrationService = get(SelfServiceRegistrationService), + beneficiaryService = get(), + thirdPartyTransferService = get(SelfServiceThirdPartyTransferService), + ktorSavingsAccountService = get(), + ) + } + +// Http client for Ktor + + single { + HttpClient(Android) { + install(WebSockets) + install(KtorInterceptor) { + this.preferencesHelper = get() + } + install(ContentNegotiation) { + json( + Json { + ignoreUnknownKeys = true + isLenient = true + }, + ) + } + install(HttpTimeout) { + requestTimeoutMillis = 15000 + } + install(Logging) { + level = LogLevel.ALL + } + } + } + + single { KtorAuthenticationService(client = get()) } + single { KtorSavingsAccountService(client = get()) } + + // -----Fineract API Service---------// + + single(FineractAuthenticationService) { + get(FineractApi).create(AuthenticationService::class.java) + } + + single(FineractClientService) { + get(FineractApi).create(ClientService::class.java) + } + + single(FineractSavingsAccountsService) { + get(FineractApi).create(SavingsAccountsService::class.java) + } + + single(FineractRegistrationService) { + get(FineractApi).create(RegistrationService::class.java) + } + + single { + get(FineractApi).create(SearchService::class.java) + } + + single { + get(FineractApi).create(SavedCardService::class.java) + } + + single { + get(FineractApi).create(DocumentService::class.java) + } + + single { + get(FineractApi).create(TwoFactorAuthService::class.java) + } + + single { + get(FineractApi).create(AccountTransfersService::class.java) + } + + single { + get(FineractApi).create(RunReportService::class.java) + } + + single { + get(FineractApi).create(KYCLevel1Service::class.java) + } + + single { + get(FineractApi).create(InvoiceService::class.java) + } + + single { + get(FineractApi).create(UserService::class.java) + } + + single(FineractThirdPartyTransferService) { + get(FineractApi).create(ThirdPartyTransferService::class.java) + } + + single { + get(FineractApi).create(NotificationService::class.java) + } + + single { + get(FineractApi).create(StandingInstructionService::class.java) + } + + // -------SelfService API Service-------// + + single(SelfServiceAuthenticationService) { + get(SelfServiceApi).create(AuthenticationService::class.java) + } + + single(SelfServiceClientService) { + get(SelfServiceApi).create(ClientService::class.java) + } + + single(SelfServiceSavingsAccountsService) { + get(SelfServiceApi).create(SavingsAccountsService::class.java) + } + + single(SelfServiceRegistrationService) { + get(SelfServiceApi).create(RegistrationService::class.java) + } + + single { + get(SelfServiceApi).create(BeneficiaryService::class.java) + } + + single(SelfServiceThirdPartyTransferService) { + get(SelfServiceApi).create(ThirdPartyTransferService::class.java) + } +} diff --git a/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/Qualifier.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/Qualifier.kt new file mode 100644 index 000000000..ae0471f29 --- /dev/null +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/di/Qualifier.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.core.network.di + +import org.koin.core.qualifier.named + +val SelfServiceApi = named("SelfServiceApi") +val FineractApi = named("FineractApi") + +val FineractAuthenticationService = named("FineractAuthenticationService") +val FineractClientService = named("FineractClientService") +val FineractSavingsAccountsService = named("FineractSavingsAccountsService") +val FineractRegistrationService = named("FineractRegistrationService") +val FineractThirdPartyTransferService = named("FineractThirdPartyTransferService") + +val SelfServiceAuthenticationService = named("SelfServiceAuthenticationService") +val SelfServiceClientService = named("SelfServiceClientService") +val SelfServiceSavingsAccountsService = named("SelfServiceSavingsAccountsService") +val SelfServiceRegistrationService = named("SelfServiceRegistrationService") +val SelfServiceThirdPartyTransferService = named("SelfServiceThirdPartyTransferService") diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/localAssets/LocalAssetDataSource.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/localAssets/LocalAssetDataSource.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/localAssets/LocalAssetDataSource.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/localAssets/LocalAssetDataSource.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/localAssets/LocalAssetManager.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/localAssets/LocalAssetManager.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/localAssets/LocalAssetManager.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/localAssets/LocalAssetManager.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/localAssets/MifosLocalAssetDataSource.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/localAssets/MifosLocalAssetDataSource.kt similarity index 82% rename from core/network/src/main/kotlin/org/mifospay/core/network/localAssets/MifosLocalAssetDataSource.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/localAssets/MifosLocalAssetDataSource.kt index 4b85dc667..1bb530e4d 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/localAssets/MifosLocalAssetDataSource.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/localAssets/MifosLocalAssetDataSource.kt @@ -9,7 +9,6 @@ */ package org.mifospay.core.network.localAssets -import android.annotation.SuppressLint import com.mifospay.core.model.City import com.mifospay.core.model.Country import com.mifospay.core.model.State @@ -18,16 +17,11 @@ import kotlinx.coroutines.withContext import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.json.Json import kotlinx.serialization.json.decodeFromStream -import org.mifospay.core.network.Dispatcher -import org.mifospay.core.network.JvmLocalAssetManager -import org.mifospay.core.network.MifosDispatchers -import javax.inject.Inject -class MifosLocalAssetDataSource @Inject constructor( - @Dispatcher(MifosDispatchers.IO) private val ioDispatcher: CoroutineDispatcher, +class MifosLocalAssetDataSource( + private val ioDispatcher: CoroutineDispatcher, private val networkJson: Json, - @SuppressLint("VisibleForTests") - private val assets: LocalAssetManager = JvmLocalAssetManager, + private val assets: LocalAssetManager, ) : LocalAssetDataSource { @OptIn(ExperimentalSerializationApi::class) diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/AccountTransfersService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/AccountTransfersService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/AccountTransfersService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/AccountTransfersService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/AuthenticationService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/AuthenticationService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/AuthenticationService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/AuthenticationService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/BeneficiaryService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/BeneficiaryService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/BeneficiaryService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/BeneficiaryService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/ClientService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/ClientService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/ClientService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/ClientService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/DocumentService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/DocumentService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/DocumentService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/DocumentService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/InvoiceService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/InvoiceService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/InvoiceService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/InvoiceService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/KYCLevel1Service.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KYCLevel1Service.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/KYCLevel1Service.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KYCLevel1Service.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/KtorAuthenticationService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KtorAuthenticationService.kt similarity index 92% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/KtorAuthenticationService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KtorAuthenticationService.kt index 47a93bf53..4df4b550c 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/services/KtorAuthenticationService.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KtorAuthenticationService.kt @@ -18,9 +18,8 @@ import io.ktor.client.request.setBody import io.ktor.http.ContentType import io.ktor.http.contentType import org.mifospay.core.network.BaseURL -import javax.inject.Inject -class KtorAuthenticationService @Inject constructor( +class KtorAuthenticationService( private val client: HttpClient, ) { diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/KtorSavingsAccountService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KtorSavingsAccountService.kt similarity index 97% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/KtorSavingsAccountService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KtorSavingsAccountService.kt index b0fc43c16..141088cd7 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/services/KtorSavingsAccountService.kt +++ b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/KtorSavingsAccountService.kt @@ -20,13 +20,12 @@ import io.ktor.client.request.post import io.ktor.client.request.setBody import io.ktor.http.ContentType import io.ktor.http.contentType -import jakarta.inject.Inject import org.mifospay.core.network.ApiEndPoints.SAVINGS_ACCOUNTS import org.mifospay.core.network.ApiEndPoints.TRANSACTIONS import org.mifospay.core.network.BaseURL import org.mifospay.core.network.GenericResponse -class KtorSavingsAccountService @Inject constructor( +class KtorSavingsAccountService( private val client: HttpClient, ) { suspend fun getSavingsWithAssociations( diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/NotificationService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/NotificationService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/NotificationService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/NotificationService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/RegistrationService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/RegistrationService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/RegistrationService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/RegistrationService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/RunReportService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/RunReportService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/RunReportService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/RunReportService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/SavedCardService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/SavedCardService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/SavedCardService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/SavedCardService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/SavingsAccountsService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/SavingsAccountsService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/SavingsAccountsService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/SavingsAccountsService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/SearchService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/SearchService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/SearchService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/SearchService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/StandingInstructionService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/StandingInstructionService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/StandingInstructionService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/StandingInstructionService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/ThirdPartyTransferService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/ThirdPartyTransferService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/ThirdPartyTransferService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/ThirdPartyTransferService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/TwoFactorAuthService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/TwoFactorAuthService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/TwoFactorAuthService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/TwoFactorAuthService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/services/UserService.kt b/core/network/src/androidMain/kotlin/org/mifospay/core/network/services/UserService.kt similarity index 100% rename from core/network/src/main/kotlin/org/mifospay/core/network/services/UserService.kt rename to core/network/src/androidMain/kotlin/org/mifospay/core/network/services/UserService.kt diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/di/LocalModule.kt b/core/network/src/main/kotlin/org/mifospay/core/network/di/LocalModule.kt deleted file mode 100644 index c6217e930..000000000 --- a/core/network/src/main/kotlin/org/mifospay/core/network/di/LocalModule.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.network.di - -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import org.mifospay.core.network.localAssets.LocalAssetDataSource -import org.mifospay.core.network.localAssets.MifosLocalAssetDataSource - -@Module -@InstallIn(SingletonComponent::class) -internal interface LocalModule { - - @Binds - fun binds(impl: MifosLocalAssetDataSource): LocalAssetDataSource -} diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/di/NetworkModule.kt b/core/network/src/main/kotlin/org/mifospay/core/network/di/NetworkModule.kt deleted file mode 100644 index a58ba87a5..000000000 --- a/core/network/src/main/kotlin/org/mifospay/core/network/di/NetworkModule.kt +++ /dev/null @@ -1,360 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.core.network.di - -import android.content.Context -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent -import io.ktor.client.HttpClient -import io.ktor.client.engine.android.Android -import io.ktor.client.plugins.HttpTimeout -import io.ktor.client.plugins.contentnegotiation.ContentNegotiation -import io.ktor.client.plugins.logging.LogLevel -import io.ktor.client.plugins.logging.Logging -import io.ktor.client.plugins.websocket.WebSockets -import io.ktor.serialization.kotlinx.json.json -import kotlinx.serialization.json.Json -import org.mifospay.core.datastore.PreferencesHelper -import org.mifospay.core.network.BaseURL -import org.mifospay.core.network.FineractApiManager -import org.mifospay.core.network.KtorInterceptor -import org.mifospay.core.network.MifosWalletOkHttpClient -import org.mifospay.core.network.SelfServiceApiManager -import org.mifospay.core.network.localAssets.LocalAssetManager -import org.mifospay.core.network.services.AccountTransfersService -import org.mifospay.core.network.services.AuthenticationService -import org.mifospay.core.network.services.BeneficiaryService -import org.mifospay.core.network.services.ClientService -import org.mifospay.core.network.services.DocumentService -import org.mifospay.core.network.services.InvoiceService -import org.mifospay.core.network.services.KYCLevel1Service -import org.mifospay.core.network.services.KtorAuthenticationService -import org.mifospay.core.network.services.KtorSavingsAccountService -import org.mifospay.core.network.services.NotificationService -import org.mifospay.core.network.services.RegistrationService -import org.mifospay.core.network.services.RunReportService -import org.mifospay.core.network.services.SavedCardService -import org.mifospay.core.network.services.SavingsAccountsService -import org.mifospay.core.network.services.SearchService -import org.mifospay.core.network.services.StandingInstructionService -import org.mifospay.core.network.services.ThirdPartyTransferService -import org.mifospay.core.network.services.TwoFactorAuthService -import org.mifospay.core.network.services.UserService -import retrofit2.Retrofit -import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory -import retrofit2.converter.gson.GsonConverterFactory -import javax.inject.Named -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -@Suppress("TooManyFunctions") -class NetworkModule { - - @Provides - @Singleton - fun providesNetworkJson(): Json = Json { - ignoreUnknownKeys = true - } - - @Provides - @Singleton - fun providesFakeAssetManager( - @ApplicationContext context: Context, - ): LocalAssetManager = LocalAssetManager(context.assets::open) - - @Provides - @Singleton - @SelfServiceApi - fun providesRetrofitSelfService(preferencesHelper: PreferencesHelper): Retrofit { - return Retrofit.Builder() - .baseUrl(BaseURL().selfServiceUrl) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) - .client(MifosWalletOkHttpClient(preferencesHelper).mifosOkHttpClient) - .build() - } - - @Provides - @Singleton - @FineractApi - fun providesRetrofitFineract(preferencesHelper: PreferencesHelper): Retrofit { - return Retrofit.Builder() - .baseUrl(BaseURL().url) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) - .client(MifosWalletOkHttpClient(preferencesHelper).mifosOkHttpClient) - .build() - } - - @Provides - @Singleton - fun providesFineractApiManager( - @Named("FineractAuthenticationService") authenticationService: AuthenticationService, - @Named("FineractClientService") clientService: ClientService, - @Named("FineractSavingsAccountsService") savingsAccountsService: SavingsAccountsService, - @Named("FineractRegistrationService") registrationService: RegistrationService, - searchService: SearchService, - documentService: DocumentService, - runReportService: RunReportService, - twoFactorAuthService: TwoFactorAuthService, - accountTransfersService: AccountTransfersService, - savedCardService: SavedCardService, - kYCLevel1Service: KYCLevel1Service, - invoiceService: InvoiceService, - userService: UserService, - @Named("FineractThirdPartyTransferService") thirdPartyTransferService: ThirdPartyTransferService, - standingInstructionService: StandingInstructionService, - notificationService: NotificationService, - ktorSavingsAccountService: KtorSavingsAccountService, - ): FineractApiManager { - return FineractApiManager( - authenticationService, - clientService, - savingsAccountsService, - registrationService, - searchService, - documentService, - runReportService, - twoFactorAuthService, - accountTransfersService, - savedCardService, - kYCLevel1Service, - invoiceService, - userService, - thirdPartyTransferService, - standingInstructionService, - notificationService, - ktorSavingsAccountService, - ) - } - - @Provides - @Singleton - fun providesSelfServiceApiManager( - @Named("SelfServiceAuthenticationService") authenticationService: AuthenticationService, - @Named("SelfServiceClientService") clientService: ClientService, - @Named("SelfServiceSavingsAccountsService") savingsAccountsService: SavingsAccountsService, - ktorSavingsAccountService: KtorSavingsAccountService, - @Named("SelfServiceRegistrationService") registrationService: RegistrationService, - beneficiaryService: BeneficiaryService, - @Named("SelfServiceThirdPartyTransferService") thirdPartyTransferService: ThirdPartyTransferService, - ): SelfServiceApiManager { - return SelfServiceApiManager( - authenticationService, - clientService, - savingsAccountsService, - registrationService, - beneficiaryService, - thirdPartyTransferService, - ktorSavingsAccountService, - ) - } - - @Provides - @Singleton - fun provideHttpClient(preferencesHelper: PreferencesHelper): HttpClient { - return HttpClient(Android) { - install(WebSockets) - install(KtorInterceptor) { - this.preferencesHelper = preferencesHelper - } - install(ContentNegotiation) { - json( - Json { - ignoreUnknownKeys = true - isLenient = true - }, - ) - } - install(HttpTimeout) { - requestTimeoutMillis = 15000 - } - install(Logging) { - level = LogLevel.ALL - } - } - } - - @Provides - @Singleton - fun provideAuthenticationService(client: HttpClient): KtorAuthenticationService { - return KtorAuthenticationService(client) - } - - @Provides - @Singleton - fun providesKtorSavingsAccountService( - client: HttpClient, - ): KtorSavingsAccountService { - return KtorSavingsAccountService(client) - } - - // -----Fineract API Service---------// - - @Provides - @Singleton - @Named("FineractAuthenticationService") - fun providesAuthenticationService(@FineractApi retrofit: Retrofit): AuthenticationService { - return retrofit.create(AuthenticationService::class.java) - } - - @Provides - @Singleton - @Named("FineractClientService") - fun providesClientService(@FineractApi retrofit: Retrofit): ClientService { - return retrofit.create(ClientService::class.java) - } - - @Provides - @Singleton - @Named("FineractSavingsAccountsService") - fun providesSavingsAccountsService(@FineractApi retrofit: Retrofit): SavingsAccountsService { - return retrofit.create(SavingsAccountsService::class.java) - } - - @Provides - @Singleton - @Named("FineractRegistrationService") - fun providesRegistrationService(@FineractApi retrofit: Retrofit): RegistrationService { - return retrofit.create(RegistrationService::class.java) - } - - @Provides - @Singleton - fun providesSearchService(@FineractApi retrofit: Retrofit): SearchService { - return retrofit.create(SearchService::class.java) - } - - @Provides - @Singleton - fun providesSavedCardService(@FineractApi retrofit: Retrofit): SavedCardService { - return retrofit.create(SavedCardService::class.java) - } - - @Provides - @Singleton - fun providesDocumentService(@FineractApi retrofit: Retrofit): DocumentService { - return retrofit.create(DocumentService::class.java) - } - - @Provides - @Singleton - fun provideTwoFactorAuthService(@FineractApi retrofit: Retrofit): TwoFactorAuthService { - return retrofit.create(TwoFactorAuthService::class.java) - } - - @Provides - @Singleton - fun providesAccountTransfersService(@FineractApi retrofit: Retrofit): AccountTransfersService { - return retrofit.create(AccountTransfersService::class.java) - } - - @Provides - @Singleton - fun providesRunReportService(@FineractApi retrofit: Retrofit): RunReportService { - return retrofit.create(RunReportService::class.java) - } - - @Provides - @Singleton - fun providesKYCLevel1Service(@FineractApi retrofit: Retrofit): KYCLevel1Service { - return retrofit.create(KYCLevel1Service::class.java) - } - - @Provides - @Singleton - fun providesInvoiceService(@FineractApi retrofit: Retrofit): InvoiceService { - return retrofit.create(InvoiceService::class.java) - } - - @Provides - @Singleton - fun providesUserService(@FineractApi retrofit: Retrofit): UserService { - return retrofit.create(UserService::class.java) - } - - @Provides - @Singleton - @Named("FineractThirdPartyTransferService") - fun providesThirdPartyTransferService(@FineractApi retrofit: Retrofit): ThirdPartyTransferService { - return retrofit.create(ThirdPartyTransferService::class.java) - } - - @Provides - @Singleton - fun providesNotificationService(@FineractApi retrofit: Retrofit): NotificationService { - return retrofit.create(NotificationService::class.java) - } - - @Provides - @Singleton - fun providesStandingInstructionService(@FineractApi retrofit: Retrofit): StandingInstructionService { - return retrofit.create(StandingInstructionService::class.java) - } - - // -------SelfService API Service-------// - - @Provides - @Singleton - @Named("SelfServiceAuthenticationService") - fun providesSelfServiceAuthenticationService( - @SelfServiceApi retrofit: Retrofit, - ): AuthenticationService { - return retrofit.create(AuthenticationService::class.java) - } - - @Provides - @Singleton - @Named("SelfServiceClientService") - fun providesSelfServiceClientService( - @SelfServiceApi retrofit: Retrofit, - ): ClientService { - return retrofit.create(ClientService::class.java) - } - - @Provides - @Singleton - @Named("SelfServiceSavingsAccountsService") - fun providesSelfServiceSavingsAccountsService( - @SelfServiceApi retrofit: Retrofit, - ): SavingsAccountsService { - return retrofit.create(SavingsAccountsService::class.java) - } - - @Provides - @Singleton - @Named("SelfServiceRegistrationService") - fun providesSelfServiceRegistrationService( - @SelfServiceApi retrofit: Retrofit, - ): RegistrationService { - return retrofit.create(RegistrationService::class.java) - } - - @Provides - @Singleton - fun providesSelfServiceBeneficiaryService( - @SelfServiceApi retrofit: Retrofit, - ): BeneficiaryService { - return retrofit.create(BeneficiaryService::class.java) - } - - @Provides - @Singleton - @Named("SelfServiceThirdPartyTransferService") - fun providesSelfServiceThirdPartyTransferService( - @SelfServiceApi retrofit: Retrofit, - ): ThirdPartyTransferService { - return retrofit.create(ThirdPartyTransferService::class.java) - } -} diff --git a/core/network/src/test/java/org/mifospay/mobilewallet/mifospay/network/ExampleUnitTest.kt b/core/network/src/test/java/org/mifospay/mobilewallet/mifospay/network/ExampleUnitTest.kt deleted file mode 100644 index bbaddbe81..000000000 --- a/core/network/src/test/java/org/mifospay/mobilewallet/mifospay/network/ExampleUnitTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay.mobilewallet.mifospay.network - -import org.junit.Assert.assertEquals -import org.junit.Test - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index 74cbb02cc..3426567e3 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -8,30 +8,40 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - alias(libs.plugins.mifospay.android.library) - alias(libs.plugins.mifospay.android.library.compose) + alias(libs.plugins.mifospay.kmp.library) + alias(libs.plugins.jetbrainsCompose) + alias(libs.plugins.compose.compiler) } android { namespace = "org.mifospay.core.ui" - defaultConfig { - consumerProguardFiles("consumer-rules.pro") - } } -dependencies { - api(projects.core.designsystem) - api(projects.core.model) - api(projects.core.common) - api(libs.androidx.metrics) - api(projects.core.analytics) - - implementation(libs.androidx.compose.runtime) - implementation(libs.accompanist.pager) - implementation(libs.androidx.browser) - implementation(libs.coil.kt) - implementation(libs.coil.kt.compose) +kotlin { + sourceSets { + androidMain.dependencies { + api(libs.androidx.metrics) + implementation(libs.androidx.browser) + implementation(libs.androidx.compose.runtime) + implementation(libs.accompanist.pager) + } + commonMain.dependencies { + api(projects.core.analytics) + api(projects.core.designsystem) + api(projects.core.model) + implementation(libs.coil.kt) + implementation(libs.coil.kt.compose) + implementation(compose.material3) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + } + androidInstrumentedTest.dependencies { + implementation(libs.bundles.androidx.compose.ui.test) + } + } +} - testImplementation(libs.androidx.compose.ui.test) - androidTestImplementation(libs.bundles.androidx.compose.ui.test) +compose.resources { + publicResClass = true + generateResClass = always } \ No newline at end of file diff --git a/feature/accounts/build.gradle.kts b/feature/accounts/build.gradle.kts index 75d75c8b1..a0ddb8c38 100644 --- a/feature/accounts/build.gradle.kts +++ b/feature/accounts/build.gradle.kts @@ -20,4 +20,5 @@ dependencies { implementation(projects.core.data) implementation(projects.libs.pullrefresh) + implementation(libs.play.services.auth) } \ No newline at end of file diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountViewModel.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountViewModel.kt index 2010c9eda..1512449d8 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountViewModel.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountViewModel.kt @@ -12,17 +12,14 @@ package org.mifospay.feature.bank.accounts import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mifospay.core.model.domain.BankAccountDetails -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import java.util.Random -import javax.inject.Inject -@HiltViewModel -class AccountViewModel @Inject constructor() : ViewModel() { +class AccountViewModel : ViewModel() { private val _bankAccountDetailsList = MutableStateFlow>(emptyList()) val bankAccountDetailsList: StateFlow> = _bankAccountDetailsList diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt index 45fa9d047..cfa68243f 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/AccountsScreen.kt @@ -28,12 +28,12 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifos.library.pullrefresh.PullRefreshIndicator import com.mifos.library.pullrefresh.pullRefresh import com.mifos.library.pullrefresh.rememberPullRefreshState import com.mifospay.core.model.domain.BankAccountDetails +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.icon.MifosIcons import org.mifospay.core.ui.EmptyContentScreen @@ -44,7 +44,7 @@ fun AccountsScreen( navigateToBankAccountDetailScreen: (BankAccountDetails, Int) -> Unit, navigateToLinkBankAccountScreen: () -> Unit, modifier: Modifier = Modifier, - viewModel: AccountViewModel = hiltViewModel(), + viewModel: AccountViewModel = koinViewModel(), ) { val accountsUiState by viewModel.accountsUiState.collectAsStateWithLifecycle() val isRefreshing by viewModel.isRefreshing.collectAsStateWithLifecycle() diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/di/AccountsModule.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/di/AccountsModule.kt new file mode 100644 index 000000000..db21bb51c --- /dev/null +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/di/AccountsModule.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.bank.accounts.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.core.data.di.DataModule +import org.mifospay.feature.bank.accounts.AccountViewModel +import org.mifospay.feature.bank.accounts.link.LinkBankAccountViewModel + +val AccountsModule = module { + includes(DataModule) + viewModel { + LinkBankAccountViewModel(localAssetRepository = get()) + } + viewModel { + AccountViewModel() + } +} diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt index ec319bc8c..d51bfce27 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountScreen.kt @@ -50,10 +50,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.domain.Bank import com.mifospay.core.model.domain.BankType +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel import org.mifospay.core.designsystem.component.MifosCard @@ -67,7 +67,7 @@ import org.mifospay.feature.bank.accounts.choose.sim.ChooseSimDialogSheet @Composable internal fun LinkBankAccountRoute( - viewModel: LinkBankAccountViewModel = hiltViewModel(), + viewModel: LinkBankAccountViewModel = koinViewModel(), onBackClick: () -> Unit, ) { val bankUiState by viewModel.bankListUiState.collectAsStateWithLifecycle() diff --git a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt index 9f6c107ac..2d23eb372 100644 --- a/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt +++ b/feature/accounts/src/main/kotlin/org/mifospay/feature/bank/accounts/link/LinkBankAccountViewModel.kt @@ -17,7 +17,6 @@ import androidx.lifecycle.viewModelScope import com.mifospay.core.model.domain.Bank import com.mifospay.core.model.domain.BankAccountDetails import com.mifospay.core.model.domain.BankType -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -26,14 +25,12 @@ import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.update -import org.mifospay.core.data.repository.local.MifosLocalAssetRepository +import org.mifospay.core.data.repository.local.LocalAssetRepository import org.mifospay.feature.bank.accounts.R import java.util.Random -import javax.inject.Inject -@HiltViewModel -class LinkBankAccountViewModel @Inject constructor( - localAssetRepository: MifosLocalAssetRepository, +class LinkBankAccountViewModel( + localAssetRepository: LocalAssetRepository, ) : ViewModel() { private val searchQuery = MutableStateFlow("") diff --git a/feature/auth/build.gradle.kts b/feature/auth/build.gradle.kts index 31e838893..ae4c6d07b 100644 --- a/feature/auth/build.gradle.kts +++ b/feature/auth/build.gradle.kts @@ -20,8 +20,6 @@ android { } dependencies { - implementation(projects.core.data) - implementation(projects.libs.countryCodePicker) // Credentials Manager diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/di/AuthModule.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/di/AuthModule.kt new file mode 100644 index 000000000..7da08aa6a --- /dev/null +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/di/AuthModule.kt @@ -0,0 +1,49 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.auth.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.auth.login.LoginViewModel +import org.mifospay.feature.auth.mobileVerify.MobileVerificationViewModel +import org.mifospay.feature.auth.signup.SignupViewModel + +val AuthModule = module { + viewModel { + LoginViewModel( + mUseCaseHandler = get(), + authenticateUserUseCase = get(), + fetchClientDataUseCase = get(), + fetchUserDetailsUseCase = get(), + preferencesHelper = get(), + ) + } + viewModel { + SignupViewModel( + localAssetRepository = get(), + useCaseHandler = get(), + preferencesHelper = get(), + searchClientUseCase = get(), + createClientUseCase = get(), + createUserUseCase = get(), + updateUserUseCase = get(), + authenticateUserUseCase = get(), + fetchClientDataUseCase = get(), + deleteUserUseCase = get(), + fetchUserDetailsUseCase = get(), + ) + } + viewModel { + MobileVerificationViewModel( + mUseCaseHandler = get(), + searchClientUseCase = get(), + ) + } +} diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginScreen.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginScreen.kt index efc373fe5..4cddd202e 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginScreen.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginScreen.kt @@ -43,8 +43,8 @@ import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosOutlinedTextField @@ -59,7 +59,7 @@ import org.mifospay.feature.auth.socialSignup.SocialSignupMethodContentScreen internal fun LoginScreen( navigateToPasscodeScreen: () -> Unit, modifier: Modifier = Modifier, - viewModel: LoginViewModel = hiltViewModel(), + viewModel: LoginViewModel = koinViewModel(), navigateToSignupScreen: () -> Unit, ) { val context = LocalContext.current diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginViewModel.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginViewModel.kt index 6ecde19a8..8ed1a1cec 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginViewModel.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/login/LoginViewModel.kt @@ -14,7 +14,6 @@ import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.client.Client import com.mifospay.core.model.domain.user.User import com.mifospay.core.model.entity.UserWithRole -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update @@ -24,10 +23,8 @@ import org.mifospay.core.data.domain.usecase.client.FetchClientData import org.mifospay.core.data.domain.usecase.user.AuthenticateUser import org.mifospay.core.data.domain.usecase.user.FetchUserDetails import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -@HiltViewModel -class LoginViewModel @Inject constructor( +class LoginViewModel( private val mUseCaseHandler: UseCaseHandler, private val authenticateUserUseCase: AuthenticateUser, private val fetchClientDataUseCase: FetchClientData, diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationScreen.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationScreen.kt index ef304a4e9..db9ec6611 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationScreen.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationScreen.kt @@ -39,9 +39,9 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifos.library.countrycodepicker.CountryCodePicker +import org.koin.androidx.compose.koinViewModel import org.mifospay.common.Constants import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosLoadingWheel @@ -53,7 +53,7 @@ import org.mifospay.feature.auth.R internal fun MobileVerificationScreen( onOtpVerificationSuccess: (String) -> Unit, modifier: Modifier = Modifier, - viewModel: MobileVerificationViewModel = hiltViewModel(), + viewModel: MobileVerificationViewModel = koinViewModel(), ) { val context = LocalContext.current val uiState by viewModel.uiState.collectAsStateWithLifecycle() diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationViewModel.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationViewModel.kt index 001e82647..fa0e3b7ab 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationViewModel.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/mobileVerify/MobileVerificationViewModel.kt @@ -14,7 +14,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -23,11 +22,9 @@ import kotlinx.coroutines.launch import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.client.SearchClient -import javax.inject.Inject -@HiltViewModel @Suppress("UnusedParameter") -class MobileVerificationViewModel @Inject constructor( +class MobileVerificationViewModel( private val mUseCaseHandler: UseCaseHandler, private val searchClientUseCase: SearchClient, ) : ViewModel() { diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupScreen.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupScreen.kt index 1306520e9..d52642be0 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupScreen.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupScreen.kt @@ -42,11 +42,11 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.State import com.mifospay.core.model.signup.PasswordStrength import com.mifospay.core.model.signup.SignupData +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.data.util.Constants.MIFOS_MERCHANT_SAVINGS_PRODUCT_ID import org.mifospay.core.designsystem.component.MfOutlinedTextField import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel @@ -68,7 +68,7 @@ internal fun SignupScreen( businessName: String, onLoginSuccess: () -> Unit, modifier: Modifier = Modifier, - viewModel: SignupViewModel = hiltViewModel(), + viewModel: SignupViewModel = koinViewModel(), ) { val context = LocalContext.current diff --git a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupViewModel.kt b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupViewModel.kt index e6f664726..c9e3aeb77 100644 --- a/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupViewModel.kt +++ b/feature/auth/src/main/kotlin/org/mifospay/feature/auth/signup/SignupViewModel.kt @@ -20,7 +20,6 @@ import com.mifospay.core.model.domain.user.UpdateUserEntityClients import com.mifospay.core.model.domain.user.User import com.mifospay.core.model.entity.UserWithRole import com.mifospay.core.model.signup.SignupData -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.combine @@ -40,10 +39,8 @@ import org.mifospay.core.data.domain.usecase.user.FetchUserDetails import org.mifospay.core.data.domain.usecase.user.UpdateUser import org.mifospay.core.data.repository.local.LocalAssetRepository import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -@HiltViewModel -class SignupViewModel @Inject constructor( +class SignupViewModel( localAssetRepository: LocalAssetRepository, private val useCaseHandler: UseCaseHandler, private val preferencesHelper: PreferencesHelper, diff --git a/feature/editpassword/build.gradle.kts b/feature/editpassword/build.gradle.kts index 0fd1e480d..34b701da8 100644 --- a/feature/editpassword/build.gradle.kts +++ b/feature/editpassword/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.feature.editpassword" } -dependencies { - implementation(projects.core.data) -} \ No newline at end of file +dependencies {} \ No newline at end of file diff --git a/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt index 9d04e31c3..e49c4ede1 100644 --- a/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt +++ b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordScreen.kt @@ -35,9 +35,9 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import kotlinx.coroutines.launch +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfPasswordTextField import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosScaffold @@ -48,7 +48,7 @@ internal fun EditPasswordScreen( onBackPress: () -> Unit, onCancelChanges: () -> Unit, modifier: Modifier = Modifier, - viewModel: EditPasswordViewModel = hiltViewModel(), + viewModel: EditPasswordViewModel = koinViewModel(), ) { val editPasswordUiState by viewModel.editPasswordUiState.collectAsStateWithLifecycle() EditPasswordScreen( diff --git a/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordViewModel.kt b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordViewModel.kt index c22134728..f905b6e28 100644 --- a/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordViewModel.kt +++ b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/EditPasswordViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.editpassword import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.user.UpdateUserEntityPassword -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.common.Constants @@ -20,11 +19,9 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.user.AuthenticateUser import org.mifospay.core.data.domain.usecase.user.UpdateUser import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -@HiltViewModel @Suppress("NestedBlockDepth") -class EditPasswordViewModel @Inject constructor( +class EditPasswordViewModel( private val mUseCaseHandler: UseCaseHandler, private val mPreferencesHelper: PreferencesHelper, private val authenticateUserUseCase: AuthenticateUser, diff --git a/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/di/EditPasswordModule.kt b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/di/EditPasswordModule.kt new file mode 100644 index 000000000..ed1432c0a --- /dev/null +++ b/feature/editpassword/src/main/kotlin/org/mifospay/feature/editpassword/di/EditPasswordModule.kt @@ -0,0 +1,25 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.editpassword.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.editpassword.EditPasswordViewModel + +val EditPasswordModule = module { + viewModel { + EditPasswordViewModel( + mUseCaseHandler = get(), + mPreferencesHelper = get(), + authenticateUserUseCase = get(), + updateUserUseCase = get(), + ) + } +} diff --git a/feature/faq/build.gradle.kts b/feature/faq/build.gradle.kts index b735d0ec9..053183d86 100644 --- a/feature/faq/build.gradle.kts +++ b/feature/faq/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.feature.faq" } -dependencies { - -} \ No newline at end of file +dependencies { } \ No newline at end of file diff --git a/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FAQViewModel.kt b/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FAQViewModel.kt index 70c74979b..1a5376313 100644 --- a/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FAQViewModel.kt +++ b/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FAQViewModel.kt @@ -10,11 +10,8 @@ package org.mifospay.feature.faq import androidx.lifecycle.ViewModel -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject -@HiltViewModel -internal class FAQViewModel @Inject constructor() : ViewModel() { +internal class FAQViewModel : ViewModel() { /** * Retrieves a list of Frequently Asked Questions (FAQs). diff --git a/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FaqScreen.kt b/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FaqScreen.kt index 47675f9bc..a3a7a5426 100644 --- a/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FaqScreen.kt +++ b/feature/faq/src/main/kotlin/org/mifospay/feature/faq/FaqScreen.kt @@ -18,7 +18,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview -import androidx.hilt.navigation.compose.hiltViewModel +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MifosTopBar import org.mifospay.core.ui.FaqItemScreen @@ -26,7 +26,7 @@ import org.mifospay.core.ui.FaqItemScreen internal fun FaqScreenRoute( navigateBack: () -> Unit, modifier: Modifier = Modifier, - faqViewModel: FAQViewModel = hiltViewModel(), + faqViewModel: FAQViewModel = koinViewModel(), ) { FaqScreen( modifier = modifier, diff --git a/core/network/src/main/kotlin/org/mifospay/core/network/di/Qualifier.kt b/feature/faq/src/main/kotlin/org/mifospay/feature/faq/di/FaqModule.kt similarity index 58% rename from core/network/src/main/kotlin/org/mifospay/core/network/di/Qualifier.kt rename to feature/faq/src/main/kotlin/org/mifospay/feature/faq/di/FaqModule.kt index 10c2ed1a8..844a6e8cc 100644 --- a/core/network/src/main/kotlin/org/mifospay/core/network/di/Qualifier.kt +++ b/feature/faq/src/main/kotlin/org/mifospay/feature/faq/di/FaqModule.kt @@ -7,14 +7,15 @@ * * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ -package org.mifospay.core.network.di +package org.mifospay.feature.faq.di -import javax.inject.Qualifier +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.faq.FAQViewModel -@Qualifier -@Retention(AnnotationRetention.BINARY) -annotation class SelfServiceApi +val FaqModule = module { -@Qualifier -@Retention(AnnotationRetention.BINARY) -annotation class FineractApi + viewModel { + FAQViewModel() + } +} diff --git a/feature/history/build.gradle.kts b/feature/history/build.gradle.kts index 6cae0e1c1..77b20cc0b 100644 --- a/feature/history/build.gradle.kts +++ b/feature/history/build.gradle.kts @@ -17,5 +17,6 @@ android { } dependencies { - implementation(projects.core.data) + + implementation(projects.libs.pullrefresh) } \ No newline at end of file diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/di/HistoryModule.kt b/feature/history/src/main/kotlin/org/mifospay/feature/di/HistoryModule.kt new file mode 100644 index 000000000..e2be88b04 --- /dev/null +++ b/feature/history/src/main/kotlin/org/mifospay/feature/di/HistoryModule.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.history.HistoryViewModel +import org.mifospay.feature.specific.transactions.SpecificTransactionsViewModel +import org.mifospay.feature.transaction.detail.TransactionDetailViewModel + +val HistoryModule = module { + + viewModel { + HistoryViewModel( + mUseCaseHandler = get(), + mLocalRepository = get(), + mFetchAccountUseCase = get(), + fetchAccountTransactionsUseCase = get(), + ) + } + + viewModel { + SpecificTransactionsViewModel( + mUseCaseFactory = get(), + mTaskLooper = get(), + savedStateHandle = get(), + ) + } + + viewModel { + TransactionDetailViewModel(mUseCaseHandler = get(), mFetchAccountTransferUseCase = get()) + } +} diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryScreen.kt b/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryScreen.kt index 328b6bbb7..93077d2e2 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryScreen.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryScreen.kt @@ -36,12 +36,12 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.domain.Currency import com.mifospay.core.model.domain.Transaction import com.mifospay.core.model.domain.TransactionType import com.mifospay.core.model.entity.accounts.savings.TransferDetail +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MifosBottomSheet import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosLoadingWheel @@ -56,7 +56,7 @@ fun HistoryScreen( viewReceipt: (String) -> Unit, accountClicked: (String, ArrayList) -> Unit, modifier: Modifier = Modifier, - viewModel: HistoryViewModel = hiltViewModel(), + viewModel: HistoryViewModel = koinViewModel(), ) { val historyUiState by viewModel.historyUiState.collectAsStateWithLifecycle() diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryViewModel.kt b/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryViewModel.kt index 1bbb8fad6..16bc6e090 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryViewModel.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/history/HistoryViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.history import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.Transaction -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCase @@ -19,10 +18,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.FetchAccount import org.mifospay.core.data.domain.usecase.account.FetchAccountTransactions import org.mifospay.core.data.repository.local.LocalRepository -import javax.inject.Inject -@HiltViewModel -class HistoryViewModel @Inject constructor( +class HistoryViewModel( private val mUseCaseHandler: UseCaseHandler, private val mLocalRepository: LocalRepository, private val mFetchAccountUseCase: FetchAccount, diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt index 907853c89..83cc4297b 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsScreen.kt @@ -34,12 +34,12 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.domain.Transaction import com.mifospay.core.model.domain.TransactionType import com.mifospay.core.model.domain.client.Client import com.mifospay.core.model.entity.accounts.savings.SavingAccount +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MifosScaffold import org.mifospay.core.designsystem.icon.MifosIcons @@ -56,7 +56,7 @@ internal fun SpecificTransactionsScreen( backPress: () -> Unit, transactionItemClicked: (String) -> Unit, modifier: Modifier = Modifier, - viewModel: SpecificTransactionsViewModel = hiltViewModel(), + viewModel: SpecificTransactionsViewModel = koinViewModel(), ) { val uiState by viewModel.uiState.collectAsStateWithLifecycle() diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsViewModel.kt b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsViewModel.kt index 03276dc37..ad53eef1d 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsViewModel.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/specific/transactions/SpecificTransactionsViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.specific.transactions import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.Transaction -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import org.mifospay.core.data.base.TaskLooper @@ -23,10 +22,8 @@ import org.mifospay.core.data.util.Constants import org.mifospay.feature.specific.transactions.SpecificTransactionsUiState.Loading import org.mifospay.feature.specific.transactions.navigation.ACCOUNT_NUMBER_ARG import org.mifospay.feature.specific.transactions.navigation.TRANSACTIONS_ARG -import javax.inject.Inject -@HiltViewModel -class SpecificTransactionsViewModel @Inject constructor( +class SpecificTransactionsViewModel( private val mUseCaseFactory: UseCaseFactory, private var mTaskLooper: TaskLooper? = null, savedStateHandle: SavedStateHandle, diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt b/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt index ffb59961d..d57010eb1 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailScreen.kt @@ -33,11 +33,11 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.domain.Transaction import com.mifospay.core.model.domain.TransactionType import com.mifospay.core.model.entity.accounts.savings.TransferDetail +import org.koin.androidx.compose.koinViewModel import org.mifospay.common.Constants import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.theme.MifosTheme @@ -51,7 +51,7 @@ internal fun TransactionDetailScreen( viewReceipt: () -> Unit, accountClicked: (String) -> Unit, modifier: Modifier = Modifier, - viewModel: TransactionDetailViewModel = hiltViewModel(), + viewModel: TransactionDetailViewModel = koinViewModel(), ) { val uiState = viewModel.transactionDetailUiState.collectAsStateWithLifecycle() diff --git a/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailViewModel.kt b/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailViewModel.kt index 5f33079af..5543b2228 100644 --- a/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailViewModel.kt +++ b/feature/history/src/main/kotlin/org/mifospay/feature/transaction/detail/TransactionDetailViewModel.kt @@ -11,15 +11,12 @@ package org.mifospay.feature.transaction.detail import androidx.lifecycle.ViewModel import com.mifospay.core.model.entity.accounts.savings.TransferDetail -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.FetchAccountTransfer -import javax.inject.Inject -@HiltViewModel -class TransactionDetailViewModel @Inject constructor( +class TransactionDetailViewModel( private val mUseCaseHandler: UseCaseHandler, private val mFetchAccountTransferUseCase: FetchAccountTransfer, ) : ViewModel() { diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts index 9e50d5e5f..0fe68be92 100644 --- a/feature/home/build.gradle.kts +++ b/feature/home/build.gradle.kts @@ -17,5 +17,5 @@ android { } dependencies { - implementation(projects.core.data) + } \ No newline at end of file diff --git a/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt b/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt index d3ad4d895..847d509ce 100644 --- a/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt +++ b/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeScreen.kt @@ -45,12 +45,12 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.domain.Account import com.mifospay.core.model.domain.Currency import com.mifospay.core.model.domain.Transaction import com.mifospay.core.model.domain.TransactionType +import org.koin.androidx.compose.koinViewModel import org.mifospay.common.Utils import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.theme.border @@ -63,7 +63,7 @@ internal fun HomeRoute( onRequest: (String) -> Unit, onPay: () -> Unit, modifier: Modifier = Modifier, - homeViewModel: HomeViewModel = hiltViewModel(), + homeViewModel: HomeViewModel = koinViewModel(), ) { val homeUIState by homeViewModel .homeUIState diff --git a/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeViewModel.kt b/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeViewModel.kt index ca572713f..eb2d3832a 100644 --- a/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeViewModel.kt +++ b/feature/home/src/main/kotlin/org/mifospay/feature/home/HomeViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.home import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.Account import com.mifospay.core.model.domain.Transaction -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -24,10 +23,8 @@ import org.mifospay.core.data.domain.usecase.history.HistoryContract import org.mifospay.core.data.domain.usecase.history.TransactionsHistory import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -@HiltViewModel -class HomeViewModel @Inject constructor( +class HomeViewModel( private val useCaseHandler: UseCaseHandler, private val localRepository: LocalRepository, private val preferencesHelper: PreferencesHelper, diff --git a/feature/home/src/main/kotlin/org/mifospay/feature/home/di/HomeModule.kt b/feature/home/src/main/kotlin/org/mifospay/feature/home/di/HomeModule.kt new file mode 100644 index 000000000..317f70e96 --- /dev/null +++ b/feature/home/src/main/kotlin/org/mifospay/feature/home/di/HomeModule.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.home.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.home.HomeViewModel + +val HomeModule = module { + viewModel { + HomeViewModel( + useCaseHandler = get(), + localRepository = get(), + preferencesHelper = get(), + fetchAccountUseCase = get(), + transactionsHistory = get(), + ) + } +} diff --git a/feature/invoices/build.gradle.kts b/feature/invoices/build.gradle.kts index 93df48185..94232da14 100644 --- a/feature/invoices/build.gradle.kts +++ b/feature/invoices/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.invoices" } -dependencies { - implementation(projects.core.data) -} \ No newline at end of file +dependencies {} \ No newline at end of file diff --git a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt index 80285cd11..5abca0b6d 100644 --- a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt +++ b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailScreen.kt @@ -35,10 +35,10 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.entity.Invoice import com.mifospay.core.model.utils.DateHelper +import org.koin.androidx.compose.koinViewModel import org.mifospay.common.Constants import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel import org.mifospay.core.designsystem.component.MifosScaffold @@ -51,7 +51,7 @@ internal fun InvoiceDetailScreen( onBackPress: () -> Unit, navigateToReceiptScreen: (String) -> Unit, modifier: Modifier = Modifier, - viewModel: InvoiceDetailViewModel = hiltViewModel(), + viewModel: InvoiceDetailViewModel = koinViewModel(), ) { val invoiceDetailUiState by viewModel.invoiceDetailUiState.collectAsStateWithLifecycle() diff --git a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailViewModel.kt b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailViewModel.kt index baa548f54..d96d64928 100644 --- a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailViewModel.kt +++ b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceDetailViewModel.kt @@ -13,7 +13,6 @@ import android.net.Uri import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.mifospay.core.model.entity.Invoice -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCase @@ -21,10 +20,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.invoice.FetchInvoice import org.mifospay.core.datastore.PreferencesHelper import org.mifospay.feature.invoices.navigation.INVOICE_DATA_ARG -import javax.inject.Inject -@HiltViewModel -class InvoiceDetailViewModel @Inject constructor( +class InvoiceDetailViewModel( private val mUseCaseHandler: UseCaseHandler, private val mPreferencesHelper: PreferencesHelper, private val fetchInvoiceUseCase: FetchInvoice, diff --git a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceScreen.kt b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceScreen.kt index f2e6a32f3..6768fe3b5 100644 --- a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceScreen.kt +++ b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoiceScreen.kt @@ -23,9 +23,9 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.entity.Invoice +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MifosLoadingWheel import org.mifospay.core.designsystem.icon.MifosIcons.Info import org.mifospay.core.designsystem.theme.MifosTheme @@ -36,7 +36,7 @@ import org.mifospay.invoices.R fun InvoiceScreenRoute( navigateToInvoiceDetailScreen: (Uri) -> Unit, modifier: Modifier = Modifier, - viewModel: InvoicesViewModel = hiltViewModel(), + viewModel: InvoicesViewModel = koinViewModel(), ) { val invoiceUiState by viewModel.invoiceUiState.collectAsStateWithLifecycle() InvoiceScreen( diff --git a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoicesViewModel.kt b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoicesViewModel.kt index 6457b089d..5ef00c24c 100644 --- a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoicesViewModel.kt +++ b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/InvoicesViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.invoices import android.net.Uri import androidx.lifecycle.ViewModel import com.mifospay.core.model.entity.Invoice -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.common.Constants.INVOICE_DOMAIN @@ -20,10 +19,8 @@ import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.invoice.FetchInvoices import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -@HiltViewModel -class InvoicesViewModel @Inject constructor( +class InvoicesViewModel( private val mUseCaseHandler: UseCaseHandler, private val mPreferencesHelper: PreferencesHelper, private val fetchInvoicesUseCase: FetchInvoices, diff --git a/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/di/InvoicesModule.kt b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/di/InvoicesModule.kt new file mode 100644 index 000000000..20543b49e --- /dev/null +++ b/feature/invoices/src/main/kotlin/org/mifospay/feature/invoices/di/InvoicesModule.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.invoices.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.invoices.InvoiceDetailViewModel +import org.mifospay.feature.invoices.InvoicesViewModel + +val InvoicesModule = module { + + viewModel { + InvoiceDetailViewModel( + mUseCaseHandler = get(), + mPreferencesHelper = get(), + fetchInvoiceUseCase = get(), + savedStateHandle = get(), + ) + } + + viewModel { + InvoicesViewModel( + mUseCaseHandler = get(), + mPreferencesHelper = get(), + fetchInvoicesUseCase = get(), + ) + } +} diff --git a/feature/kyc/build.gradle.kts b/feature/kyc/build.gradle.kts index c57fe120b..d855b9d50 100644 --- a/feature/kyc/build.gradle.kts +++ b/feature/kyc/build.gradle.kts @@ -17,8 +17,6 @@ android { } dependencies { - implementation(projects.core.data) - implementation(projects.libs.countryCodePicker) implementation(projects.libs.pullrefresh) diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionScreen.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionScreen.kt index da040068b..b8d30baad 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionScreen.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionScreen.kt @@ -41,12 +41,12 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifos.library.pullrefresh.PullRefreshIndicator import com.mifos.library.pullrefresh.pullRefresh import com.mifos.library.pullrefresh.rememberPullRefreshState import com.mifospay.core.model.entity.kyc.KYCLevel1Details +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosOverlayLoadingWheel import org.mifospay.core.designsystem.icon.MifosIcons @@ -59,7 +59,7 @@ fun KYCScreen( onLevel2Clicked: () -> Unit, onLevel3Clicked: () -> Unit, modifier: Modifier = Modifier, - viewModel: KYCDescriptionViewModel = hiltViewModel(), + viewModel: KYCDescriptionViewModel = koinViewModel(), ) { val kUiState by viewModel.kycDescriptionState.collectAsState() val isRefreshing by viewModel.isRefreshing.collectAsStateWithLifecycle() diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionViewModel.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionViewModel.kt index c20a7776b..a2f9fd98b 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionViewModel.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCDescriptionViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.kyc import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mifospay.core.model.entity.kyc.KYCLevel1Details -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -23,10 +22,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.kyc.FetchKYCLevel1Details import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.feature.kyc.KYCDescriptionUiState.Loading -import javax.inject.Inject -@HiltViewModel -class KYCDescriptionViewModel @Inject constructor( +class KYCDescriptionViewModel( private val mUseCaseHandler: UseCaseHandler, private val mLocalRepository: LocalRepository, private val fetchKYCLevel1DetailsUseCase: FetchKYCLevel1Details, diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1Screen.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1Screen.kt index 501f40cec..e56cf5a68 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1Screen.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1Screen.kt @@ -38,7 +38,6 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.maxkeppeker.sheets.core.models.base.rememberUseCaseState import com.maxkeppeler.sheets.calendar.CalendarDialog @@ -46,6 +45,7 @@ import com.maxkeppeler.sheets.calendar.models.CalendarConfig import com.maxkeppeler.sheets.calendar.models.CalendarSelection import com.maxkeppeler.sheets.calendar.models.CalendarStyle import com.mifos.library.countrycodepicker.CountryCodePicker +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosOutlinedTextField @@ -57,7 +57,7 @@ import java.time.format.DateTimeFormatter internal fun KYCLevel1Screen( navigateToKycLevel2: () -> Unit, modifier: Modifier = Modifier, - viewModel: KYCLevel1ViewModel = hiltViewModel(), + viewModel: KYCLevel1ViewModel = koinViewModel(), ) { val kyc1uiState by viewModel.kyc1uiState.collectAsStateWithLifecycle() diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1ViewModel.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1ViewModel.kt index 1733a968a..3e7f282d1 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1ViewModel.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel1ViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.kyc import androidx.lifecycle.ViewModel import com.mifospay.core.model.entity.kyc.KYCLevel1Details -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCase @@ -19,10 +18,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.kyc.UploadKYCLevel1Details import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.feature.kyc.KYCLevel1UiState.Loading -import javax.inject.Inject -@HiltViewModel -class KYCLevel1ViewModel @Inject constructor( +class KYCLevel1ViewModel( private val mUseCaseHandler: UseCaseHandler, private val mLocalRepository: LocalRepository, private val uploadKYCLevel1DetailsUseCase: UploadKYCLevel1Details, diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2Screen.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2Screen.kt index 42363e4ee..35d9bb24a 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2Screen.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2Screen.kt @@ -50,12 +50,12 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.app.ActivityCompat.shouldShowRequestPermissionRationale import androidx.core.content.ContextCompat -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle import kotlinx.coroutines.launch +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosOutlinedTextField @@ -66,7 +66,7 @@ import org.mifospay.kyc.R internal fun KYCLevel2Screen( onSuccessKyc2: () -> Unit, modifier: Modifier = Modifier, - viewModel: KYCLevel2ViewModel = hiltViewModel(), + viewModel: KYCLevel2ViewModel = koinViewModel(), ) { val kyc2uiState by viewModel.kyc2uiState.collectAsStateWithLifecycle() diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2ViewModel.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2ViewModel.kt index 04fba616d..185589b27 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2ViewModel.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel2ViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.kyc import android.net.Uri import androidx.lifecycle.ViewModel -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import okhttp3.MediaType.Companion.toMediaTypeOrNull @@ -24,10 +23,8 @@ import org.mifospay.core.data.domain.usecase.kyc.UploadKYCDocs import org.mifospay.core.datastore.PreferencesHelper import org.mifospay.feature.kyc.KYCLevel2UiState.Loading import java.io.File -import javax.inject.Inject -@HiltViewModel -class KYCLevel2ViewModel @Inject constructor( +class KYCLevel2ViewModel( private val mUseCaseHandler: UseCaseHandler, private val preferencesHelper: PreferencesHelper, private val uploadKYCDocsUseCase: UploadKYCDocs, diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3Screen.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3Screen.kt index 929282dcd..0f37d7b17 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3Screen.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3Screen.kt @@ -25,8 +25,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosOutlinedTextField @@ -36,7 +36,7 @@ import org.mifospay.kyc.R @Composable internal fun KYCLevel3Screen( modifier: Modifier = Modifier, - viewModel: KYCLevel3ViewModel = hiltViewModel(), + viewModel: KYCLevel3ViewModel = koinViewModel(), ) { val kyc3uiState by viewModel.kyc3uiState.collectAsStateWithLifecycle() diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3ViewModel.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3ViewModel.kt index 73ed5e5a6..bddd96f58 100644 --- a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3ViewModel.kt +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/KYCLevel3ViewModel.kt @@ -10,17 +10,14 @@ package org.mifospay.feature.kyc import androidx.lifecycle.ViewModel -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.feature.kyc.KYCLevel3UiState.Loading -import javax.inject.Inject -@HiltViewModel @Suppress("UnusedPrivateProperty") -class KYCLevel3ViewModel @Inject constructor( +class KYCLevel3ViewModel( private val mUseCaseHandler: UseCaseHandler, private val mLocalRepository: LocalRepository, ) : ViewModel() { diff --git a/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/di/KYCModule.kt b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/di/KYCModule.kt new file mode 100644 index 000000000..ba1a6d1aa --- /dev/null +++ b/feature/kyc/src/main/kotlin/org/mifospay/feature/kyc/di/KYCModule.kt @@ -0,0 +1,50 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.kyc.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.kyc.KYCDescriptionViewModel +import org.mifospay.feature.kyc.KYCLevel1ViewModel +import org.mifospay.feature.kyc.KYCLevel2ViewModel +import org.mifospay.feature.kyc.KYCLevel3ViewModel + +val KYCModule = module { + viewModel { + KYCDescriptionViewModel( + mUseCaseHandler = get(), + mLocalRepository = get(), + fetchKYCLevel1DetailsUseCase = get(), + ) + } + + viewModel { + KYCLevel1ViewModel( + mUseCaseHandler = get(), + mLocalRepository = get(), + uploadKYCLevel1DetailsUseCase = get(), + ) + } + + viewModel { + KYCLevel2ViewModel( + mUseCaseHandler = get(), + preferencesHelper = get(), + uploadKYCDocsUseCase = get(), + ) + } + + viewModel { + KYCLevel3ViewModel( + mUseCaseHandler = get(), + mLocalRepository = get(), + ) + } +} diff --git a/feature/make-transfer/build.gradle.kts b/feature/make-transfer/build.gradle.kts index 4d74d5926..9b2e16cf6 100644 --- a/feature/make-transfer/build.gradle.kts +++ b/feature/make-transfer/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.feature.make.transfer" } -dependencies { - implementation(projects.core.data) -} +dependencies { } diff --git a/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt index 6b56baf7e..4a6bf03cd 100644 --- a/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt +++ b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferScreen.kt @@ -41,8 +41,8 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.common.Constants import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosLoadingWheel @@ -51,7 +51,7 @@ import org.mifospay.core.designsystem.component.MifosLoadingWheel internal fun MakeTransferScreenRoute( onDismiss: () -> Unit, modifier: Modifier = Modifier, - viewModel: MakeTransferViewModel = hiltViewModel(), + viewModel: MakeTransferViewModel = koinViewModel(), ) { // TODO: commented out because not using it // val fetchPayeeClient by viewModel.fetchPayeeClient.collectAsStateWithLifecycle() diff --git a/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferViewModel.kt b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferViewModel.kt index a4bbda333..1a1ed3df1 100644 --- a/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferViewModel.kt +++ b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/MakeTransferViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.make.transfer import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -27,10 +26,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.TransferFunds import org.mifospay.core.data.domain.usecase.client.SearchClient import org.mifospay.core.data.repository.local.LocalRepository -import javax.inject.Inject -@HiltViewModel -class MakeTransferViewModel @Inject constructor( +class MakeTransferViewModel( savedStateHandle: SavedStateHandle, private val useCaseHandler: UseCaseHandler, private val searchClientUseCase: SearchClient, diff --git a/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/di/MakeTransferModule.kt b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/di/MakeTransferModule.kt new file mode 100644 index 000000000..226f61da0 --- /dev/null +++ b/feature/make-transfer/src/main/kotlin/org/mifospay/feature/make/transfer/di/MakeTransferModule.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.make.transfer.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.make.transfer.MakeTransferViewModel + +val MakeTransferModule = module { + viewModel { + MakeTransferViewModel( + savedStateHandle = get(), + useCaseHandler = get(), + searchClientUseCase = get(), + transferFundsUseCase = get(), + localRepository = get(), + ) + } +} diff --git a/feature/merchants/build.gradle.kts b/feature/merchants/build.gradle.kts index 01c04256a..3519fb03a 100644 --- a/feature/merchants/build.gradle.kts +++ b/feature/merchants/build.gradle.kts @@ -17,6 +17,5 @@ android { } dependencies { - implementation(projects.core.data) implementation(projects.libs.pullrefresh) } \ No newline at end of file diff --git a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantTransferViewModel.kt b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantTransferViewModel.kt index 679505298..8141528ca 100644 --- a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantTransferViewModel.kt +++ b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantTransferViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.merchants import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.Transaction -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -31,10 +30,8 @@ import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.core.data.util.Constants.FETCH_ACCOUNT_TRANSFER_USECASE import org.mifospay.core.datastore.PreferencesHelper import org.mifospay.feature.merchants.MerchantTransferUiState.Loading -import javax.inject.Inject -@HiltViewModel -class MerchantTransferViewModel @Inject constructor( +class MerchantTransferViewModel( private val mUseCaseHandler: UseCaseHandler, private val localRepository: LocalRepository, private val preferencesHelper: PreferencesHelper, diff --git a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantViewModel.kt b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantViewModel.kt index 603d72b56..19180991c 100644 --- a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantViewModel.kt +++ b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/MerchantViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.merchants import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mifospay.core.model.entity.accounts.savings.SavingsWithAssociations -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -28,17 +27,14 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.FetchMerchants import org.mifospay.core.data.domain.usecase.client.FetchClientDetails import org.mifospay.core.data.util.Constants -import javax.inject.Inject -@HiltViewModel -class MerchantViewModel @Inject constructor( +class MerchantViewModel( private val mUseCaseHandler: UseCaseHandler, private val mFetchMerchantsUseCase: FetchMerchants, private val mUseCaseFactory: UseCaseFactory, -) : ViewModel() { + private val mTaskLooper: TaskLooper, - @Inject - lateinit var mTaskLooper: TaskLooper +) : ViewModel() { private val _searchQuery = MutableStateFlow("") private val searchQuery: StateFlow = _searchQuery.asStateFlow() diff --git a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/di/MerchantsModule.kt b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/di/MerchantsModule.kt new file mode 100644 index 000000000..00cc5d8d8 --- /dev/null +++ b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/di/MerchantsModule.kt @@ -0,0 +1,38 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.merchants.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.merchants.MerchantTransferViewModel +import org.mifospay.feature.merchants.MerchantViewModel + +val MerchantsModule = module { + viewModel { + MerchantViewModel( + mUseCaseHandler = get(), + mFetchMerchantsUseCase = get(), + mUseCaseFactory = get(), + mTaskLooper = get(), + ) + } + viewModel { + MerchantTransferViewModel( + mUseCaseHandler = get(), + localRepository = get(), + preferencesHelper = get(), + transactionsHistory = get(), + mUseCaseFactory = get(), + mFetchAccount = get(), + mTaskLooper = get(), + savedStateHandle = get(), + ) + } +} diff --git a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantScreen.kt b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantScreen.kt index 665f15394..c1a62dd24 100644 --- a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantScreen.kt +++ b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantScreen.kt @@ -35,13 +35,13 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.compose.rememberNavController import com.mifos.library.pullrefresh.PullRefreshIndicator import com.mifos.library.pullrefresh.pullRefresh import com.mifos.library.pullrefresh.rememberPullRefreshState import com.mifospay.core.model.entity.accounts.savings.SavingsWithAssociations +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.icon.MifosIcons import org.mifospay.core.designsystem.theme.MifosTheme @@ -54,7 +54,7 @@ import org.mifospay.feature.merchants.navigation.navigateToMerchantTransferScree @Composable fun MerchantScreen( modifier: Modifier = Modifier, - viewModel: MerchantViewModel = hiltViewModel(), + viewModel: MerchantViewModel = koinViewModel(), ) { val merchantUiState by viewModel.merchantUiState.collectAsStateWithLifecycle() val merchantsListUiState by viewModel.merchantsListUiState.collectAsStateWithLifecycle() diff --git a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantTransferScreen.kt b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantTransferScreen.kt index 8b54f0bbe..077f64682 100644 --- a/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantTransferScreen.kt +++ b/feature/merchants/src/main/kotlin/org/mifospay/feature/merchants/ui/MerchantTransferScreen.kt @@ -50,12 +50,12 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.domain.Transaction import com.mifospay.core.model.domain.TransactionType import com.mifospay.core.model.domain.client.Client import com.mifospay.core.model.entity.accounts.savings.SavingAccount +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MfOutlinedTextField import org.mifospay.core.designsystem.component.MifosBottomSheet @@ -78,7 +78,7 @@ internal fun MerchantTransferScreenRoute( onBackPressed: () -> Unit, proceedWithMakeTransferFlow: (String, String) -> Unit, modifier: Modifier = Modifier, - viewModel: MerchantTransferViewModel = hiltViewModel(), + viewModel: MerchantTransferViewModel = koinViewModel(), ) { val uiState by viewModel.uiState.collectAsStateWithLifecycle() val merchantName by viewModel.merchantName.collectAsStateWithLifecycle() diff --git a/feature/notification/build.gradle.kts b/feature/notification/build.gradle.kts index 17f96e99b..43e9782c5 100644 --- a/feature/notification/build.gradle.kts +++ b/feature/notification/build.gradle.kts @@ -17,6 +17,5 @@ android { } dependencies { - implementation(projects.core.data) implementation(projects.libs.pullrefresh) } \ No newline at end of file diff --git a/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationScreen.kt b/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationScreen.kt index c0f308480..925a7aa28 100644 --- a/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationScreen.kt +++ b/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationScreen.kt @@ -32,12 +32,12 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifos.library.pullrefresh.PullRefreshIndicator import com.mifos.library.pullrefresh.pullRefresh import com.mifos.library.pullrefresh.rememberPullRefreshState import com.mifospay.core.model.domain.NotificationPayload +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MifosTopAppBar import org.mifospay.core.designsystem.icon.MifosIcons @@ -48,7 +48,7 @@ import org.mifospay.notification.R @Composable fun NotificationScreen( modifier: Modifier = Modifier, - viewmodel: NotificationViewModel = hiltViewModel(), + viewmodel: NotificationViewModel = koinViewModel(), ) { val uiState by viewmodel.notificationUiState.collectAsStateWithLifecycle() val isRefreshing by viewmodel.isRefreshing.collectAsStateWithLifecycle() diff --git a/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationViewModel.kt b/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationViewModel.kt index b3e2314ab..4298f8dd6 100644 --- a/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationViewModel.kt +++ b/feature/notification/src/main/kotlin/org/mifospay/feature/notification/NotificationViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.notification import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mifospay.core.model.domain.NotificationPayload -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -22,10 +21,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.notification.FetchNotifications import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.feature.notification.NotificationUiState.Loading -import javax.inject.Inject -@HiltViewModel -class NotificationViewModel @Inject constructor( +class NotificationViewModel( private val mUseCaseHandler: UseCaseHandler, private val mLocalRepository: LocalRepository, private val fetchNotificationsUseCase: FetchNotifications, diff --git a/feature/notification/src/main/kotlin/org/mifospay/feature/notification/di/NotificationModule.kt b/feature/notification/src/main/kotlin/org/mifospay/feature/notification/di/NotificationModule.kt new file mode 100644 index 000000000..5c8217d6a --- /dev/null +++ b/feature/notification/src/main/kotlin/org/mifospay/feature/notification/di/NotificationModule.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.notification.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.notification.NotificationViewModel + +val NotificationModule = module { + viewModel { + NotificationViewModel( + mUseCaseHandler = get(), + mLocalRepository = get(), + fetchNotificationsUseCase = get(), + ) + } +} diff --git a/feature/payments/build.gradle.kts b/feature/payments/build.gradle.kts index 4ddfcbdc2..ae1b679f8 100644 --- a/feature/payments/build.gradle.kts +++ b/feature/payments/build.gradle.kts @@ -17,6 +17,5 @@ android { } dependencies { - implementation(projects.core.data) implementation(libs.accompanist.pager) } \ No newline at end of file diff --git a/feature/payments/src/main/kotlin/org/mifospay/feature/payments/RequestScreen.kt b/feature/payments/src/main/kotlin/org/mifospay/feature/payments/RequestScreen.kt index 49fa8f9e6..222a24c3c 100644 --- a/feature/payments/src/main/kotlin/org/mifospay/feature/payments/RequestScreen.kt +++ b/feature/payments/src/main/kotlin/org/mifospay/feature/payments/RequestScreen.kt @@ -27,7 +27,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.icon.MifosIcons import org.mifospay.core.designsystem.theme.MifosTheme @@ -35,7 +35,7 @@ import org.mifospay.core.designsystem.theme.MifosTheme fun RequestScreen( showQr: (String) -> Unit, modifier: Modifier = Modifier, - viewModel: TransferViewModel = hiltViewModel(), + viewModel: TransferViewModel = koinViewModel(), ) { val vpa by viewModel.vpa.collectAsState() val mobile by viewModel.mobile.collectAsState() diff --git a/feature/payments/src/main/kotlin/org/mifospay/feature/payments/TransferViewModel.kt b/feature/payments/src/main/kotlin/org/mifospay/feature/payments/TransferViewModel.kt index 3502effe9..4fb2fb8e0 100644 --- a/feature/payments/src/main/kotlin/org/mifospay/feature/payments/TransferViewModel.kt +++ b/feature/payments/src/main/kotlin/org/mifospay/feature/payments/TransferViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.payments import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @@ -19,10 +18,8 @@ import org.mifospay.core.data.base.UseCase.UseCaseCallback import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.FetchAccount import org.mifospay.core.data.repository.local.LocalRepository -import javax.inject.Inject -@HiltViewModel -class TransferViewModel @Inject constructor( +class TransferViewModel( val mUsecaseHandler: UseCaseHandler, val localRepository: LocalRepository, val mFetchAccount: FetchAccount, diff --git a/feature/payments/src/main/kotlin/org/mifospay/feature/payments/di/PaymentsModule.kt b/feature/payments/src/main/kotlin/org/mifospay/feature/payments/di/PaymentsModule.kt new file mode 100644 index 000000000..0abf8b38f --- /dev/null +++ b/feature/payments/src/main/kotlin/org/mifospay/feature/payments/di/PaymentsModule.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.payments.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.payments.TransferViewModel + +val PaymentsModule = module { + viewModel { + TransferViewModel( + mUsecaseHandler = get(), + localRepository = get(), + mFetchAccount = get(), + ) + } +} diff --git a/feature/profile/build.gradle.kts b/feature/profile/build.gradle.kts index 94a9b9509..637ee6226 100644 --- a/feature/profile/build.gradle.kts +++ b/feature/profile/build.gradle.kts @@ -7,7 +7,6 @@ * * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ -import com.android.build.gradle.internal.tasks.ApplicationIdWriterTask plugins { alias(libs.plugins.mifospay.android.feature) @@ -22,8 +21,7 @@ android { } dependencies { - implementation(projects.core.data) implementation(projects.libs.countryCodePicker) - + implementation(libs.squareup.okhttp) implementation(libs.coil.kt.compose) } \ No newline at end of file diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt index 52a10b100..e33399b72 100644 --- a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileScreen.kt @@ -38,8 +38,8 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.icon.MifosIcons import org.mifospay.core.ui.ProfileImage @@ -49,7 +49,7 @@ fun ProfileRoute( onEditProfile: () -> Unit, onSettings: () -> Unit, modifier: Modifier = Modifier, - viewModel: ProfileViewModel = hiltViewModel(), + viewModel: ProfileViewModel = koinViewModel(), ) { val profileState by viewModel.profileState.collectAsStateWithLifecycle() diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileViewModel.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileViewModel.kt index e008b1f2b..dd6d71855 100644 --- a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileViewModel.kt +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/ProfileViewModel.kt @@ -13,7 +13,6 @@ import android.graphics.Bitmap import android.graphics.BitmapFactory import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @@ -24,10 +23,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.client.FetchClientImage import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.core.datastore.PreferencesHelper -import javax.inject.Inject -@HiltViewModel -class ProfileViewModel @Inject constructor( +class ProfileViewModel( private val mUseCaseHandler: UseCaseHandler, private val fetchClientImageUseCase: FetchClientImage, private val localRepository: LocalRepository, diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/di/ProfileModule.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/di/ProfileModule.kt new file mode 100644 index 000000000..c93e8ab9d --- /dev/null +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/di/ProfileModule.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.profile.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.profile.ProfileViewModel +import org.mifospay.feature.profile.edit.EditProfileViewModel + +val ProfileModule = module { + viewModel { + ProfileViewModel( + mUseCaseHandler = get(), + fetchClientImageUseCase = get(), + localRepository = get(), + mPreferencesHelper = get(), + ) + } + + viewModel { + EditProfileViewModel( + mUseCaseHandler = get(), + mPreferencesHelper = get(), + updateUserUseCase = get(), + updateClientUseCase = get(), + ) + } +} diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt index dfa8d1f6a..cefd425eb 100644 --- a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileScreen.kt @@ -51,9 +51,9 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifos.library.countrycodepicker.CountryCodePicker +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MfOutlinedTextField import org.mifospay.core.designsystem.component.MifosBottomSheet @@ -78,7 +78,7 @@ fun EditProfileScreenRoute( onBackClick: () -> Unit, getUri: (context: Context, file: File) -> Uri, modifier: Modifier = Modifier, - viewModel: EditProfileViewModel = hiltViewModel(), + viewModel: EditProfileViewModel = koinViewModel(), ) { val editProfileUiState by viewModel.editProfileUiState.collectAsStateWithLifecycle() val updateSuccess by viewModel.updateSuccess.collectAsStateWithLifecycle() diff --git a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileViewModel.kt b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileViewModel.kt index 4cbe2636b..2e2cac8e1 100644 --- a/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileViewModel.kt +++ b/feature/profile/src/main/kotlin/org/mifospay/feature/profile/edit/EditProfileViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.profile.edit import android.graphics.Bitmap import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.user.UpdateUserEntityEmail -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCase @@ -21,10 +20,8 @@ import org.mifospay.core.data.domain.usecase.client.UpdateClient import org.mifospay.core.data.domain.usecase.user.UpdateUser import org.mifospay.core.datastore.PreferencesHelper import org.mifospay.feature.profile.edit.EditProfileUiState.Loading -import javax.inject.Inject -@HiltViewModel -class EditProfileViewModel @Inject constructor( +class EditProfileViewModel( private val mUseCaseHandler: UseCaseHandler, private val mPreferencesHelper: PreferencesHelper, private val updateUserUseCase: UpdateUser, diff --git a/feature/qr/build.gradle.kts b/feature/qr/build.gradle.kts index b85da1fe1..0741a395f 100644 --- a/feature/qr/build.gradle.kts +++ b/feature/qr/build.gradle.kts @@ -18,7 +18,6 @@ android { dependencies { implementation(libs.zxing) - implementation(projects.core.data) implementation(libs.androidx.camera.view) implementation(libs.androidx.camera.lifecycle) // TODO:: this should be removed diff --git a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrScreen.kt b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrScreen.kt index f2def8a20..4b463cd2c 100644 --- a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrScreen.kt +++ b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrScreen.kt @@ -50,9 +50,9 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.content.ContextCompat -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MifosScaffold import org.mifospay.core.designsystem.component.PermissionBox @@ -66,7 +66,7 @@ import org.mifospay.feature.read.qr.utils.QrCodeAnalyzer internal fun ShowQrScreenRoute( backPress: () -> Unit, modifier: Modifier = Modifier, - viewModel: ReadQrViewModel = hiltViewModel(), + viewModel: ReadQrViewModel = koinViewModel(), ) { val uiState = viewModel.readQrUiState.collectAsStateWithLifecycle() diff --git a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrViewModel.kt b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrViewModel.kt index a3bb2b417..b213b9ffb 100644 --- a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrViewModel.kt +++ b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/ReadQrViewModel.kt @@ -11,17 +11,14 @@ package org.mifospay.feature.read.qr import android.graphics.Bitmap import androidx.lifecycle.ViewModel -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.feature.read.qr.utils.ScanQr -import javax.inject.Inject -@HiltViewModel -class ReadQrViewModel @Inject constructor( +class ReadQrViewModel( private val useCaseHandler: UseCaseHandler, private val scanQrUseCase: ScanQr, ) : ViewModel() { diff --git a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/di/QrModule.kt b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/di/QrModule.kt new file mode 100644 index 000000000..db7face32 --- /dev/null +++ b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/di/QrModule.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.read.qr.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.read.qr.ReadQrViewModel +import org.mifospay.feature.read.qr.utils.ScanQr + +val QrModule = module { + single { + ScanQr() + } + viewModel { + ReadQrViewModel(useCaseHandler = get(), scanQrUseCase = get()) + } +} diff --git a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/ScanQr.kt b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/ScanQr.kt index cec0225e7..82e849658 100644 --- a/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/ScanQr.kt +++ b/feature/qr/src/main/kotlin/org/mifospay/feature/read/qr/utils/ScanQr.kt @@ -16,9 +16,8 @@ import com.google.zxing.Result import com.google.zxing.common.HybridBinarizer import com.google.zxing.qrcode.QRCodeReader import org.mifospay.core.data.base.UseCase -import javax.inject.Inject -class ScanQr @Inject constructor() : UseCase() { +class ScanQr : UseCase() { override fun executeUseCase(requestValues: RequestValues) { val bitmap = requestValues.bitmap diff --git a/feature/receipt/build.gradle.kts b/feature/receipt/build.gradle.kts index 87bf360b3..943600377 100644 --- a/feature/receipt/build.gradle.kts +++ b/feature/receipt/build.gradle.kts @@ -19,5 +19,4 @@ android { dependencies { // TODO:: this should be removed implementation(libs.squareup.okhttp) - implementation(projects.core.data) } \ No newline at end of file diff --git a/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt index 7da744baf..16c18febd 100644 --- a/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt +++ b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptScreen.kt @@ -55,11 +55,11 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.content.FileProvider -import androidx.hilt.navigation.compose.hiltViewModel import com.mifospay.core.model.domain.Transaction import com.mifospay.core.model.domain.TransactionType import com.mifospay.core.model.entity.accounts.savings.TransferDetail import kotlinx.coroutines.launch +import org.koin.androidx.compose.koinViewModel import org.mifospay.common.Constants import org.mifospay.core.designsystem.component.FloatingActionButtonContent import org.mifospay.core.designsystem.component.MifosOverlayLoadingWheel @@ -76,10 +76,10 @@ internal fun ReceiptScreenRoute( openPassCodeActivity: () -> Unit, onBackClick: () -> Unit, modifier: Modifier = Modifier, - viewModel: ReceiptViewModel = hiltViewModel(), + viewModel: ReceiptViewModel = koinViewModel(), ) { /** - * This function serves as the main entry point for the Receipt screen UI. + * This function serves as the androidMain entry point for the Receipt screen UI. * It collects the receiptUiState and fileState from the ViewModel and * calls the ReceiptScreen function, passing the collected states and * other necessary parameters. diff --git a/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptViewModel.kt b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptViewModel.kt index dc47e87c7..6769ac271 100644 --- a/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptViewModel.kt +++ b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/ReceiptViewModel.kt @@ -15,7 +15,6 @@ import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.Transaction import com.mifospay.core.model.entity.accounts.savings.TransferDetail -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -29,10 +28,8 @@ import org.mifospay.core.data.domain.usecase.account.FetchAccountTransaction import org.mifospay.core.data.domain.usecase.account.FetchAccountTransfer import org.mifospay.core.datastore.PreferencesHelper import java.io.File -import javax.inject.Inject -@HiltViewModel -class ReceiptViewModel @Inject constructor( +class ReceiptViewModel( private val mUseCaseHandler: UseCaseHandler, private val preferencesHelper: PreferencesHelper, private val downloadTransactionReceiptUseCase: DownloadTransactionReceipt, diff --git a/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/di/ReceiptModule.kt b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/di/ReceiptModule.kt new file mode 100644 index 000000000..a59f7cd29 --- /dev/null +++ b/feature/receipt/src/main/kotlin/org/mifospay/feature/receipt/di/ReceiptModule.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.receipt.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.receipt.ReceiptViewModel + +val ReceiptModule = module { + viewModel { + ReceiptViewModel( + mUseCaseHandler = get(), + preferencesHelper = get(), + downloadTransactionReceiptUseCase = get(), + fetchAccountTransactionUseCase = get(), + fetchAccountTransferUseCase = get(), + savedStateHandle = get(), + ) + } +} diff --git a/feature/request-money/build.gradle.kts b/feature/request-money/build.gradle.kts index 61c223c41..e9ae4a1ba 100644 --- a/feature/request-money/build.gradle.kts +++ b/feature/request-money/build.gradle.kts @@ -20,8 +20,6 @@ android { } dependencies { - implementation(projects.core.data) - implementation(libs.zxing) implementation(libs.coil.kt.compose) } \ No newline at end of file diff --git a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt index ede2d6770..30457707a 100644 --- a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt +++ b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/GenerateQr.kt @@ -17,12 +17,11 @@ import com.google.zxing.common.BitMatrix import org.mifospay.common.Constants import org.mifospay.core.data.base.UseCase import java.util.Base64 -import javax.inject.Inject /** * Created by naman on 8/7/17. */ -class GenerateQr @Inject constructor() : +class GenerateQr : UseCase() { override fun executeUseCase(requestValues: RequestValues) { try { diff --git a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrScreenRoute.kt b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrScreenRoute.kt index 2d1fa677c..4c539cfcc 100644 --- a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrScreenRoute.kt +++ b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrScreenRoute.kt @@ -35,8 +35,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.core.content.ContextCompat.startActivity -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MifosScaffold import org.mifospay.core.designsystem.icon.MifosIcons @@ -47,7 +47,7 @@ import org.mifospay.feature.request.money.util.ImageUtils internal fun ShowQrScreenRoute( backPress: () -> Unit, modifier: Modifier = Modifier, - viewModel: ShowQrViewModel = hiltViewModel(), + viewModel: ShowQrViewModel = koinViewModel(), ) { val uiState by viewModel.showQrUiState.collectAsStateWithLifecycle() val vpaId by viewModel.vpaId.collectAsStateWithLifecycle() diff --git a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrViewModel.kt b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrViewModel.kt index aae190a48..484002812 100644 --- a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrViewModel.kt +++ b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/ShowQrViewModel.kt @@ -12,16 +12,13 @@ package org.mifospay.feature.request.money import android.graphics.Bitmap import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.datastore.PreferencesHelper import org.mifospay.feature.request.money.ShowQrUiState.Loading -import javax.inject.Inject -@HiltViewModel -class ShowQrViewModel @Inject constructor( +class ShowQrViewModel( private val mUseCaseHandler: UseCaseHandler, private val generateQrUseCase: GenerateQr, private val mPreferencesHelper: PreferencesHelper, diff --git a/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/di/RequestMoneyModule.kt b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/di/RequestMoneyModule.kt new file mode 100644 index 000000000..fe0f86e83 --- /dev/null +++ b/feature/request-money/src/main/kotlin/org/mifospay/feature/request/money/di/RequestMoneyModule.kt @@ -0,0 +1,30 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.request.money.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.request.money.GenerateQr +import org.mifospay.feature.request.money.ShowQrViewModel + +val RequestMoneyModule = module { + single { + GenerateQr() + } + + viewModel { + ShowQrViewModel( + mUseCaseHandler = get(), + generateQrUseCase = get(), + mPreferencesHelper = get(), + savedStateHandle = get(), + ) + } +} diff --git a/feature/savedcards/build.gradle.kts b/feature/savedcards/build.gradle.kts index 24ee46998..68361a5c3 100644 --- a/feature/savedcards/build.gradle.kts +++ b/feature/savedcards/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.savedcards" } -dependencies { - implementation(projects.core.data) -} \ No newline at end of file +dependencies {} \ No newline at end of file diff --git a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt index 31ed2be8c..7586e00e8 100644 --- a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt +++ b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreen.kt @@ -46,9 +46,9 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.entity.savedcards.Card +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.component.MifosDialogBox import org.mifospay.core.designsystem.icon.MifosIcons @@ -61,7 +61,7 @@ import org.mifospay.savedcards.R fun CardsScreen( onEditCard: (Card) -> Unit, modifier: Modifier = Modifier, - viewModel: CardsScreenViewModel = hiltViewModel(), + viewModel: CardsScreenViewModel = koinViewModel(), ) { val cardState by viewModel.cardState.collectAsStateWithLifecycle() val cardListUiState by viewModel.cardListUiState.collectAsStateWithLifecycle() diff --git a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreenViewModel.kt b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreenViewModel.kt index 12e57472a..be508e1d4 100644 --- a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreenViewModel.kt +++ b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/CardsScreenViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.savedcards import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mifospay.core.model.entity.savedcards.Card -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -27,10 +26,8 @@ import org.mifospay.core.data.domain.usecase.savedcards.DeleteCard import org.mifospay.core.data.domain.usecase.savedcards.EditCard import org.mifospay.core.data.domain.usecase.savedcards.FetchSavedCards import org.mifospay.core.data.repository.local.LocalRepository -import javax.inject.Inject -@HiltViewModel -class CardsScreenViewModel @Inject constructor( +class CardsScreenViewModel( private val mUseCaseHandler: UseCaseHandler, private val mLocalRepository: LocalRepository, private val addCardUseCase: AddCard, diff --git a/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/di/SavedCardsModule.kt b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/di/SavedCardsModule.kt new file mode 100644 index 000000000..bd8619570 --- /dev/null +++ b/feature/savedcards/src/main/kotlin/org/mifospay/feature/savedcards/di/SavedCardsModule.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.savedcards.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.savedcards.CardsScreenViewModel + +val SavedCardsModule = module { + viewModel { + CardsScreenViewModel( + mUseCaseHandler = get(), + mLocalRepository = get(), + addCardUseCase = get(), + fetchSavedCardsUseCase = get(), + editCardUseCase = get(), + deleteCardUseCase = get(), + ) + } +} diff --git a/feature/search/build.gradle.kts b/feature/search/build.gradle.kts index 12ab53902..2576ecd05 100644 --- a/feature/search/build.gradle.kts +++ b/feature/search/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.feature.search" } -dependencies { - implementation(projects.core.data) -} +dependencies { } diff --git a/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchScreen.kt b/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchScreen.kt index 3f3e0b011..1263fbac3 100644 --- a/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchScreen.kt +++ b/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchScreen.kt @@ -39,8 +39,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import com.mifospay.core.model.domain.SearchResult +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfLoadingWheel import org.mifospay.core.designsystem.icon.MifosIcons import org.mifospay.core.designsystem.theme.MifosTheme @@ -49,7 +49,7 @@ import org.mifospay.core.designsystem.theme.MifosTheme fun SearchScreenRoute( onBackClick: () -> Unit, modifier: Modifier = Modifier, - viewModel: SearchViewModel = hiltViewModel(), + viewModel: SearchViewModel = koinViewModel(), ) { val searchQuery by viewModel.searchQuery.collectAsState() val searchResultState by viewModel.searchResults.collectAsState() diff --git a/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchViewModel.kt b/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchViewModel.kt index d37913c8a..3f50176ef 100644 --- a/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchViewModel.kt +++ b/feature/search/src/main/kotlin/org/mifospay/feature/search/SearchViewModel.kt @@ -12,17 +12,14 @@ package org.mifospay.feature.search import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.SearchResult -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.client.SearchClient -import javax.inject.Inject -@HiltViewModel -class SearchViewModel @Inject constructor( +class SearchViewModel( private val mUseCaseHandler: UseCaseHandler, private val searchClient: SearchClient, private val savedStateHandle: SavedStateHandle, diff --git a/feature/search/src/main/kotlin/org/mifospay/feature/search/di/SearchModule.kt b/feature/search/src/main/kotlin/org/mifospay/feature/search/di/SearchModule.kt new file mode 100644 index 000000000..7db0651a3 --- /dev/null +++ b/feature/search/src/main/kotlin/org/mifospay/feature/search/di/SearchModule.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.search.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.search.SearchViewModel + +val SearchModule = module { + viewModel { + SearchViewModel( + mUseCaseHandler = get(), + searchClient = get(), + savedStateHandle = get(), + ) + } +} diff --git a/feature/send-money/build.gradle.kts b/feature/send-money/build.gradle.kts index 83461917a..4e5e691af 100644 --- a/feature/send-money/build.gradle.kts +++ b/feature/send-money/build.gradle.kts @@ -17,8 +17,6 @@ android { } dependencies { - implementation(projects.core.data) - // we need it for country picker library implementation(projects.libs.countryCodePicker) diff --git a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt index 94024573e..4e8cd7e62 100644 --- a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt +++ b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendPaymentViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.send.money import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update @@ -20,10 +19,8 @@ import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.FetchAccount import org.mifospay.core.data.repository.local.LocalRepository -import javax.inject.Inject -@HiltViewModel -class SendPaymentViewModel @Inject constructor( +class SendPaymentViewModel( private val useCaseHandler: UseCaseHandler, private val localRepository: LocalRepository, private val fetchAccount: FetchAccount, diff --git a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt index 954f4110d..4452bd258 100644 --- a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt +++ b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/SendScreenRoute.kt @@ -49,7 +49,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.google.mlkit.vision.barcode.common.Barcode import com.google.mlkit.vision.codescanner.GmsBarcodeScannerOptions @@ -57,6 +56,7 @@ import com.google.mlkit.vision.codescanner.GmsBarcodeScanning import com.mifos.library.countrycodepicker.CountryCodePicker import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MfOutlinedTextField import org.mifospay.core.designsystem.component.MfOverlayLoadingWheel import org.mifospay.core.designsystem.component.MifosButton @@ -71,7 +71,7 @@ fun SendScreenRoute( onBackClick: () -> Unit, proceedWithMakeTransferFlow: (String, String) -> Unit, modifier: Modifier = Modifier, - viewModel: SendPaymentViewModel = hiltViewModel(), + viewModel: SendPaymentViewModel = koinViewModel(), ) { val context = LocalContext.current val selfVpa by viewModel.vpa.collectAsStateWithLifecycle() diff --git a/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/di/SendMoneyModule.kt b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/di/SendMoneyModule.kt new file mode 100644 index 000000000..34e02030e --- /dev/null +++ b/feature/send-money/src/main/kotlin/org/mifospay/feature/send/money/di/SendMoneyModule.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.send.money.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.send.money.SendPaymentViewModel + +val SendMoneyModule = module { + viewModel { + SendPaymentViewModel( + useCaseHandler = get(), + localRepository = get(), + fetchAccount = get(), + ) + } +} diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts index 6933a49c2..0de327314 100644 --- a/feature/settings/build.gradle.kts +++ b/feature/settings/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.feature.settings" } -dependencies { - implementation(projects.core.data) -} \ No newline at end of file +dependencies {} \ No newline at end of file diff --git a/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsScreen.kt b/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsScreen.kt index 8d9b30bc6..42b487b8d 100644 --- a/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsScreen.kt +++ b/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsScreen.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.text.TextStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MifosCard import org.mifospay.core.designsystem.component.MifosTopBar import org.mifospay.core.ui.utility.DialogState @@ -44,7 +44,7 @@ fun SettingsScreenRoute( onLogout: () -> Unit, onChangePasscode: () -> Unit, modifier: Modifier = Modifier, - viewmodel: SettingsViewModel = hiltViewModel(), + viewmodel: SettingsViewModel = koinViewModel(), ) { var dialogState by remember { mutableStateOf(DialogState()) } val paddingValues = PaddingValues(start = 20.dp, end = 20.dp, top = 20.dp, bottom = 4.dp) @@ -196,6 +196,6 @@ private fun SettingsScreenPreview() { navigateToEditPasswordScreen = {}, onLogout = {}, onChangePasscode = {}, - viewmodel = hiltViewModel(), + viewmodel = koinViewModel(), ) } diff --git a/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsViewModel.kt b/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsViewModel.kt index fefafd297..2ab18b0bd 100644 --- a/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsViewModel.kt +++ b/feature/settings/src/main/kotlin/org/mifospay/feature/settings/SettingsViewModel.kt @@ -10,15 +10,12 @@ package org.mifospay.feature.settings import androidx.lifecycle.ViewModel -import dagger.hilt.android.lifecycle.HiltViewModel import org.mifospay.core.data.base.UseCase import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.account.BlockUnblockCommand import org.mifospay.core.data.repository.local.LocalRepository -import javax.inject.Inject -@HiltViewModel -class SettingsViewModel @Inject constructor( +class SettingsViewModel( private val mUseCaseHandler: UseCaseHandler, private val mLocalRepository: LocalRepository, private val blockUnblockCommandUseCase: BlockUnblockCommand, diff --git a/feature/settings/src/main/kotlin/org/mifospay/feature/settings/di/SettingsModule.kt b/feature/settings/src/main/kotlin/org/mifospay/feature/settings/di/SettingsModule.kt new file mode 100644 index 000000000..5b912b4bf --- /dev/null +++ b/feature/settings/src/main/kotlin/org/mifospay/feature/settings/di/SettingsModule.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.settings.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.settings.SettingsViewModel + +val SettingsModule = module { + viewModel { + SettingsViewModel( + mUseCaseHandler = get(), + mLocalRepository = get(), + blockUnblockCommandUseCase = get(), + ) + } +} diff --git a/feature/standing-instruction/build.gradle.kts b/feature/standing-instruction/build.gradle.kts index b0f12fdc7..8fac8140e 100644 --- a/feature/standing-instruction/build.gradle.kts +++ b/feature/standing-instruction/build.gradle.kts @@ -17,8 +17,6 @@ android { } dependencies { - implementation(projects.core.data) - // Google Bar code scanner implementation(libs.google.play.services.code.scanner) } \ No newline at end of file diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt index b27321f6b..6ade5bfc8 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIScreenRoute.kt @@ -46,11 +46,11 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.google.mlkit.vision.barcode.common.Barcode import com.google.mlkit.vision.codescanner.GmsBarcodeScannerOptions import com.google.mlkit.vision.codescanner.GmsBarcodeScanning +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MifosButton import org.mifospay.core.designsystem.component.MifosOutlinedTextField import org.mifospay.core.designsystem.component.MifosScaffold @@ -62,7 +62,7 @@ import java.util.Calendar internal fun NewSIScreenRoute( onBackPress: () -> Unit, modifier: Modifier = Modifier, - viewModel: NewSIViewModel = hiltViewModel(), + viewModel: NewSIViewModel = koinViewModel(), ) { val uiState by viewModel.newSIUiState.collectAsStateWithLifecycle() val updateSuccess by viewModel.updateSuccess.collectAsStateWithLifecycle() diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIViewModel.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIViewModel.kt index 4df994588..64afb8992 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIViewModel.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/NewSIViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.standing.instruction import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.SearchResult -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCase @@ -22,10 +21,8 @@ import org.mifospay.core.datastore.PreferencesHelper import java.text.SimpleDateFormat import java.util.Date import java.util.Locale -import javax.inject.Inject -@HiltViewModel -class NewSIViewModel @Inject constructor( +class NewSIViewModel( private val mUseCaseHandler: UseCaseHandler, private val preferencesHelper: PreferencesHelper, private val searchClient: SearchClient, diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt index 408ffe387..6ae9df3b6 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/SIDetailsScreen.kt @@ -27,12 +27,12 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mifospay.core.model.entity.accounts.savings.SavingAccount import com.mifospay.core.model.entity.client.Client import com.mifospay.core.model.entity.client.Status import com.mifospay.core.model.entity.standinginstruction.StandingInstruction +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.FloatingActionButtonContent import org.mifospay.core.designsystem.component.MifosLoadingWheel import org.mifospay.core.designsystem.component.MifosScaffold @@ -43,7 +43,7 @@ internal fun SIDetailsScreen( onClickCreateNew: () -> Unit, onBackPress: () -> Unit, modifier: Modifier = Modifier, - viewModel: StandingInstructionDetailsViewModel = hiltViewModel(), + viewModel: StandingInstructionDetailsViewModel = koinViewModel(), ) { val siDetailUiState by viewModel.siDetailsUiState.collectAsStateWithLifecycle() diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionDetailsViewModel.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionDetailsViewModel.kt index babfcf585..ec6b5adb2 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionDetailsViewModel.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionDetailsViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay.feature.standing.instruction import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.mifospay.core.model.entity.standinginstruction.StandingInstruction -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCase @@ -20,10 +19,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.standinginstruction.DeleteStandingInstruction import org.mifospay.core.data.domain.usecase.standinginstruction.FetchStandingInstruction import org.mifospay.core.data.domain.usecase.standinginstruction.UpdateStandingInstruction -import javax.inject.Inject -@HiltViewModel -class StandingInstructionDetailsViewModel @Inject constructor( +class StandingInstructionDetailsViewModel( private val mUseCaseHandler: UseCaseHandler, private val fetchStandingInstruction: FetchStandingInstruction, private val updateStandingInstruction: UpdateStandingInstruction, diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionScreen.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionScreen.kt index 63d961a71..006193666 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionScreen.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionScreen.kt @@ -22,8 +22,8 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.FloatingActionButtonContent import org.mifospay.core.designsystem.component.MifosLoadingWheel import org.mifospay.core.designsystem.component.MifosScaffold @@ -35,7 +35,7 @@ fun StandingInstructionsScreenRoute( onNewSI: () -> Unit, onBackPress: () -> Unit, modifier: Modifier = Modifier, - viewModel: StandingInstructionViewModel = hiltViewModel(), + viewModel: StandingInstructionViewModel = koinViewModel(), ) { val standingInstructionsUiState by viewModel.standingInstructionsUiState.collectAsStateWithLifecycle() diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionViewModel.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionViewModel.kt index fabbca00a..7d1c6b798 100644 --- a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionViewModel.kt +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/StandingInstructionViewModel.kt @@ -11,7 +11,6 @@ package org.mifospay.feature.standing.instruction import androidx.lifecycle.ViewModel import com.mifospay.core.model.entity.standinginstruction.StandingInstruction -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mifospay.core.data.base.UseCase @@ -19,10 +18,8 @@ import org.mifospay.core.data.base.UseCaseHandler import org.mifospay.core.data.domain.usecase.standinginstruction.GetAllStandingInstructions import org.mifospay.core.data.repository.local.LocalRepository import org.mifospay.feature.standing.instruction.StandingInstructionsUiState.Loading -import javax.inject.Inject -@HiltViewModel -class StandingInstructionViewModel @Inject constructor( +class StandingInstructionViewModel( private val mUseCaseHandler: UseCaseHandler, private val localRepository: LocalRepository, private val getAllStandingInstructions: GetAllStandingInstructions, diff --git a/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/di/StandingInstructionModule.kt b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/di/StandingInstructionModule.kt new file mode 100644 index 000000000..072a611b6 --- /dev/null +++ b/feature/standing-instruction/src/main/kotlin/org/mifospay/feature/standing/instruction/di/StandingInstructionModule.kt @@ -0,0 +1,45 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.standing.instruction.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.standing.instruction.NewSIViewModel +import org.mifospay.feature.standing.instruction.StandingInstructionDetailsViewModel +import org.mifospay.feature.standing.instruction.StandingInstructionViewModel + +val StandingInstructionModule = module { + viewModel { + NewSIViewModel( + mUseCaseHandler = get(), + preferencesHelper = get(), + searchClient = get(), + createStandingTransaction = get(), + ) + } + + viewModel { + StandingInstructionViewModel( + mUseCaseHandler = get(), + localRepository = get(), + getAllStandingInstructions = get(), + ) + } + + viewModel { + StandingInstructionDetailsViewModel( + mUseCaseHandler = get(), + fetchStandingInstruction = get(), + updateStandingInstruction = get(), + deleteStandingInstruction = get(), + savedStateHandle = get(), + ) + } +} diff --git a/feature/upi-setup/build.gradle.kts b/feature/upi-setup/build.gradle.kts index 73c9e4b92..a40950877 100644 --- a/feature/upi-setup/build.gradle.kts +++ b/feature/upi-setup/build.gradle.kts @@ -16,6 +16,4 @@ android { namespace = "org.mifospay.feature.upi_setup" } -dependencies { - implementation(projects.core.data) -} \ No newline at end of file +dependencies { } \ No newline at end of file diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/di/UpiSetupModule.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/di/UpiSetupModule.kt new file mode 100644 index 000000000..8810f7b96 --- /dev/null +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/di/UpiSetupModule.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.feature.upiSetup.di + +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.feature.upiSetup.viewmodel.DebitCardViewModel +import org.mifospay.feature.upiSetup.viewmodel.SetUpUpiViewModal + +val UpiSetupModule = module { + + viewModel { + DebitCardViewModel() + } + + viewModel { + SetUpUpiViewModal() + } +} diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/DebitCardScreen.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/DebitCardScreen.kt index d1173b61c..06c7de46a 100644 --- a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/DebitCardScreen.kt +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/DebitCardScreen.kt @@ -23,8 +23,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifospay.core.designsystem.component.MifosLoadingWheel import org.mifospay.core.designsystem.theme.MifosTheme import org.mifospay.core.ui.VerifyStepHeader @@ -38,7 +38,7 @@ internal fun DebitCardScreen( modifier: Modifier = Modifier, verificationStatus: Boolean = false, isContentVisible: Boolean = true, - viewModel: DebitCardViewModel = hiltViewModel(), + viewModel: DebitCardViewModel = koinViewModel(), ) { val debitCardUiState by viewModel.debitCardUiState.collectAsStateWithLifecycle() diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/SetUpUPiPinScreen.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/SetUpUPiPinScreen.kt index e8aa98455..02e57efc5 100644 --- a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/SetUpUPiPinScreen.kt +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/screens/SetUpUPiPinScreen.kt @@ -28,8 +28,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview -import androidx.hilt.navigation.compose.hiltViewModel import com.mifospay.core.model.domain.BankAccountDetails +import org.koin.androidx.compose.koinViewModel import org.mifospay.common.Constants import org.mifospay.core.designsystem.icon.MifosIcons import org.mifospay.feature.upiSetup.viewmodel.SetUpUpiViewModal @@ -42,7 +42,7 @@ internal fun SetupUpiPinScreenRoute( bankAccountDetails: BankAccountDetails, onBackPress: () -> Unit, modifier: Modifier = Modifier, - setUpViewModel: SetUpUpiViewModal = hiltViewModel(), + setUpViewModel: SetUpUpiViewModal = koinViewModel(), ) { SetupUpiPinScreen( type = type, diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/DebitCardViewModal.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/DebitCardViewModal.kt index 57cc2cf2a..5dd5bbf72 100644 --- a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/DebitCardViewModal.kt +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/DebitCardViewModal.kt @@ -11,15 +11,12 @@ package org.mifospay.feature.upiSetup.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch -import javax.inject.Inject -@HiltViewModel -class DebitCardViewModel @Inject constructor() : ViewModel() { +class DebitCardViewModel : ViewModel() { private val _debitCardUiState = MutableStateFlow(DebitCardUiState.Initials) val debitCardUiState: StateFlow = _debitCardUiState diff --git a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/SetUpUpiViewModal.kt b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/SetUpUpiViewModal.kt index cb0276321..1f402a00c 100644 --- a/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/SetUpUpiViewModal.kt +++ b/feature/upi-setup/src/main/kotlin/org/mifospay/feature/upiSetup/viewmodel/SetUpUpiViewModal.kt @@ -11,12 +11,9 @@ package org.mifospay.feature.upiSetup.viewmodel import androidx.lifecycle.ViewModel import com.mifospay.core.model.domain.BankAccountDetails -import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject -@HiltViewModel @Suppress("UnusedParameter") -class SetUpUpiViewModal @Inject constructor() : ViewModel() { +class SetUpUpiViewModal : ViewModel() { fun requestOtp(bankAccountDetails: BankAccountDetails?): String { val otp = "0000" diff --git a/gradle.properties b/gradle.properties index 7416e13c6..79d506e00 100644 --- a/gradle.properties +++ b/gradle.properties @@ -46,6 +46,7 @@ kotlin.code.style=official # https://developer.android.com/build/releases/gradle-plugin#default-changes android.defaults.buildfeatures.resvalues=false android.defaults.buildfeatures.shaders=false +android.testOptions.unitTests.isIncludeAndroidResources = true RblClientIdProp=a RblClientSecretProp=b diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 88d3d2a5e..9b9c19999 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,66 +1,67 @@ [versions] accompanistPagerVersion = "0.34.0" -activityVersion = "1.9.1" -androidDesugarJdkLibs = "2.0.4" +activityVersion = "1.9.2" +androidDesugarJdkLibs = "2.1.2" androidGradlePlugin = "8.5.2" androidTools = "31.5.2" androidx-test-ext-junit = "1.2.1" -androidxActivity = "1.9.1" +androidxActivity = "1.9.2" androidxBrowser = "1.8.0" -androidxComposeBom = "2024.08.00" +androidxComposeBom = "2024.09.02" androidxComposeCompiler = "1.5.15" -androidxComposeMaterial3Adaptive = "1.0.0-rc01" -androidxComposeRuntime = "1.6.8" +androidxComposeMaterial3Adaptive = "1.0.0" androidxComposeRuntimeTracing = "1.0.0-beta01" -androidxComposeUi = "1.6.8" -androidxComposeUiTest = "1.7.0-beta01" androidxCoreSplashscreen = "1.0.1" androidxDataStore = "1.1.1" -androidxHilt = "1.2.0" -androidxLifecycle = "2.8.4" +androidxLifecycle = "2.8.6" androidxMetrics = "1.0.0-beta01" -androidxNavigation = "2.8.0-rc01" -androidxProfileinstaller = "1.3.1" +androidxNavigation = "2.8.1" +androidxProfileinstaller = "1.4.0" androidxTracing = "1.3.0-alpha02" appcompatVersion = "1.7.0" cameraLifecycleVersion = "1.3.4" cameraViewVersion = "1.3.4" -coil = "2.6.0" +coil = "3.0.0-alpha10" compileSdk = "34" compose-plugin = "1.6.11" coreKtxVersion = "1.13.1" credentialsVersion = "1.2.2" datastore = "1.1.1" dependencyGuard = "0.5.0" -detekt = "1.23.5" +detekt = "1.23.7" espresso-core = "3.6.1" -firebaseBom = "33.1.2" +fineractSdk = "1.06" +firebaseBom = "33.3.0" firebaseCrashlyticsPlugin = "3.0.2" firebasePerfPlugin = "1.4.2" gmsPlugin = "4.4.2" googleOss = "17.1.0" googleOssPlugin = "0.10.6" googleidVersion = "1.1.1" -hilt = "2.52" junitVersion = "4.13.2" -koin = "3.6.0-Beta4" +koin = "4.0.0-RC2" +koinAnnotationsVersion = "1.4.0-RC4" koinComposeMultiplatform = "1.2.0-Beta4" kotlin = "2.0.20" -kotlinStdlibVersion = "1.9.0" -kotlinxCoroutines = "1.8.1" +kotlinInject = "0.7.2" +kotlinStdlibVersion = "2.0.20" +kotlinxCoroutines = "1.9.0" kotlinxDatetime = "0.6.0" -kotlinxImmutable = "0.3.7" -kotlinxSerializationJson = "1.7.1" +kotlinxImmutable = "0.3.8" +kotlinxSerializationJson = "1.7.2" kotlinxSerializationJsonVersion = "1.3.0" ksp = "2.0.20-1.0.24" ktlint = "12.1.1" ktorVersion = "2.3.4" +ktorfit = "2.1.0" +ktorfitKsp = "2.1.0-1.0.25" libphonenumberAndroidVersion = "8.13.35" lifecycleExtensionsVersion = "2.2.0" -lifecycleVersion = "2.8.4" -logbackClassicVersion = "1.2.3" +lifecycleVersion = "2.8.6" +logbackClassicVersion = "1.3.14" minSdk = "24" moduleGraph = "2.5.0" +multiplatformSettings = "1.2.0" okHttp3Version = "4.12.0" playServicesAuthVersion = "21.2.0" playServicesCodeScanner = "16.1.0" @@ -74,10 +75,11 @@ rxandroidVersion = "1.1.0" rxjavaVersion = "1.3.8" secrets = "2.0.1" sheets_compose_dialogs_core = "1.3.0" -spotlessVersion = "6.23.3" +spotlessVersion = "6.25.0" targetSdk = "34" -truth = "1.4.2" +truth = "1.4.4" twitter-detekt-compose = "0.0.26" +uiDesktopVersion = "1.7.0" versionCatalogLinterVersion = "1.0.3" wire = "5.0.0" zxingVersion = "3.5.3" @@ -104,20 +106,19 @@ androidx-compose-material3-adaptive = { group = "androidx.compose.material3.adap androidx-compose-material3-adaptive-layout = { group = "androidx.compose.material3.adaptive", name = "adaptive-layout", version.ref = "androidxComposeMaterial3Adaptive" } androidx-compose-material3-adaptive-navigation = { group = "androidx.compose.material3.adaptive", name = "adaptive-navigation", version.ref = "androidxComposeMaterial3Adaptive" } androidx-compose-material3-windowSizeClass = { group = "androidx.compose.material3", name = "material3-window-size-class" } -androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "androidxComposeRuntime" } +androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime" } androidx-compose-runtime-tracing = { group = "androidx.compose.runtime", name = "runtime-tracing", version.ref = "androidxComposeRuntimeTracing" } -androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "androidxComposeUi" } -androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4", version.ref = "androidxComposeUiTest" } +androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" } +androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } -androidx-compose-ui-util = { group = "androidx.compose.ui", name = "ui-util", version.ref = "androidxComposeUi" } +androidx-compose-ui-util = { group = "androidx.compose.ui", name = "ui-util" } androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtxVersion" } androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "androidxCoreSplashscreen" } androidx-credentials = { group = "androidx.credentials", name = "credentials", version.ref = "credentialsVersion" } androidx-credentials-play-services-auth = { group = "androidx.credentials", name = "credentials-play-services-auth", version.ref = "credentialsVersion" } androidx-dataStore-core = { group = "androidx.datastore", name = "datastore", version.ref = "androidxDataStore" } -androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHilt" } androidx-lifecycle-extensions = { group = "androidx.lifecycle", name = "lifecycle-extensions", version.ref = "lifecycleExtensionsVersion" } androidx-lifecycle-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycleVersion" } androidx-lifecycle-runtimeCompose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidxLifecycle" } @@ -129,13 +130,18 @@ androidx-navigation-testing = { group = "androidx.navigation", name = "navigatio androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profileinstaller", version.ref = "androidxProfileinstaller" } androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" } androidx-tracing-ktx = { group = "androidx.tracing", name = "tracing-ktx", version.ref = "androidxTracing" } -coil-kt = { group = "io.coil-kt", name = "coil", version.ref = "coil" } -coil-kt-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" } +androidx-ui-desktop = { group = "androidx.compose.ui", name = "ui-desktop", version.ref = "uiDesktopVersion" } +coil-core = { group = "io.coil-kt.coil3", name = "coil-core", version.ref = "coil" } +coil-kt = { group = "io.coil-kt.coil3", name = "coil", version.ref = "coil" } +coil-kt-compose = { group = "io.coil-kt.coil3", name = "coil-compose-core", version.ref = "coil" } +coil-network-ktor = { group = "io.coil-kt.coil3", name = "coil-network-ktor3", version.ref = "coil" } +coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" } compose-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" } datastore = { group = "androidx.datastore", name = "datastore-core-okio", version.ref = "datastore" } detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" } detekt-gradlePlugin = { group = "io.gitlab.arturbosch.detekt", name = "detekt-gradle-plugin", version.ref = "detekt" } espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" } +fineract-sdk = { group = "com.github.openMF", name = "mifos-android-sdk-arch", version.ref = "fineractSdk" } firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" } firebase-cloud-messaging = { group = "com.google.firebase", name = "firebase-messaging-ktx" } @@ -147,39 +153,61 @@ google-oss-licenses = { group = "com.google.android.gms", name = "play-services- google-oss-licenses-plugin = { group = "com.google.android.gms", name = "oss-licenses-plugin", version.ref = "googleOssPlugin" } google-play-services-code-scanner = { group = "com.google.android.gms", name = "play-services-code-scanner", version.ref = "playServicesCodeScanner" } googleid = { group = "com.google.android.libraries.identity.googleid", name = "googleid", version.ref = "googleidVersion" } -hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } -hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" } -hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" } jetbrains-kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlinStdlibVersion" } junit = { group = "junit", name = "junit", version.ref = "junitVersion" } koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } koin-androidx-compose = { group = "io.insert-koin", name = "koin-androidx-compose", version.ref = "koin" } +koin-androidx-navigation = { group = "io.insert-koin", name = "koin-androidx-navigation", version.ref = "koin" } +koin-annotations = { group = "io.insert-koin", name = "koin-annotations", version.ref = "koinAnnotationsVersion" } +koin-bom = { group = "io.insert-koin", name = "koin-bom", version.ref = "koin" } koin-compose = { group = "io.insert-koin", name = "koin-compose", version.ref = "koinComposeMultiplatform" } koin-compose-viewmodel = { group = "io.insert-koin", name = "koin-compose-viewmodel", version.ref = "koinComposeMultiplatform" } koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" } +koin-core-viewmodel = { group = "io.insert-koin", name = "koin-core-viewmodel", version.ref = "koin" } +koin-ksp-compiler = { group = "io.insert-koin", name = "koin-ksp-compiler", version.ref = "koinAnnotationsVersion" } +koin-test = { group = "io.insert-koin", name = "koin-test", version.ref = "koin" } +koin-test-junit4 = { group = "io.insert-koin", name = "koin-test-junit4", version.ref = "koin" } +koin-test-junit5 = { group = "io.insert-koin", name = "koin-test-junit5", version.ref = "koin" } kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } +kotlin-inject-compiler-ksp = { group = "me.tatarka.inject", name = "kotlin-inject-compiler-ksp", version.ref = "kotlinInject" } +kotlin-inject-runtime = { group = "me.tatarka.inject", name = "kotlin-inject-runtime", version.ref = "kotlinInject" } +kotlin-inject-runtime-kmp = { group = "me.tatarka.inject", name = "kotlin-inject-runtime-kmp", version.ref = "kotlinInject" } kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" } +kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" } kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxImmutable" } kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" } +kotlinx-serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "kotlinxSerializationJson" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } ktlint-gradlePlugin = { group = "org.jlleitschuh.gradle", name = "ktlint-gradle", version.ref = "ktlint" } ktor-client-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktorVersion" } ktor-client-content-negotiation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktorVersion" } ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktorVersion" } +ktor-client-darwin = { group = "io.ktor", name = "ktor-client-darwin", version.ref = "ktorVersion" } +ktor-client-java = { group = "io.ktor", name = "ktor-client-java", version.ref = "ktorVersion" } +ktor-client-js = { group = "io.ktor", name = "ktor-client-js", version.ref = "ktorVersion" } ktor-client-json = { group = "io.ktor", name = "ktor-client-json", version.ref = "ktorVersion" } ktor-client-logging = { group = "io.ktor", name = "ktor-client-logging", version.ref = "ktorVersion" } ktor-client-serialization = { group = "io.ktor", name = "ktor-client-serialization", version.ref = "ktorVersion" } ktor-client-websockets = { group = "io.ktor", name = "ktor-client-websockets", version.ref = "ktorVersion" } +ktor-client-winhttp = { group = "io.ktor", name = "ktor-client-winhttp", version.ref = "ktorVersion" } ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktorVersion" } +ktorfit-converters-call = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-converters-call", version.ref = "ktorfit" } +ktorfit-converters-flow = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-converters-flow", version.ref = "ktorfit" } +ktorfit-ksp = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-ksp", version.ref = "ktorfitKsp" } +ktorfit-lib = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-lib", version.ref = "ktorfit" } libphonenumber-android = { group = "io.michaelrocks", name = "libphonenumber-android", version.ref = "libphonenumberAndroidVersion" } lint-api = { group = "com.android.tools.lint", name = "lint-api", version.ref = "androidTools" } lint-checks = { group = "com.android.tools.lint", name = "lint-checks", version.ref = "androidTools" } lint-tests = { group = "com.android.tools.lint", name = "lint-tests", version.ref = "androidTools" } logback-classic = { group = "ch.qos.logback", name = "logback-classic", version.ref = "logbackClassicVersion" } +multiplatform-settings = { group = "com.russhwolf", name = "multiplatform-settings-no-arg", version.ref = "multiplatformSettings" } +multiplatform-settings-coroutines = { group = "com.russhwolf", name = "multiplatform-settings-coroutines", version.ref = "multiplatformSettings" } +multiplatform-settings-serialization = { group = "com.russhwolf", name = "multiplatform-settings-serialization", version.ref = "multiplatformSettings" } +multiplatform-settings-test = { group = "com.russhwolf", name = "multiplatform-settings-test", version.ref = "multiplatformSettings" } play-services-auth = { group = "com.google.android.gms", name = "play-services-auth", version.ref = "playServicesAuthVersion" } protobuf-kotlin-lite = { group = "com.google.protobuf", name = "protobuf-kotlin-lite", version.ref = "protobuf" } protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" } @@ -215,7 +243,6 @@ detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsPlugin" } firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" } gms = { id = "com.google.gms.google-services", version.ref = "gmsPlugin" } -hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } @@ -224,6 +251,7 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } +ktrofit = { id = "de.jensklingenberg.ktorfit", version.ref = "ktorfit" } mifos-detekt-plugin = { id = "mifos.detekt.plugin", version = "unspecified" } mifos-git-hooks = { id = "mifos.git.hooks", version = "unspecified" } mifos-ktlint-plugin = { id = "mifos.ktlint.plugin", version = "unspecified" } @@ -233,13 +261,16 @@ mifospay-android-application-compose = { id = "mifospay.android.application.comp mifospay-android-application-firebase = { id = "mifospay.android.application.firebase", version = "unspecified" } mifospay-android-application-flavors = { id = "mifospay.android.application.flavors", version = "unspecified" } mifospay-android-feature = { id = "mifospay.android.feature", version = "unspecified" } -mifospay-android-hilt = { id = "mifospay.android.hilt", version = "unspecified" } +mifospay-android-koin = { id = "mifospay.android.koin", version = "unspecified" } mifospay-android-library = { id = "mifospay.android.library", version = "unspecified" } mifospay-android-library-compose = { id = "mifospay.android.library.compose", version = "unspecified" } mifospay-android-lint = { id = "mifospay.android.lint", version = "unspecified" } mifospay-android-room = { id = "mifospay.android.room", version = "unspecified" } mifospay-android-test = { id = "mifospay.android.test", version = "unspecified" } +mifospay-cmp-feature = { id = "mifospay.cmp.feature", version = "unspecified" } mifospay-jvm-library = { id = "mifospay.jvm.library", version = "unspecified" } +mifospay-kmp-koin = { id = "mifospay.kmp.koin", version = "unspecified" } +mifospay-kmp-library = { id = "mifospay.kmp.library", version = "unspecified" } module-graph = { id = "com.jraska.module.graph.assertion", version.ref = "moduleGraph" } protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" } roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" } diff --git a/libs/country-code-picker/src/main/kotlin/com/mifos/library/countrycodepicker/CountryCodePicker.kt b/libs/country-code-picker/src/main/kotlin/com/mifos/library/countrycodepicker/CountryCodePicker.kt index 86da45a5d..322552949 100644 --- a/libs/country-code-picker/src/main/kotlin/com/mifos/library/countrycodepicker/CountryCodePicker.kt +++ b/libs/country-code-picker/src/main/kotlin/com/mifos/library/countrycodepicker/CountryCodePicker.kt @@ -262,7 +262,6 @@ fun CountryCodePicker( visualTransformation = phoneNumberTransformation, keyboardOptions = keyboardOptions ?: KeyboardOptions.Default.copy( keyboardType = KeyboardType.Phone, - autoCorrect = true, imeAction = ImeAction.Done, ), keyboardActions = keyboardActions ?: KeyboardActions( diff --git a/libs/material3-navigation/src/main/kotlin/com/mifos/library/material3/navigation/BottomSheet.kt b/libs/material3-navigation/src/main/kotlin/com/mifos/library/material3/navigation/BottomSheet.kt index 7ddaeafc1..27389dac3 100644 --- a/libs/material3-navigation/src/main/kotlin/com/mifos/library/material3/navigation/BottomSheet.kt +++ b/libs/material3-navigation/src/main/kotlin/com/mifos/library/material3/navigation/BottomSheet.kt @@ -11,6 +11,7 @@ package com.mifos.library.material3.navigation import androidx.compose.foundation.layout.Column import androidx.compose.material3.BottomSheetDefaults +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.contentColorFor import androidx.compose.runtime.Composable @@ -24,6 +25,7 @@ import androidx.compose.ui.unit.Dp * * @see [ModalBottomSheetLayout] */ +@OptIn(ExperimentalMaterial3Api::class) @Composable public fun ModalBottomSheetLayout( bottomSheetNavigator: BottomSheetNavigator, diff --git a/libs/mifos-passcode/build.gradle.kts b/libs/mifos-passcode/build.gradle.kts index fa250ec66..93d85ab8f 100644 --- a/libs/mifos-passcode/build.gradle.kts +++ b/libs/mifos-passcode/build.gradle.kts @@ -10,7 +10,7 @@ plugins { alias(libs.plugins.mifospay.android.library) alias(libs.plugins.mifospay.android.library.compose) - alias(libs.plugins.mifospay.android.hilt) + id("com.google.devtools.ksp") } android { @@ -30,6 +30,17 @@ dependencies { implementation(libs.androidx.lifecycle.runtimeCompose) implementation(libs.androidx.lifecycle.viewModelCompose) implementation(libs.androidx.navigation.compose) - implementation(libs.androidx.hilt.navigation.compose) + + implementation(platform(libs.koin.bom)) + implementation(libs.koin.core) + implementation(libs.koin.android) + implementation(libs.koin.androidx.navigation) + implementation(libs.koin.androidx.compose) + implementation(libs.koin.core.viewmodel) + + + testImplementation(libs.koin.test) + testImplementation(libs.koin.test.junit4) + testImplementation(libs.koin.test.junit5) } diff --git a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/PassCodeScreen.kt b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/PassCodeScreen.kt index c20e54ad4..e7225a959 100644 --- a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/PassCodeScreen.kt +++ b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/PassCodeScreen.kt @@ -44,8 +44,8 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import org.koin.androidx.compose.koinViewModel import org.mifos.library.passcode.component.MifosIcon import org.mifos.library.passcode.component.PasscodeForgotButton import org.mifos.library.passcode.component.PasscodeHeader @@ -67,7 +67,7 @@ internal fun PasscodeScreen( onPasscodeConfirm: (String) -> Unit, onPasscodeRejected: () -> Unit, modifier: Modifier = Modifier, - viewModel: PasscodeViewModel = hiltViewModel(), + viewModel: PasscodeViewModel = koinViewModel(), ) { val context = LocalContext.current val preferenceManager = remember { PreferenceManager(context) } diff --git a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeManager.kt b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeManager.kt index f2436f02d..15899edd1 100644 --- a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeManager.kt +++ b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeManager.kt @@ -9,16 +9,11 @@ */ package org.mifos.library.passcode.data -import android.content.Context -import dagger.hilt.android.qualifiers.ApplicationContext import org.mifos.library.passcode.utility.PreferenceManager -import javax.inject.Inject -class PasscodeManager @Inject constructor( - @ApplicationContext - private val context: Context, +class PasscodeManager( + private val passcodePreferencesHelper: PreferenceManager, ) { - private val passcodePreferencesHelper = PreferenceManager(context) val getPasscode = passcodePreferencesHelper.getSavedPasscode() diff --git a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeRepositoryImpl.kt b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeRepositoryImpl.kt index 8f4cbd863..3346a2670 100644 --- a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeRepositoryImpl.kt +++ b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/data/PasscodeRepositoryImpl.kt @@ -10,9 +10,8 @@ package org.mifos.library.passcode.data import org.mifos.library.passcode.utility.PreferenceManager -import javax.inject.Inject -class PasscodeRepositoryImpl @Inject constructor( +class PasscodeRepositoryImpl( private val preferenceManager: PreferenceManager, ) : PasscodeRepository { diff --git a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/di/ApplicationModule.kt b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/di/ApplicationModule.kt index c5a5e821d..ad1c93c66 100644 --- a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/di/ApplicationModule.kt +++ b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/di/ApplicationModule.kt @@ -9,29 +9,27 @@ */ package org.mifos.library.passcode.di -import android.content.Context -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent +import org.koin.android.ext.koin.androidContext +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifos.library.passcode.data.PasscodeManager import org.mifos.library.passcode.data.PasscodeRepository import org.mifos.library.passcode.data.PasscodeRepositoryImpl import org.mifos.library.passcode.utility.PreferenceManager -import javax.inject.Singleton +import org.mifos.library.passcode.viewmodels.PasscodeViewModel -@Module -@InstallIn(SingletonComponent::class) -object ApplicationModule { - @Provides - @Singleton - fun providePrefManager(@ApplicationContext context: Context): PreferenceManager { - return PreferenceManager(context) +val ApplicationModule = module { + + factory { + PreferenceManager(context = androidContext()) } - @Provides - @Singleton - fun providesPasscodeRepository(preferenceManager: PreferenceManager): PasscodeRepository { - return PasscodeRepositoryImpl(preferenceManager) + single { PasscodeRepositoryImpl(preferenceManager = get()) } + + viewModel { + PasscodeViewModel(passcodeRepository = get()) + } + factory { + PasscodeManager(passcodePreferencesHelper = get()) } } diff --git a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/viewmodels/PasscodeViewModel.kt b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/viewmodels/PasscodeViewModel.kt index 4842a5800..c0d2631a6 100644 --- a/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/viewmodels/PasscodeViewModel.kt +++ b/libs/mifos-passcode/src/main/kotlin/org/mifos/library/passcode/viewmodels/PasscodeViewModel.kt @@ -12,7 +12,6 @@ package org.mifos.library.passcode.viewmodels import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asSharedFlow @@ -21,10 +20,8 @@ import kotlinx.coroutines.launch import org.mifos.library.passcode.data.PasscodeRepository import org.mifos.library.passcode.utility.Constants.PASSCODE_LENGTH import org.mifos.library.passcode.utility.Step -import javax.inject.Inject -@HiltViewModel -internal class PasscodeViewModel @Inject constructor( +internal class PasscodeViewModel( private val passcodeRepository: PasscodeRepository, ) : ViewModel() { diff --git a/mifospay/build.gradle.kts b/mifospay/build.gradle.kts index 4460c2e83..5921928a6 100644 --- a/mifospay/build.gradle.kts +++ b/mifospay/build.gradle.kts @@ -8,6 +8,7 @@ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ import org.mifospay.MifosBuildType +import org.mifospay.dynamicVersion /* * Copyright 2024 Mifos Initiative @@ -23,10 +24,10 @@ plugins { alias(libs.plugins.mifospay.android.application) alias(libs.plugins.mifospay.android.application.compose) alias(libs.plugins.mifospay.android.application.flavors) - alias(libs.plugins.mifospay.android.hilt) alias(libs.plugins.mifospay.android.application.firebase) alias(libs.plugins.roborazzi) id("com.google.android.gms.oss-licenses-plugin") + id("com.google.devtools.ksp") } android { @@ -34,7 +35,7 @@ android { defaultConfig { applicationId = "org.mifospay" - versionName = project.version.toString() + versionName = project.dynamicVersion versionCode = System.getenv("VERSION_CODE")?.toIntOrNull() ?: 1 vectorDrawables.useSupportLibrary = true testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" @@ -86,8 +87,6 @@ android { } dependencies { - implementation(projects.shared) - implementation(projects.core.data) implementation(projects.core.ui) implementation(projects.core.designsystem) @@ -132,8 +131,6 @@ dependencies { implementation(libs.androidx.compose.material3.windowSizeClass) implementation(libs.androidx.compose.runtime.tracing) - implementation(libs.androidx.hilt.navigation.compose) - ksp(libs.hilt.compiler) implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.coroutines.android) @@ -150,16 +147,20 @@ dependencies { runtimeOnly(libs.androidx.compose.runtime) debugImplementation(libs.androidx.compose.ui.tooling) - kspTest(libs.hilt.compiler) testImplementation(libs.junit) - testImplementation(libs.hilt.android.testing) testImplementation(libs.androidx.compose.ui.test) androidTestImplementation(libs.androidx.compose.ui.test) androidTestImplementation(libs.espresso.core) androidTestImplementation(libs.androidx.test.ext.junit) - androidTestImplementation(libs.hilt.android.testing) + + implementation(libs.koin.android) + implementation(libs.ktor.client.core) + + testImplementation(kotlin("test")) + testImplementation(libs.koin.test) + testImplementation(libs.koin.test.junit4) } dependencyGuard { diff --git a/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt b/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt index b96d6758e..9abd02dd6 100644 --- a/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt +++ b/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt @@ -1,57 +1,57 @@ +--- androidx.databinding:databinding-common:8.5.2 +--- androidx.databinding:databinding-runtime:8.5.2 -| +--- androidx.collection:collection:1.0.0 -> 1.4.2 -| | \--- androidx.collection:collection-jvm:1.4.2 +| +--- androidx.collection:collection:1.0.0 -> 1.4.4 +| | \--- androidx.collection:collection-jvm:1.4.4 | | +--- androidx.annotation:annotation:1.8.1 | | | \--- androidx.annotation:annotation-jvm:1.8.1 | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.20 | | | +--- org.jetbrains:annotations:13.0 -> 23.0.0 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 2.0.0 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 2.0.0 (c) | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.20 (c) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- androidx.collection:collection-ktx:1.4.2 (c) -| | \--- androidx.collection:collection-ktx:1.3.0 -> 1.4.2 (c) +| | +--- androidx.collection:collection-ktx:1.4.4 (c) +| | \--- androidx.collection:collection-ktx:1.3.0 -> 1.4.4 (c) | +--- androidx.databinding:databinding-common:8.5.2 | +--- androidx.databinding:viewbinding:8.5.2 | | \--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| \--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.4 -| \--- androidx.lifecycle:lifecycle-runtime-android:2.8.4 +| \--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.6 +| \--- androidx.lifecycle:lifecycle-runtime-android:2.8.6 | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) | +--- androidx.arch.core:core-common:2.2.0 | | \--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | +--- androidx.arch.core:core-runtime:2.2.0 | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | \--- androidx.arch.core:core-common:2.2.0 (*) -| +--- androidx.lifecycle:lifecycle-common:2.8.4 -| | \--- androidx.lifecycle:lifecycle-common-jvm:2.8.4 +| +--- androidx.lifecycle:lifecycle-common:2.8.6 +| | \--- androidx.lifecycle:lifecycle-common-jvm:2.8.6 | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 -| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0 | | | +--- org.jetbrains:annotations:23.0.0 -| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (c) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1 (c) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (c) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.1 (c) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.1 (c) -| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.8.1 (c) -| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| +--- androidx.profileinstaller:profileinstaller:1.3.1 -| | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.9.0 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.9.0 (c) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.9.0 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 +| | +--- androidx.annotation:annotation:1.8.1 (*) | | +--- androidx.concurrent:concurrent-futures:1.1.0 | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava @@ -62,357 +62,346 @@ | | | \--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (c) | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) -| +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +--- androidx.databinding:databinding-adapters:8.5.2 | +--- androidx.databinding:databinding-runtime:8.5.2 (*) | \--- androidx.databinding:databinding-common:8.5.2 +--- androidx.databinding:databinding-ktx:8.5.2 | +--- androidx.databinding:databinding-runtime:8.5.2 (*) -| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.20 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 -> 2.0.20 (*) -| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.8.1 (*) -| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.8.4 -| | \--- androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.4 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 -> 2.0.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.9.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.8.6 +| | \--- androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.6 | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-livedata:2.6.1 -> 2.8.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-livedata:2.6.1 -> 2.8.6 | | +--- androidx.arch.core:core-common:2.2.0 (*) | | +--- androidx.arch.core:core-runtime:2.2.0 (*) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 | | | +--- androidx.arch.core:core-common:2.2.0 (*) | | | +--- androidx.arch.core:core-runtime:2.2.0 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (*) | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 -| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (*) | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.6 | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (*) | | +--- androidx.startup:startup-runtime:1.1.1 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-service:2.6.1 -> 2.8.4 -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-service:2.6.1 -> 2.8.6 +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| \--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.4 -| \--- androidx.lifecycle:lifecycle-viewmodel-android:2.8.4 +| | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| \--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.6 +| \--- androidx.lifecycle:lifecycle-viewmodel-android:2.8.6 | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) +| +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -+--- androidx.compose:compose-bom:2024.08.00 -| +--- androidx.compose.material3:material3-window-size-class:1.2.1 (c) -| +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-tooling-preview:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.foundation:foundation:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.foundation:foundation-layout:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.material:material-icons-extended:1.6.8 (c) -| +--- androidx.compose.material3:material3:1.2.1 (c) -| +--- androidx.compose.ui:ui-util:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.runtime:runtime-saveable:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.animation:animation:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.material3:material3-window-size-class-android:1.2.1 (c) -| +--- androidx.compose.animation:animation-graphics:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-geometry:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.animation:animation-core:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.foundation:foundation-layout-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.runtime:runtime-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.runtime:runtime-saveable-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.material3:material3-android:1.2.1 (c) -| +--- androidx.compose.material:material-icons-extended-android:1.6.8 (c) -| +--- androidx.compose.animation:animation-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-unit:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.animation:animation-core-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-graphics:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-text:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.material:material-icons-core:1.6.8 (c) -| +--- androidx.compose.material:material-ripple:1.6.8 (c) -| +--- androidx.compose.ui:ui-unit-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-util-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.foundation:foundation-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-geometry-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-tooling-preview-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-graphics-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-text-android:1.6.8 -> 1.7.0-rc01 (c) -| +--- androidx.compose.material:material-icons-core-android:1.6.8 (c) -| +--- androidx.compose.material:material-ripple-android:1.6.8 (c) -| \--- androidx.compose.animation:animation-graphics-android:1.6.8 -> 1.7.0-rc01 (c) -+--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 -| \--- androidx.compose.ui:ui-tooling-preview-android:1.7.0-rc01 ++--- androidx.compose:compose-bom:2024.09.02 +| +--- androidx.compose.material3:material3-window-size-class:1.3.0 (c) +| +--- androidx.compose.material3.adaptive:adaptive:1.0.0 (c) +| +--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0 (c) +| +--- androidx.compose.material3.adaptive:adaptive-navigation:1.0.0 (c) +| +--- androidx.compose.runtime:runtime:1.7.2 (c) +| +--- androidx.compose.ui:ui-tooling-preview:1.7.2 (c) +| +--- androidx.compose.foundation:foundation:1.7.2 (c) +| +--- androidx.compose.foundation:foundation-layout:1.7.2 (c) +| +--- androidx.compose.material:material-icons-extended:1.7.2 (c) +| +--- androidx.compose.material3:material3:1.3.0 (c) +| +--- androidx.compose.ui:ui-util:1.7.2 (c) +| +--- androidx.compose.runtime:runtime-saveable:1.7.2 (c) +| +--- androidx.compose.ui:ui:1.7.2 (c) +| +--- androidx.compose.material3.adaptive:adaptive-android:1.0.0 (c) +| +--- androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0 (c) +| +--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0 (c) +| +--- androidx.compose.animation:animation:1.7.2 (c) +| +--- androidx.compose.material3:material3-window-size-class-android:1.3.0 (c) +| +--- androidx.compose.runtime:runtime-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-tooling-preview-android:1.7.2 (c) +| +--- androidx.compose.material:material:1.7.2 (c) +| +--- androidx.compose.animation:animation-graphics:1.7.2 (c) +| +--- androidx.compose.foundation:foundation-layout-android:1.7.2 (c) +| +--- androidx.compose.runtime:runtime-saveable-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-android:1.7.2 (c) +| +--- androidx.compose.foundation:foundation-android:1.7.2 (c) +| +--- androidx.compose.material:material-icons-extended-android:1.7.2 (c) +| +--- androidx.compose.material3:material3-android:1.3.0 (c) +| +--- androidx.compose.ui:ui-util-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-geometry:1.7.2 (c) +| +--- androidx.compose.animation:animation-core:1.7.2 (c) +| +--- androidx.compose.animation:animation-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-unit:1.7.2 (c) +| +--- androidx.compose.material:material-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-geometry-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-unit-android:1.7.2 (c) +| +--- androidx.compose.animation:animation-graphics-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-graphics:1.7.2 (c) +| +--- androidx.compose.ui:ui-text:1.7.2 (c) +| +--- androidx.compose.material:material-icons-core:1.7.2 (c) +| +--- androidx.compose.material:material-ripple:1.7.2 (c) +| +--- androidx.compose.animation:animation-core-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-graphics-android:1.7.2 (c) +| +--- androidx.compose.ui:ui-text-android:1.7.2 (c) +| +--- androidx.compose.material:material-icons-core-android:1.7.2 (c) +| \--- androidx.compose.material:material-ripple-android:1.7.2 (c) ++--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 +| \--- androidx.compose.ui:ui-tooling-preview-android:1.7.2 | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) -| +--- androidx.compose.runtime:runtime:1.7.0-rc01 -| | \--- androidx.compose.runtime:runtime-android:1.7.0-rc01 -| | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 +| +--- androidx.compose.runtime:runtime:1.7.2 +| | \--- androidx.compose.runtime:runtime-android:1.7.2 +| | +--- androidx.annotation:annotation-experimental:1.4.1 | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.20 (*) -| | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) +| | +--- androidx.collection:collection:1.4.4 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | \--- androidx.compose.runtime:runtime-saveable:1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui:1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-text:1.7.0-rc01 (c) -| +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (c) -| \--- androidx.compose.ui:ui-util:1.7.0-rc01 (c) -+--- com.google.dagger:hilt-android:2.52 -| +--- com.google.dagger:dagger:2.52 -| | +--- jakarta.inject:jakarta.inject-api:2.0.1 -| | \--- javax.inject:javax.inject:1 -| +--- com.google.dagger:dagger-lint-aar:2.52 -| +--- com.google.dagger:hilt-core:2.52 -| | +--- com.google.dagger:dagger:2.52 (*) -| | +--- com.google.code.findbugs:jsr305:3.0.2 -| | \--- javax.inject:javax.inject:1 -| +--- com.google.code.findbugs:jsr305:3.0.2 -| +--- androidx.activity:activity:1.5.1 -> 1.9.1 -| | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) -| | +--- androidx.core:core:1.13.0 -> 1.13.1 -| | | +--- androidx.annotation:annotation:1.6.0 -> 1.8.1 (*) -| | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) -| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) -| | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 -> 2.8.4 (*) -| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | \--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | \--- androidx.core:core-ktx:1.13.1 (c) -| | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.8.4 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 -| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | +--- androidx.core:core:1.13.1 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | \--- androidx.core:core:1.13.1 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (*) -| | | +--- androidx.savedstate:savedstate:1.2.1 -| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) -| | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.8.4 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.20 (*) -| | | | \--- androidx.savedstate:savedstate-ktx:1.2.1 (c) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*) -| | +--- androidx.savedstate:savedstate:1.2.1 (*) -| | +--- androidx.tracing:tracing:1.0.0 -> 1.3.0-alpha02 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- androidx.activity:activity-compose:1.9.1 (c) -| | \--- androidx.activity:activity-ktx:1.9.1 (c) -| +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*) -| +--- androidx.annotation:annotation-experimental:1.3.1 -> 1.4.1 (*) -| +--- androidx.fragment:fragment:1.5.1 -> 1.7.1 -| | +--- androidx.activity:activity:1.8.1 -> 1.9.1 (*) -| | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | +--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) -| | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.1 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.8.4 (*) -| | +--- androidx.loader:loader:1.0.0 -> 1.1.0 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) -| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.0.0 -> 2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.8.4 (*) -| | | \--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) -| | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*) -| | +--- androidx.savedstate:savedstate:1.2.1 (*) -| | +--- androidx.viewpager:viewpager:1.0.0 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) -| | | \--- androidx.customview:customview:1.0.0 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | \--- androidx.fragment:fragment-ktx:1.7.1 (c) -| +--- androidx.lifecycle:lifecycle-common:2.5.1 -> 2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.4 (*) -| +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) -| +--- javax.inject:javax.inject:1 -| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) -+--- com.google.firebase:firebase-bom:33.1.2 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) +| | \--- androidx.compose.runtime:runtime-saveable:1.7.2 (c) +| +--- androidx.compose.ui:ui:1.7.2 (c) +| +--- androidx.compose.ui:ui-geometry:1.7.2 (c) +| +--- androidx.compose.ui:ui-unit:1.7.2 (c) +| +--- androidx.compose.ui:ui-util:1.7.2 (c) +| +--- androidx.compose.ui:ui-graphics:1.7.2 (c) +| \--- androidx.compose.ui:ui-text:1.7.2 (c) ++--- com.google.firebase:firebase-bom:33.3.0 | +--- com.google.firebase:firebase-perf-ktx:21.0.1 (c) -| +--- com.google.firebase:firebase-crashlytics-ktx:19.0.3 (c) -| +--- com.google.firebase:firebase-analytics-ktx:22.0.2 (c) -| +--- com.google.firebase:firebase-messaging-ktx:24.0.0 (c) +| +--- com.google.firebase:firebase-crashlytics-ktx:19.1.0 (c) +| +--- com.google.firebase:firebase-analytics-ktx:22.1.0 (c) +| +--- com.google.firebase:firebase-messaging-ktx:24.0.1 (c) | +--- com.google.firebase:firebase-perf:21.0.1 (c) | +--- com.google.firebase:firebase-common:21.0.0 (c) | +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) -| +--- com.google.firebase:firebase-crashlytics:19.0.3 (c) -| +--- com.google.firebase:firebase-analytics:22.0.2 (c) -| +--- com.google.firebase:firebase-messaging:24.0.0 (c) +| +--- com.google.firebase:firebase-crashlytics:19.1.0 (c) +| +--- com.google.firebase:firebase-analytics:22.1.0 (c) +| +--- com.google.firebase:firebase-messaging:24.0.1 (c) | +--- com.google.firebase:firebase-encoders:17.0.0 (c) | +--- com.google.firebase:firebase-config:22.0.0 (c) | \--- com.google.firebase:firebase-installations:18.0.0 (c) -+--- com.google.firebase:firebase-analytics-ktx -> 22.0.2 -| +--- com.google.firebase:firebase-analytics:22.0.2 -| | +--- com.google.android.gms:play-services-measurement:22.0.2 -| | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) ++--- com.google.firebase:firebase-analytics-ktx -> 22.1.0 +| +--- com.google.firebase:firebase-analytics:22.1.0 +| | +--- com.google.android.gms:play-services-measurement:22.1.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.8.1 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) +| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 -> 2.8.6 (*) +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | \--- androidx.core:core-ktx:1.13.1 (c) | | | | +--- androidx.documentfile:documentfile:1.0.0 | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) -| | | | +--- androidx.loader:loader:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.loader:loader:1.0.0 -> 1.1.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.0.0 -> 2.8.6 (*) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.8.6 (*) +| | | | | \--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) | | | | \--- androidx.print:print:1.0.0 | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 | | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 -| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) -| | | | \--- androidx.fragment:fragment:1.1.0 -> 1.7.1 (*) +| | | | \--- androidx.fragment:fragment:1.1.0 -> 1.8.2 +| | | | +--- androidx.activity:activity:1.8.1 -> 1.9.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) +| | | | | +--- androidx.core:core:1.13.0 -> 1.13.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.6 (*) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.6 (*) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.8.6 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) +| | | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | \--- androidx.core:core:1.13.1 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (*) +| | | | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.8.6 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.20 (*) +| | | | | | | \--- androidx.savedstate:savedstate-ktx:1.2.1 (c) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) +| | | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | | +--- androidx.tracing:tracing:1.0.0 -> 1.3.0-alpha02 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | +--- androidx.activity:activity-compose:1.9.2 (c) +| | | | | \--- androidx.activity:activity-ktx:1.9.2 (c) +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.1 -> 2.8.6 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.6 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.6 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.8.6 (*) +| | | | +--- androidx.loader:loader:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | \--- androidx.fragment:fragment-ktx:1.8.2 (c) | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) -| | | +--- com.google.android.gms:play-services-measurement-base:22.0.2 +| | | +--- com.google.android.gms:play-services-measurement-base:22.1.0 | | | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) -| | | +--- com.google.android.gms:play-services-measurement-impl:22.0.2 -| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) +| | | +--- com.google.android.gms:play-services-measurement-impl:22.1.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) | | | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 | | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.8.1 (*) | | | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.20 (*) -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) | | | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 (c) | | | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) @@ -428,31 +417,31 @@ | | | | | | \--- com.google.j2objc:j2objc-annotations:1.3 | | | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.20 (*) -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) | | | | | \--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (c) | | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) | | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) -| | | | +--- com.google.android.gms:play-services-measurement-base:22.0.2 (*) +| | | | +--- com.google.android.gms:play-services-measurement-base:22.1.0 (*) | | | | +--- com.google.android.gms:play-services-stats:17.0.2 | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) | | | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) | | | | \--- com.google.guava:guava:31.1-android (*) | | | \--- com.google.android.gms:play-services-stats:17.0.2 (*) -| | +--- com.google.android.gms:play-services-measurement-api:22.0.2 +| | +--- com.google.android.gms:play-services-measurement-api:22.1.0 | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) -| | | +--- com.google.android.gms:play-services-measurement-base:22.0.2 (*) -| | | +--- com.google.android.gms:play-services-measurement-sdk-api:22.0.2 +| | | +--- com.google.android.gms:play-services-measurement-base:22.1.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-sdk-api:22.1.0 | | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) -| | | | \--- com.google.android.gms:play-services-measurement-base:22.0.2 (*) +| | | | \--- com.google.android.gms:play-services-measurement-base:22.1.0 (*) | | | +--- com.google.android.gms:play-services-tasks:18.2.0 | | | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) | | | +--- com.google.firebase:firebase-common:21.0.0 -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.8.1 -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.9.0 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0 (*) | | | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) -| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) | | | | +--- com.google.firebase:firebase-components:18.0.0 | | | | | +--- com.google.firebase:firebase-annotations:16.2.0 | | | | | | \--- javax.inject:javax.inject:1 @@ -466,7 +455,7 @@ | | | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) | | | +--- com.google.firebase:firebase-common-ktx:21.0.0 | | | | +--- com.google.firebase:firebase-common:21.0.0 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) | | | | +--- com.google.firebase:firebase-components:18.0.0 (*) | | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) | | | +--- com.google.firebase:firebase-components:18.0.0 (*) @@ -486,11 +475,11 @@ | | | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) | | | +--- com.google.guava:guava:31.1-android (*) | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.20 (*) -| | \--- com.google.android.gms:play-services-measurement-sdk:22.0.2 -| | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) +| | \--- com.google.android.gms:play-services-measurement-sdk:22.1.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) -| | +--- com.google.android.gms:play-services-measurement-base:22.0.2 (*) -| | \--- com.google.android.gms:play-services-measurement-impl:22.0.2 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.0 (*) +| | \--- com.google.android.gms:play-services-measurement-impl:22.1.0 (*) | +--- com.google.firebase:firebase-common:21.0.0 (*) | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) | +--- com.google.firebase:firebase-components:18.0.0 (*) @@ -507,7 +496,7 @@ | | +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 | | | +--- com.google.firebase:firebase-config-interop:16.0.1 | | | | +--- com.google.firebase:firebase-encoders-json:18.0.1 -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.9.20 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 2.0.0 (*) | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | | | | \--- com.google.firebase:firebase-encoders:17.0.0 | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) @@ -526,7 +515,7 @@ | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | | | \--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) -| | +--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.3 +| | +--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.4 | | | +--- com.google.firebase:firebase-common:21.0.0 (*) | | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) | | | +--- com.google.firebase:firebase-components:18.0.0 (*) @@ -534,7 +523,7 @@ | | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) | | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) | | | +--- com.google.firebase:firebase-installations:18.0.0 (*) | | | +--- com.google.firebase:firebase-datatransport:19.0.0 | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) @@ -554,85 +543,45 @@ | | | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | | | +--- com.google.android.datatransport:transport-runtime:3.2.0 -> 3.3.0 (*) -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- androidx.datastore:datastore-preferences:1.0.0 -> 1.1.1 -| | | | \--- androidx.datastore:datastore-preferences-android:1.1.1 -| | | | +--- androidx.datastore:datastore:1.1.1 -| | | | | \--- androidx.datastore:datastore-android:1.1.1 -| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) -| | | | | +--- androidx.datastore:datastore-core:1.1.1 -| | | | | | \--- androidx.datastore:datastore-core-android:1.1.1 -| | | | | | +--- androidx.annotation:annotation:1.7.0 -> 1.8.1 (*) -| | | | | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.22 -> 2.0.20 -| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | | | | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.0.20 -| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | | | | | +--- androidx.datastore:datastore:1.1.1 (c) -| | | | | | +--- androidx.datastore:datastore-core-okio:1.1.1 (c) -| | | | | | +--- androidx.datastore:datastore-preferences:1.1.1 (c) -| | | | | | \--- androidx.datastore:datastore-preferences-core:1.1.1 (c) -| | | | | +--- androidx.datastore:datastore-core-okio:1.1.1 -| | | | | | \--- androidx.datastore:datastore-core-okio-jvm:1.1.1 -| | | | | | +--- androidx.datastore:datastore-core:1.1.1 (*) -| | | | | | +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 -| | | | | | | \--- com.squareup.okio:okio-jvm:3.9.0 -| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) -| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | | | | | +--- androidx.datastore:datastore-core:1.1.1 (c) -| | | | | | +--- androidx.datastore:datastore:1.1.1 (c) -| | | | | | +--- androidx.datastore:datastore-preferences:1.1.1 (c) -| | | | | | \--- androidx.datastore:datastore-preferences-core:1.1.1 (c) -| | | | | +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | | | | +--- androidx.datastore:datastore-core:1.1.1 (c) -| | | | | +--- androidx.datastore:datastore-core-okio:1.1.1 (c) -| | | | | +--- androidx.datastore:datastore-preferences:1.1.1 (c) -| | | | | \--- androidx.datastore:datastore-preferences-core:1.1.1 (c) -| | | | +--- androidx.datastore:datastore-preferences-core:1.1.1 -| | | | | \--- androidx.datastore:datastore-preferences-core-jvm:1.1.1 -| | | | | +--- androidx.datastore:datastore-core:1.1.1 (*) -| | | | | +--- androidx.datastore:datastore-core-okio:1.1.1 (*) -| | | | | +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | +--- androidx.datastore:datastore:1.1.1 (c) -| | | | | +--- androidx.datastore:datastore-core:1.1.1 (c) -| | | | | +--- androidx.datastore:datastore-core-okio:1.1.1 (c) -| | | | | \--- androidx.datastore:datastore-preferences:1.1.1 (c) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | | | +--- androidx.datastore:datastore:1.1.1 (c) -| | | | +--- androidx.datastore:datastore-core:1.1.1 (c) -| | | | +--- androidx.datastore:datastore-core-okio:1.1.1 (c) -| | | | \--- androidx.datastore:datastore-preferences-core:1.1.1 (c) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | +--- androidx.datastore:datastore-preferences:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.20 (*) +| | | | +--- androidx.datastore:datastore:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.20 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.9.0 (*) +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) +| | | | | \--- androidx.datastore:datastore-core:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.20 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.9.0 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | \--- androidx.datastore:datastore-preferences-core:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.20 (*) +| | | | \--- androidx.datastore:datastore-core:1.0.0 (*) | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) | | | \--- androidx.annotation:annotation:1.5.0 -> 1.8.1 (*) | | +--- com.google.firebase:firebase-datatransport:18.1.8 -> 19.0.0 (*) | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | +--- androidx.lifecycle:lifecycle-process:2.3.1 -> 2.8.4 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.3.1 -> 2.8.6 (*) | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) | | +--- com.google.protobuf:protobuf-javalite:3.21.11 -> 4.26.0 | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.7.0 -| | | +--- androidx.activity:activity:1.7.0 -> 1.9.1 (*) +| | | +--- androidx.activity:activity:1.7.0 -> 1.9.2 (*) | | | +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*) | | | +--- androidx.appcompat:appcompat-resources:1.7.0 | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) -| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) | | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) -| | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) | | | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 | | | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) | | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) -| | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) | | | | \--- androidx.appcompat:appcompat:1.7.0 (c) -| | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | +--- androidx.core:core:1.13.0 -> 1.13.1 (*) | | | +--- androidx.core:core-ktx:1.13.0 -> 1.13.1 (*) | | | +--- androidx.cursoradapter:cursoradapter:1.0.0 @@ -640,40 +589,43 @@ | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.1 (*) | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) -| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) | | | +--- androidx.emoji2:emoji2:1.3.0 | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) -| | | | +--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) +| | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) -| | | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.8.4 (*) +| | | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.8.6 (*) | | | | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) | | | | \--- androidx.emoji2:emoji2-views-helper:1.3.0 (c) | | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 -> 1.3.0 -| | | | +--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) +| | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) | | | | +--- androidx.emoji2:emoji2:1.3.0 (*) | | | | \--- androidx.emoji2:emoji2:1.3.0 (c) -| | | +--- androidx.fragment:fragment:1.5.4 -> 1.7.1 (*) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.4 (*) -| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.5.4 -> 1.8.2 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.6 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.6 (*) +| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) | | | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | | +--- androidx.savedstate:savedstate:1.2.1 (*) | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | | | \--- androidx.appcompat:appcompat-resources:1.7.0 (c) | | +--- com.google.android.datatransport:transport-api:3.0.0 -> 3.2.0 (*) -| | +--- com.google.dagger:dagger:2.27 -> 2.52 (*) +| | +--- com.google.dagger:dagger:2.27 +| | | \--- javax.inject:javax.inject:1 | | \--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.12.0 -| | +--- com.squareup.okio:okio:3.6.0 -> 3.9.0 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.20 (*) +| | +--- com.squareup.okio:okio:3.6.0 -> 3.9.0 +| | | \--- com.squareup.okio:okio-jvm:3.9.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 2.0.0 (*) | +--- com.google.firebase:firebase-common:21.0.0 (*) | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) -| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) | \--- com.google.firebase:firebase-components:18.0.0 (*) -+--- com.google.firebase:firebase-crashlytics-ktx -> 19.0.3 -| +--- com.google.firebase:firebase-crashlytics:19.0.3 -| | +--- com.google.firebase:firebase-sessions:2.0.3 (*) ++--- com.google.firebase:firebase-crashlytics-ktx -> 19.1.0 +| +--- com.google.firebase:firebase-crashlytics:19.1.0 +| | +--- com.google.firebase:firebase-sessions:2.0.4 (*) | | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) | | +--- com.google.firebase:firebase-common:21.0.0 (*) @@ -685,17 +637,17 @@ | | +--- com.google.firebase:firebase-installations:18.0.0 (*) | | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) | | +--- com.google.firebase:firebase-measurement-connector:20.0.1 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) | | +--- com.google.android.datatransport:transport-backend-cct:3.3.0 (*) | | +--- com.google.android.datatransport:transport-runtime:3.3.0 (*) | | \--- androidx.annotation:annotation:1.5.0 -> 1.8.1 (*) | +--- com.google.firebase:firebase-common:21.0.0 (*) | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) -| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) | \--- com.google.firebase:firebase-components:18.0.0 (*) -+--- com.google.firebase:firebase-messaging-ktx -> 24.0.0 -| +--- com.google.firebase:firebase-messaging:24.0.0 ++--- com.google.firebase:firebase-messaging-ktx -> 24.0.1 +| +--- com.google.firebase:firebase-messaging:24.0.1 | | +--- com.google.firebase:firebase-common:21.0.0 (*) | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) | | +--- com.google.firebase:firebase-components:18.0.0 (*) @@ -714,9 +666,9 @@ | | +--- com.google.android.datatransport:transport-backend-cct:3.1.8 -> 3.3.0 (*) | | +--- com.google.android.datatransport:transport-runtime:3.1.8 -> 3.3.0 (*) | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.3.0 -| | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) -| | | +--- androidx.fragment:fragment:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.8.2 (*) | | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) | | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) @@ -729,835 +681,992 @@ | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | +--- com.google.firebase:firebase-common:21.0.0 (*) | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) -| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) | \--- com.google.firebase:firebase-components:18.0.0 (*) -+--- project :shared -| +--- org.jetbrains.compose.ui:ui-tooling-preview:1.6.11 -| | \--- androidx.compose.ui:ui-tooling-preview:1.6.7 -> 1.7.0-rc01 (*) -| +--- androidx.activity:activity-compose:1.9.1 -| | +--- androidx.activity:activity-ktx:1.9.1 -| | | +--- androidx.activity:activity:1.9.1 (*) ++--- project :core:data +| +--- androidx.core:core-ktx:1.13.1 (*) +| +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 +| | +--- androidx.tracing:tracing:1.3.0-alpha02 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | \--- androidx.tracing:tracing:1.3.0-alpha02 (c) +| +--- io.insert-koin:koin-android:4.0.0-RC2 +| | +--- io.insert-koin:koin-core:4.0.0-RC2 +| | | \--- io.insert-koin:koin-core-jvm:4.0.0-RC2 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | | +--- co.touchlab:stately-concurrency:2.0.7 +| | | | \--- co.touchlab:stately-concurrency-jvm:2.0.7 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) +| | | | \--- co.touchlab:stately-strict:2.0.7 +| | | | \--- co.touchlab:stately-strict-jvm:2.0.7 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) +| | | \--- co.touchlab:stately-concurrent-collections:2.0.7 +| | | \--- co.touchlab:stately-concurrent-collections-jvm:2.0.7 +| | | +--- co.touchlab:stately-concurrency:2.0.7 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) +| | +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 +| | | \--- io.insert-koin:koin-core-viewmodel-jvm:4.0.0-RC2 +| | | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | | +--- org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.8.0 +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.8.0 -> 2.8.6 (*) +| | | +--- org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.0 +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.0 -> 2.8.6 (*) +| | | +--- org.jetbrains.androidx.core:core-bundle:1.0.0 +| | | | \--- org.jetbrains.androidx.core:core-bundle-android:1.0.0 +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) +| | | +--- org.jetbrains.androidx.savedstate:savedstate:1.2.0 +| | | | \--- androidx.savedstate:savedstate:1.2.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- androidx.appcompat:appcompat:1.7.0 (*) +| | +--- androidx.activity:activity-ktx:1.9.1 -> 1.9.2 +| | | +--- androidx.activity:activity:1.9.2 (*) | | | +--- androidx.core:core-ktx:1.13.0 -> 1.13.1 (*) -| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.4 -| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.8.6 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.6 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (*) | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| | | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | | | \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 | | | | +--- androidx.savedstate:savedstate:1.2.1 (*) | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.20 (*) | | | | \--- androidx.savedstate:savedstate:1.2.1 (c) | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- androidx.activity:activity:1.9.1 (c) -| | | \--- androidx.activity:activity-compose:1.9.1 (c) -| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.7.0-rc01 -| | | \--- androidx.compose.runtime:runtime-saveable-android:1.7.0-rc01 -| | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | \--- androidx.compose.runtime:runtime:1.7.0-rc01 (c) -| | +--- androidx.compose.ui:ui:1.0.1 -> 1.7.0-rc01 -| | | \--- androidx.compose.ui:ui-android:1.7.0-rc01 -| | | +--- androidx.activity:activity-ktx:1.7.0 -> 1.9.1 (*) -| | | +--- androidx.annotation:annotation:1.6.0 -> 1.8.1 (*) -| | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | +--- androidx.autofill:autofill:1.0.0 -| | | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*) -| | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) -| | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | +--- androidx.compose.runtime:runtime-saveable:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 -| | | | \--- androidx.compose.ui:ui-geometry-android:1.7.0-rc01 -| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 -| | | | | \--- androidx.compose.ui:ui-util-android:1.7.0-rc01 -| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | +--- androidx.compose.ui:ui:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-text:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.0-rc01 (c) -| | | | | \--- androidx.compose.ui:ui-unit:1.7.0-rc01 (c) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | +--- androidx.compose.ui:ui:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-text:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (c) -| | | | \--- androidx.compose.ui:ui-util:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 -| | | | \--- androidx.compose.ui:ui-graphics-android:1.7.0-rc01 -| | | | +--- androidx.annotation:annotation:1.7.0 -> 1.8.1 (*) -| | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 -| | | | | \--- androidx.compose.ui:ui-unit-android:1.7.0-rc01 -| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | | | +--- androidx.collection:collection-ktx:1.2.0 -> 1.4.2 -| | | | | | +--- androidx.collection:collection:1.4.2 (*) -| | | | | | \--- androidx.collection:collection:1.4.2 (c) -| | | | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | | | +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 (*) -| | | | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | +--- androidx.compose.ui:ui:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-text:1.7.0-rc01 (c) -| | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.0-rc01 (c) -| | | | | \--- androidx.compose.ui:ui-util:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) -| | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) -| | | | +--- androidx.graphics:graphics-path:1.0.1 -| | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) -| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | +--- androidx.compose.ui:ui:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-text:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (c) -| | | | \--- androidx.compose.ui:ui-util:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-text:1.7.0-rc01 -| | | | \--- androidx.compose.ui:ui-text-android:1.7.0-rc01 -| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | | +--- androidx.compose.runtime:runtime-saveable:1.6.0 -> 1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) -| | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*) -| | | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | | | +--- androidx.compose.ui:ui:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.0-rc01 (c) -| | | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (c) -| | | | \--- androidx.compose.ui:ui-util:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) -| | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) -| | | +--- androidx.customview:customview-poolingcontainer:1.0.0 -| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.13.1 (*) -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.0.20 (*) -| | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*) -| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.3 -> 2.8.4 -| | | | \--- androidx.lifecycle:lifecycle-runtime-compose-android:2.8.4 -| | | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) -| | | | +--- androidx.compose.runtime:runtime:1.6.5 -> 1.7.0-rc01 (*) -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (*) -| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (*) -| | | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | | | \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.4 (*) -| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*) -| | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | | +--- androidx.compose.ui:ui-geometry:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-text:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-tooling-preview:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (c) -| | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (c) -| | | \--- androidx.compose.foundation:foundation:1.7.0-rc01 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.4 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- androidx.activity:activity:1.9.1 (c) -| | \--- androidx.activity:activity-ktx:1.9.1 (c) -| +--- io.insert-koin:koin-android:3.6.0-Beta4 -| | +--- io.insert-koin:koin-core:3.6.0-Beta4 -| | | \--- io.insert-koin:koin-core-jvm:3.6.0-Beta4 -| | | +--- co.touchlab:stately-concurrency:2.0.6 -| | | | \--- co.touchlab:stately-concurrency-jvm:2.0.6 -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 -> 1.9.20 (*) -| | | | \--- co.touchlab:stately-strict:2.0.6 -| | | | \--- co.touchlab:stately-strict-jvm:2.0.6 -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 -> 1.9.20 (*) -| | | +--- co.touchlab:stately-concurrent-collections:2.0.6 -| | | | \--- co.touchlab:stately-concurrent-collections-jvm:2.0.6 -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 -> 1.9.20 (*) -| | | | \--- co.touchlab:stately-concurrency:2.0.6 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) -| | +--- androidx.appcompat:appcompat:1.6.1 -> 1.7.0 (*) -| | +--- androidx.activity:activity-ktx:1.9.0 -> 1.9.1 (*) -| | +--- androidx.fragment:fragment-ktx:1.7.1 -| | | +--- androidx.activity:activity-ktx:1.8.1 -> 1.9.1 (*) -| | | +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.2 (*) +| | | +--- androidx.activity:activity:1.9.2 (c) +| | | \--- androidx.activity:activity-compose:1.9.2 (c) +| | +--- androidx.fragment:fragment-ktx:1.8.2 +| | | +--- androidx.activity:activity-ktx:1.8.1 -> 1.9.2 (*) +| | | +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 +| | | | +--- androidx.collection:collection:1.4.4 (*) +| | | | \--- androidx.collection:collection:1.4.4 (c) | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*) -| | | +--- androidx.fragment:fragment:1.7.1 (*) -| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.4 (*) +| | | +--- androidx.fragment:fragment:1.8.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.8.6 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.6 (*) | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | \--- androidx.fragment:fragment:1.7.1 (c) -| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.0 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.0 -> 2.8.4 +| | | \--- androidx.fragment:fragment:1.8.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 -> 2.8.6 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 -> 2.8.6 | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) -| +--- io.insert-koin:koin-androidx-compose:3.6.0-Beta4 -| | +--- io.insert-koin:koin-android:3.6.0-Beta4 (*) -| | +--- io.insert-koin:koin-compose:1.2.0-Beta4 -| | | \--- io.insert-koin:koin-compose-jvm:1.2.0-Beta4 -| | | +--- io.insert-koin:koin-core:3.6.0-Beta4 (*) -| | | +--- org.jetbrains.compose.runtime:runtime:1.6.10-rc03 -> 1.6.11 -| | | | \--- androidx.compose.runtime:runtime:1.6.7 -> 1.7.0-rc01 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) -| | +--- androidx.compose.runtime:runtime:1.6.7 -> 1.7.0-rc01 (*) -| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0 -> 2.8.4 -| | | \--- androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.4 -| | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) -| | | +--- androidx.compose.runtime:runtime:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-service:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) -| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.4 (c) -| | | \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) -| +--- io.insert-koin:koin-core:3.6.0-Beta4 (*) -| +--- com.squareup.wire:wire-runtime:5.0.0 -| | \--- com.squareup.wire:wire-runtime-jvm:5.0.0 -| | +--- com.squareup.okio:okio:3.9.0 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) -| +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| +--- org.jetbrains.compose.runtime:runtime:1.6.11 (*) -| +--- org.jetbrains.compose.material3:material3:1.6.11 -| | \--- androidx.compose.material3:material3:1.2.1 -| | \--- androidx.compose.material3:material3-android:1.2.1 -| | +--- androidx.activity:activity-compose:1.5.0 -> 1.9.1 (*) -| | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | +--- androidx.compose.animation:animation-core:1.6.0 -> 1.7.0-rc01 -| | | \--- androidx.compose.animation:animation-core-android:1.7.0-rc01 -| | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-unit:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) -| | | +--- androidx.compose.animation:animation:1.7.0-rc01 (c) -| | | \--- androidx.compose.animation:animation-graphics:1.7.0-rc01 (c) -| | +--- androidx.compose.foundation:foundation:1.6.0 -> 1.7.0-rc01 -| | | \--- androidx.compose.foundation:foundation-android:1.7.0-rc01 -| | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | +--- androidx.compose.animation:animation:1.7.0-rc01 -| | | | \--- androidx.compose.animation:animation-android:1.7.0-rc01 -| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | | +--- androidx.compose.animation:animation-core:1.7.0-rc01 (*) -| | | | +--- androidx.compose.foundation:foundation-layout:1.6.0 -> 1.7.0-rc01 -| | | | | \--- androidx.compose.foundation:foundation-layout-android:1.7.0-rc01 -| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | | | +--- androidx.compose.animation:animation-core:1.2.1 -> 1.7.0-rc01 (*) -| | | | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.0-rc01 (*) -| | | | | +--- androidx.compose.ui:ui-unit:1.7.0-rc01 (*) -| | | | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) -| | | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*) -| | | | | \--- androidx.compose.foundation:foundation:1.7.0-rc01 (c) -| | | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui:1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-geometry:1.6.0 -> 1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-graphics:1.7.0-rc01 (*) -| | | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) -| | | | +--- androidx.compose.animation:animation-core:1.7.0-rc01 (c) -| | | | \--- androidx.compose.animation:animation-graphics:1.7.0-rc01 (c) -| | | +--- androidx.compose.foundation:foundation-layout:1.7.0-rc01 (*) -| | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-text:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-util:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.core:core:1.13.1 (*) -| | | +--- androidx.emoji2:emoji2:1.3.0 (*) -| | | \--- androidx.compose.foundation:foundation-layout:1.7.0-rc01 (c) -| | +--- androidx.compose.foundation:foundation-layout:1.6.0 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.material:material-icons-core:1.6.0 -> 1.6.8 -| | | \--- androidx.compose.material:material-icons-core-android:1.6.8 -| | | +--- androidx.compose.ui:ui:1.6.8 -> 1.7.0-rc01 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- androidx.compose.material:material-icons-extended:1.6.8 (c) -| | | \--- androidx.compose.material:material-ripple:1.6.8 (c) -| | +--- androidx.compose.material:material-ripple:1.6.0 -> 1.6.8 -| | | \--- androidx.compose.material:material-ripple-android:1.6.8 -| | | +--- androidx.compose.animation:animation:1.6.8 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.foundation:foundation:1.6.8 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-util:1.6.8 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.material:material-icons-core:1.6.8 (c) -| | | \--- androidx.compose.material:material-icons-extended:1.6.8 (c) -| | +--- androidx.compose.runtime:runtime:1.6.0 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui-graphics:1.6.0 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui-text:1.6.0 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui-util:1.6.0 -> 1.7.0-rc01 (*) -| | +--- androidx.lifecycle:lifecycle-common-java8:2.6.1 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.4 (*) -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.4 (*) -| | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) -| | \--- androidx.compose.material3:material3-window-size-class:1.2.1 (c) -| +--- org.jetbrains.compose.ui:ui:1.6.11 -| | \--- androidx.compose.ui:ui:1.6.7 -> 1.7.0-rc01 (*) -| +--- org.jetbrains.compose.components:components-resources:1.6.11 -| | \--- org.jetbrains.compose.components:components-resources-android:1.6.11 -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) -| | +--- org.jetbrains.compose.runtime:runtime:1.6.11 (*) -| | +--- org.jetbrains.compose.foundation:foundation:1.6.11 -| | | \--- androidx.compose.foundation:foundation:1.6.7 -> 1.7.0-rc01 (*) -| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.8.1 (*) -| +--- org.jetbrains.compose.components:components-ui-tooling-preview:1.6.11 -| | \--- org.jetbrains.compose.components:components-ui-tooling-preview-android:1.6.11 -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) -| +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 -| | \--- org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0 -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) -| +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1 -| | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.1 -| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.1 -| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.1 (c) -| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.1 (c) -| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1 (c) -| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.1 (c) -| | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.1 -| | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.1 -| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.1 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 -> 2.0.20 -| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| +--- io.insert-koin:koin-compose:1.2.0-Beta4 (*) -| +--- io.insert-koin:koin-compose-viewmodel:1.2.0-Beta4 -| | \--- io.insert-koin:koin-compose-viewmodel-jvm:1.2.0-Beta4 -| | +--- io.insert-koin:koin-compose:1.2.0-Beta4 (*) -| | +--- org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0-rc03 -| | | \--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0 -> 2.8.4 (*) -| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.7.0-alpha06 -| | | \--- androidx.navigation:navigation-compose:2.7.7 -> 2.8.0-rc01 -| | | +--- androidx.activity:activity-compose:1.8.0 -> 1.9.1 (*) -| | | +--- androidx.compose.animation:animation:1.7.0-rc01 (*) -| | | +--- androidx.compose.foundation:foundation-layout:1.7.0-rc01 (*) -| | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | +--- androidx.compose.runtime:runtime-saveable:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui:1.7.0-rc01 (*) -| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2 -> 2.8.4 (*) -| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.0-rc01 -| | | | +--- androidx.navigation:navigation-common-ktx:2.8.0-rc01 -| | | | | +--- androidx.navigation:navigation-common:2.8.0-rc01 -| | | | | | +--- androidx.annotation:annotation:1.8.1 (*) -| | | | | | +--- androidx.collection:collection-ktx:1.4.2 (*) -| | | | | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*) -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 -> 2.8.4 (*) -| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.4 (*) -| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.4 (*) -| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 -> 2.8.4 (*) -| | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*) -| | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) -| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.1 (*) -| | | | | | +--- androidx.navigation:navigation-common-ktx:2.8.0-rc01 (c) -| | | | | | +--- androidx.navigation:navigation-compose:2.8.0-rc01 (c) -| | | | | | +--- androidx.navigation:navigation-runtime:2.8.0-rc01 (c) -| | | | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.0-rc01 (c) -| | | | | +--- androidx.navigation:navigation-common:2.8.0-rc01 (c) -| | | | | +--- androidx.navigation:navigation-compose:2.8.0-rc01 (c) -| | | | | +--- androidx.navigation:navigation-runtime:2.8.0-rc01 (c) -| | | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.0-rc01 (c) -| | | | +--- androidx.navigation:navigation-runtime:2.8.0-rc01 -| | | | | +--- androidx.activity:activity-ktx:1.7.1 -> 1.9.1 (*) -| | | | | +--- androidx.annotation:annotation-experimental:1.4.1 (*) -| | | | | +--- androidx.collection:collection:1.4.2 (*) -| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.4 (*) -| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.4 (*) -| | | | | +--- androidx.navigation:navigation-common:2.8.0-rc01 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.1 (*) -| | | | | +--- androidx.navigation:navigation-common:2.8.0-rc01 (c) -| | | | | +--- androidx.navigation:navigation-common-ktx:2.8.0-rc01 (c) -| | | | | +--- androidx.navigation:navigation-compose:2.8.0-rc01 (c) -| | | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.0-rc01 (c) -| | | | +--- androidx.navigation:navigation-common-ktx:2.8.0-rc01 (c) -| | | | +--- androidx.navigation:navigation-compose:2.8.0-rc01 (c) -| | | | +--- androidx.navigation:navigation-runtime:2.8.0-rc01 (c) -| | | | \--- androidx.navigation:navigation-common:2.8.0-rc01 (c) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.1 (*) -| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.0-rc01 (c) -| | | +--- androidx.navigation:navigation-runtime:2.8.0-rc01 (c) -| | | +--- androidx.navigation:navigation-common-ktx:2.8.0-rc01 (c) -| | | \--- androidx.navigation:navigation-common:2.8.0-rc01 (c) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) -| +--- androidx.datastore:datastore-core-okio:1.1.1 (*) -| \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.20 (*) -+--- project :core:data +| | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) | +--- project :core:common +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0 (*) +| | +--- io.coil-kt.coil3:coil:3.0.0-alpha10 +| | | \--- io.coil-kt.coil3:coil-android:3.0.0-alpha10 +| | | +--- io.coil-kt.coil3:coil-core:3.0.0-alpha10 +| | | | \--- io.coil-kt.coil3:coil-core-android:3.0.0-alpha10 +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 -> 2.8.6 (*) +| | | | +--- androidx.annotation:annotation:1.8.1 (*) +| | | | +--- androidx.appcompat:appcompat-resources:1.7.0 (*) +| | | | +--- androidx.core:core-ktx:1.13.1 (*) +| | | | +--- androidx.exifinterface:exifinterface:1.3.7 +| | | | | \--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) +| | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.9.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.9.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.0.20 (*) +| | | | \--- com.squareup.okio:okio:3.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.0.20 (*) +| | +--- io.coil-kt.coil3:coil-core:3.0.0-alpha10 (*) +| | +--- io.coil-kt.coil3:coil-svg:3.0.0-alpha10 +| | | \--- io.coil-kt.coil3:coil-svg-android:3.0.0-alpha10 +| | | +--- androidx.core:core-ktx:1.13.1 (*) +| | | +--- com.caverock:androidsvg-aar:1.4 +| | | +--- io.coil-kt.coil3:coil-core:3.0.0-alpha10 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.0.20 (*) +| | +--- io.coil-kt.coil3:coil-network-ktor3:3.0.0-alpha10 +| | | \--- io.coil-kt.coil3:coil-network-ktor3-android:3.0.0-alpha10 +| | | +--- io.coil-kt.coil3:coil-core:3.0.0-alpha10 (*) +| | | +--- io.coil-kt.coil3:coil-network-core:3.0.0-alpha10 +| | | | \--- io.coil-kt.coil3:coil-network-core-android:3.0.0-alpha10 +| | | | +--- androidx.core:core-ktx:1.13.1 (*) +| | | | +--- io.coil-kt.coil3:coil-core:3.0.0-alpha10 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.0.20 (*) +| | | +--- io.ktor:ktor-client-core:3.0.0-beta-2 +| | | | \--- io.ktor:ktor-client-core-jvm:3.0.0-beta-2 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0 (*) +| | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | +--- io.ktor:ktor-http:3.0.0-beta-2 +| | | | | \--- io.ktor:ktor-http-jvm:3.0.0-beta-2 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | +--- io.ktor:ktor-utils:3.0.0-beta-2 +| | | | | | \--- io.ktor:ktor-utils-jvm:3.0.0-beta-2 +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | | +--- io.ktor:ktor-io:3.0.0-beta-2 +| | | | | | | \--- io.ktor:ktor-io-jvm:3.0.0-beta-2 +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-io-core:0.5.1 +| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.5.1 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-io-bytestring:0.5.1 +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.5.1 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | +--- io.ktor:ktor-events:3.0.0-beta-2 +| | | | | \--- io.ktor:ktor-events-jvm:3.0.0-beta-2 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | +--- io.ktor:ktor-http:3.0.0-beta-2 (*) +| | | | | +--- io.ktor:ktor-utils:3.0.0-beta-2 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | +--- io.ktor:ktor-websocket-serialization:3.0.0-beta-2 +| | | | | \--- io.ktor:ktor-websocket-serialization-jvm:3.0.0-beta-2 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | +--- io.ktor:ktor-http:3.0.0-beta-2 (*) +| | | | | +--- io.ktor:ktor-serialization:3.0.0-beta-2 +| | | | | | \--- io.ktor:ktor-serialization-jvm:3.0.0-beta-2 +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | | +--- io.ktor:ktor-http:3.0.0-beta-2 (*) +| | | | | | +--- io.ktor:ktor-websockets:3.0.0-beta-2 +| | | | | | | \--- io.ktor:ktor-websockets-jvm:3.0.0-beta-2 +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | | | +--- io.ktor:ktor-http:3.0.0-beta-2 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | +--- io.ktor:ktor-sse:3.0.0-beta-2 +| | | | | \--- io.ktor:ktor-sse-jvm:3.0.0-beta-2 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0 -> 1.9.0 (*) +| | | | | +--- org.slf4j:slf4j-api:2.0.13 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | | | | +--- io.ktor:ktor-http:3.0.0-beta-2 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.8.0 -> 1.9.0 +| | | | +--- org.slf4j:slf4j-api:1.7.32 -> 2.0.13 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.0.20 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 -| | | +--- androidx.tracing:tracing:1.3.0-alpha02 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | | \--- androidx.tracing:tracing:1.3.0-alpha02 (c) -| | \--- com.google.dagger:hilt-android:2.52 (*) -| +--- project :core:model -| | +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 +| | | +--- io.insert-koin:koin-core:4.0.0-RC2 (c) +| | | +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (c) +| | | +--- io.insert-koin:koin-android:4.0.0-RC2 (c) +| | | +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (c) +| | | +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (c) +| | | \--- io.insert-koin:koin-compose:4.0.0-RC2 (c) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 +| | | \--- io.insert-koin:koin-annotations-jvm:1.4.0-RC4 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.20 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| +--- project :core:datastore | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | +--- com.squareup.retrofit2:converter-gson:2.11.0 -| | | +--- com.squareup.retrofit2:retrofit:2.11.0 -| | | | \--- com.squareup.okhttp3:okhttp:3.14.9 -> 4.12.0 (*) -| | | \--- com.google.code.gson:gson:2.10.1 -| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1 (*) -| | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.20 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| | +--- com.russhwolf:multiplatform-settings-no-arg:1.2.0 +| | | \--- com.russhwolf:multiplatform-settings-no-arg-android:1.2.0 +| | | +--- androidx.startup:startup-runtime:1.1.1 (*) +| | | +--- com.russhwolf:multiplatform-settings:1.2.0 +| | | | \--- com.russhwolf:multiplatform-settings-android:1.2.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | +--- com.russhwolf:multiplatform-settings-serialization:1.2.0 +| | | \--- com.russhwolf:multiplatform-settings-serialization-android:1.2.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | +--- com.russhwolf:multiplatform-settings:1.2.0 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.2 +| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.2 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.0.20 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.2 +| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.2 (c) +| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.2 (c) +| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.2 (c) +| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.2 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (c) +| | +--- com.russhwolf:multiplatform-settings-coroutines:1.2.0 +| | | \--- com.russhwolf:multiplatform-settings-coroutines-android:1.2.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | +--- com.russhwolf:multiplatform-settings:1.2.0 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.2 (*) +| | +--- project :core:model +| | | +--- com.squareup.retrofit2:converter-gson:2.11.0 +| | | | +--- com.squareup.retrofit2:retrofit:2.11.0 +| | | | | \--- com.squareup.okhttp3:okhttp:3.14.9 -> 4.12.0 (*) +| | | | \--- com.google.code.gson:gson:2.10.1 +| | | +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 +| | | | \--- org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.2 +| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.2 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.0.20 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.2 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (c) +| | | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.20 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.0.20 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- project :core:common (*) +| | \--- project :core:datastore-proto +| | +--- com.google.protobuf:protobuf-kotlin-lite:4.26.0 +| | | +--- com.google.protobuf:protobuf-javalite:4.26.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 2.0.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.2 (*) | +--- project :core:network +| | +--- io.ktor:ktor-client-android:2.3.4 +| | | \--- io.ktor:ktor-client-android-jvm:2.3.4 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | +--- io.ktor:ktor-client-core:2.3.4 -> 3.0.0-beta-2 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | +--- io.insert-koin:koin-android:4.0.0-RC2 (*) | | +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 (*) | | +--- project :core:common (*) | | +--- project :core:model (*) -| | +--- project :core:datastore -| | | +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 (*) -| | | +--- androidx.datastore:datastore:1.1.1 (*) -| | | +--- project :core:datastore-proto -| | | | +--- com.google.protobuf:protobuf-kotlin-lite:4.26.0 -| | | | | +--- com.google.protobuf:protobuf-javalite:4.26.0 -| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 2.0.20 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | | | \--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | | +--- project :core:common (*) -| | | +--- project :core:model (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | | +--- com.google.dagger:hilt-android:2.52 (*) -| | | \--- com.squareup.retrofit2:converter-gson:2.11.0 (*) -| | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | +--- com.google.dagger:hilt-android:2.52 (*) -| | +--- com.squareup.okhttp3:okhttp:4.12.0 (*) -| | +--- com.squareup.okhttp3:logging-interceptor:4.12.0 -| | | +--- com.squareup.okhttp3:okhttp:4.12.0 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.20 (*) -| | +--- com.squareup.retrofit2:retrofit:2.11.0 (*) -| | +--- com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0 -| | | +--- com.squareup.retrofit2:retrofit:2.9.0 -> 2.11.0 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.0 -> 1.7.1 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10 -> 1.9.20 (*) -| | +--- com.squareup.retrofit2:adapter-rxjava:2.11.0 -| | | +--- com.squareup.retrofit2:retrofit:2.11.0 (*) -| | | \--- io.reactivex:rxjava:1.3.8 -| | +--- com.squareup.retrofit2:converter-gson:2.11.0 (*) -| | +--- io.reactivex:rxandroid:1.1.0 -| | | \--- io.reactivex:rxjava:1.1.0 -> 1.3.8 -| | +--- io.reactivex:rxjava:1.3.8 -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.0 -> 2.0.20 (*) -| | +--- io.ktor:ktor-client-core:2.3.4 -| | | \--- io.ktor:ktor-client-core-jvm:2.3.4 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) -| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1 (*) -| | | +--- org.slf4j:slf4j-api:1.7.36 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | +--- io.ktor:ktor-http:2.3.4 -| | | | \--- io.ktor:ktor-http-jvm:2.3.4 -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | +--- io.ktor:ktor-utils:2.3.4 -| | | | | \--- io.ktor:ktor-utils-jvm:2.3.4 -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | | +--- io.ktor:ktor-io:2.3.4 -| | | | | | \--- io.ktor:ktor-io-jvm:2.3.4 -| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | +--- io.ktor:ktor-events:2.3.4 -| | | | \--- io.ktor:ktor-events-jvm:2.3.4 -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | +--- io.ktor:ktor-http:2.3.4 (*) -| | | | +--- io.ktor:ktor-utils:2.3.4 (*) -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | +--- io.ktor:ktor-websocket-serialization:2.3.4 -| | | | \--- io.ktor:ktor-websocket-serialization-jvm:2.3.4 -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | +--- io.ktor:ktor-http:2.3.4 (*) -| | | | +--- io.ktor:ktor-serialization:2.3.4 -| | | | | \--- io.ktor:ktor-serialization-jvm:2.3.4 -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | | +--- io.ktor:ktor-http:2.3.4 (*) -| | | | | +--- io.ktor:ktor-websockets:2.3.4 -| | | | | | \--- io.ktor:ktor-websockets-jvm:2.3.4 -| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | | | +--- io.ktor:ktor-http:2.3.4 (*) -| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.7.2 -> 1.8.1 -| | | +--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) -| | +--- io.ktor:ktor-client-android:2.3.4 -| | | \--- io.ktor:ktor-client-android-jvm:2.3.4 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | +--- org.slf4j:slf4j-api:1.7.36 -| | | +--- io.ktor:ktor-client-core:2.3.4 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | +--- io.ktor:ktor-client-serialization:2.3.4 -| | | \--- io.ktor:ktor-client-serialization-jvm:2.3.4 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | +--- org.slf4j:slf4j-api:1.7.36 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | +--- io.ktor:ktor-client-core:2.3.4 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.1 (*) -| | | +--- io.ktor:ktor-client-json:2.3.4 -| | | | \--- io.ktor:ktor-client-json-jvm:2.3.4 -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | +--- io.ktor:ktor-client-core:2.3.4 (*) -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.2 (*) +| | +--- io.ktor:ktor-client-core:2.3.4 -> 3.0.0-beta-2 (*) +| | +--- io.ktor:ktor-client-json:2.3.4 +| | | \--- io.ktor:ktor-client-json-jvm:2.3.4 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | \--- io.ktor:ktor-client-core:2.3.4 -> 3.0.0-beta-2 (*) | | +--- io.ktor:ktor-client-logging:2.3.4 | | | \--- io.ktor:ktor-client-logging-jvm:2.3.4 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | +--- org.slf4j:slf4j-api:1.7.36 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | +--- io.ktor:ktor-client-core:2.3.4 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | \--- io.ktor:ktor-client-core:2.3.4 -> 3.0.0-beta-2 (*) +| | +--- io.ktor:ktor-client-serialization:2.3.4 +| | | \--- io.ktor:ktor-client-serialization-jvm:2.3.4 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | +--- io.ktor:ktor-client-core:2.3.4 -> 3.0.0-beta-2 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.2 (*) +| | | \--- io.ktor:ktor-client-json:2.3.4 (*) | | +--- io.ktor:ktor-client-content-negotiation:2.3.4 | | | \--- io.ktor:ktor-client-content-negotiation-jvm:2.3.4 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | +--- org.slf4j:slf4j-api:1.7.36 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | +--- io.ktor:ktor-client-core:2.3.4 (*) -| | | +--- io.ktor:ktor-serialization:2.3.4 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | +--- io.ktor:ktor-client-json:2.3.4 (*) -| | +--- io.ktor:ktor-client-websockets:2.3.4 -| | | \--- io.ktor:ktor-client-websockets-jvm:2.3.4 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | +--- org.slf4j:slf4j-api:1.7.36 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | +--- io.ktor:ktor-client-core:2.3.4 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | +--- io.ktor:ktor-client-core:2.3.4 -> 3.0.0-beta-2 (*) +| | | \--- io.ktor:ktor-serialization:2.3.4 -> 3.0.0-beta-2 (*) | | +--- io.ktor:ktor-serialization-kotlinx-json:2.3.4 | | | \--- io.ktor:ktor-serialization-kotlinx-json-jvm:2.3.4 -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | +--- org.slf4j:slf4j-api:1.7.36 -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | +--- io.ktor:ktor-http:2.3.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | +--- io.ktor:ktor-http:2.3.4 -> 3.0.0-beta-2 (*) | | | +--- io.ktor:ktor-serialization-kotlinx:2.3.4 | | | | \--- io.ktor:ktor-serialization-kotlinx-jvm:2.3.4 -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.8.1 (*) -| | | | +--- org.slf4j:slf4j-api:1.7.36 -| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.8.1 (*) -| | | | +--- io.ktor:ktor-http:2.3.4 (*) -| | | | +--- io.ktor:ktor-serialization:2.3.4 (*) -| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1 -> 1.7.1 (*) -| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.1 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | \--- ch.qos.logback:logback-classic:1.2.3 -| | +--- ch.qos.logback:logback-core:1.2.3 -| | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | | +--- io.ktor:ktor-http:2.3.4 -> 3.0.0-beta-2 (*) +| | | | +--- io.ktor:ktor-serialization:2.3.4 -> 3.0.0-beta-2 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1 -> 1.7.2 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.2 (*) +| | +--- de.jensklingenberg.ktorfit:ktorfit-lib:2.1.0 +| | | \--- de.jensklingenberg.ktorfit:ktorfit-lib-android:2.1.0 +| | | +--- io.ktor:ktor-client-cio-jvm:2.3.12 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | | +--- io.ktor:ktor-client-core:2.3.12 -> 3.0.0-beta-2 (*) +| | | | +--- io.ktor:ktor-http-cio:2.3.12 +| | | | | \--- io.ktor:ktor-http-cio-jvm:2.3.12 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | | | +--- io.ktor:ktor-network:2.3.12 +| | | | | | \--- io.ktor:ktor-network-jvm:2.3.12 +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | | | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | | | | \--- io.ktor:ktor-utils:2.3.12 -> 3.0.0-beta-2 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | | | \--- io.ktor:ktor-http:2.3.12 -> 3.0.0-beta-2 (*) +| | | | +--- io.ktor:ktor-websockets:2.3.12 -> 3.0.0-beta-2 (*) +| | | | \--- io.ktor:ktor-network-tls:2.3.12 +| | | | \--- io.ktor:ktor-network-tls-jvm:2.3.12 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.9.0 (*) +| | | | +--- org.slf4j:slf4j-api:1.7.36 -> 2.0.13 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.9.0 (*) +| | | | +--- io.ktor:ktor-http:2.3.12 -> 3.0.0-beta-2 (*) +| | | | +--- io.ktor:ktor-network:2.3.12 (*) +| | | | \--- io.ktor:ktor-utils:2.3.12 -> 3.0.0-beta-2 (*) +| | | +--- de.jensklingenberg.ktorfit:ktorfit-lib-light:2.1.0 +| | | | \--- de.jensklingenberg.ktorfit:ktorfit-lib-light-android:2.1.0 +| | | | +--- de.jensklingenberg.ktorfit:ktorfit-annotations:2.1.0 +| | | | | \--- de.jensklingenberg.ktorfit:ktorfit-annotations-android:2.1.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | | +--- io.ktor:ktor-client-core:2.3.12 -> 3.0.0-beta-2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | +--- de.jensklingenberg.ktorfit:ktorfit-converters-call:2.1.0 +| | | \--- de.jensklingenberg.ktorfit:ktorfit-converters-call-android:2.1.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | | \--- de.jensklingenberg.ktorfit:ktorfit-lib-light:2.1.0 (*) +| | \--- de.jensklingenberg.ktorfit:ktorfit-converters-flow:2.1.0 +| | \--- de.jensklingenberg.ktorfit:ktorfit-converters-flow-android:2.1.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.0.20 (*) +| | \--- de.jensklingenberg.ktorfit:ktorfit-lib-light:2.1.0 (*) +| +--- project :core:model (*) | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) -| +--- com.squareup.retrofit2:retrofit:2.11.0 (*) -| +--- com.squareup.retrofit2:adapter-rxjava:2.11.0 (*) -| +--- com.squareup.retrofit2:converter-gson:2.11.0 (*) -| +--- com.squareup.okhttp3:okhttp:4.12.0 (*) -| +--- com.squareup.okhttp3:logging-interceptor:4.12.0 (*) -| +--- io.reactivex:rxandroid:1.1.0 (*) -| +--- io.reactivex:rxjava:1.3.8 +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| +--- project :core:analytics +| | +--- com.google.firebase:firebase-bom:33.3.0 (*) +| | +--- com.google.firebase:firebase-analytics-ktx -> 22.1.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| | \--- org.jetbrains.compose.runtime:runtime:1.6.11 +| | \--- androidx.compose.runtime:runtime:1.6.7 -> 1.7.2 (*) | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.20 (*) +--- project :core:ui -| +--- project :core:designsystem -| | +--- androidx.compose.ui:ui:1.6.8 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.foundation:foundation -> 1.7.0-rc01 (*) -| | +--- androidx.compose.foundation:foundation-layout -> 1.7.0-rc01 (*) -| | +--- androidx.compose.material:material-icons-extended -> 1.6.8 -| | | \--- androidx.compose.material:material-icons-extended-android:1.6.8 -| | | +--- androidx.compose.material:material-icons-core:1.6.8 (*) -| | | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.material:material-icons-core:1.6.8 (c) -| | | \--- androidx.compose.material:material-ripple:1.6.8 (c) -| | +--- androidx.compose.material3:material3 -> 1.2.1 (*) -| | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui-util:1.6.8 -> 1.7.0-rc01 (*) -| | +--- androidx.activity:activity-compose:1.9.1 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | +--- androidx.compose:compose-bom:2024.08.00 (*) -| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| | \--- project :core:model (*) -| +--- project :core:model (*) -| +--- project :core:common (*) | +--- androidx.metrics:metrics-performance:1.0.0-beta01 -| | +--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) +| | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) | | +--- androidx.core:core:1.5.0 -> 1.13.1 (*) | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| +--- project :core:analytics -| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | +--- androidx.compose:compose-bom:2024.08.00 (*) -| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| | +--- com.google.dagger:hilt-android:2.52 (*) -| | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| | +--- com.google.firebase:firebase-bom:33.1.2 (*) -| | \--- com.google.firebase:firebase-analytics-ktx -> 22.0.2 (*) -| +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) -| +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| +--- com.google.accompanist:accompanist-pager:0.34.0 -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.8.1 (*) -| | +--- androidx.compose.foundation:foundation:1.6.0 -> 1.7.0-rc01 (*) -| | +--- dev.chrisbanes.snapper:snapper:0.2.2 -> 0.3.0 -| | | +--- androidx.compose.foundation:foundation:1.2.1 -> 1.7.0-rc01 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.9.20 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*) | +--- androidx.browser:browser:1.8.0 | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | +--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) +| | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) | | +--- androidx.interpolator:interpolator:1.0.0 (*) | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava -| +--- io.coil-kt:coil:2.6.0 -| | +--- io.coil-kt:coil-base:2.6.0 -| | | +--- androidx.annotation:annotation:1.7.1 -> 1.8.1 (*) -| | | +--- androidx.appcompat:appcompat-resources:1.6.1 -> 1.7.0 (*) -| | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) -| | | +--- androidx.exifinterface:exifinterface:1.3.7 -| | | | \--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) -| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*) -| | | +--- androidx.lifecycle:lifecycle-runtime:2.7.0 -> 2.8.4 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*) -| | | +--- com.squareup.okhttp3:okhttp:4.12.0 (*) -| | | \--- com.squareup.okio:okio:3.8.0 -> 3.9.0 (*) +| +--- androidx.compose.runtime:runtime -> 1.7.2 (*) +| +--- com.google.accompanist:accompanist-pager:0.34.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.9.0 (*) +| | +--- androidx.compose.foundation:foundation:1.6.0 -> 1.7.2 +| | | \--- androidx.compose.foundation:foundation-android:1.7.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | +--- androidx.compose.animation:animation:1.7.2 +| | | | \--- androidx.compose.animation:animation-android:1.7.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | +--- androidx.compose.animation:animation-core:1.7.2 +| | | | | \--- androidx.compose.animation:animation-core-android:1.7.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | +--- androidx.compose.ui:ui:1.7.2 +| | | | | | \--- androidx.compose.ui:ui-android:1.7.2 +| | | | | | +--- androidx.activity:activity-ktx:1.7.0 -> 1.9.2 (*) +| | | | | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) +| | | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | | | +--- androidx.autofill:autofill:1.0.0 +| | | | | | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) +| | | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | | +--- androidx.compose.runtime:runtime-saveable:1.7.2 +| | | | | | | \--- androidx.compose.runtime:runtime-saveable-android:1.7.2 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | \--- androidx.compose.runtime:runtime:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-geometry:1.7.2 +| | | | | | | \--- androidx.compose.ui:ui-geometry-android:1.7.2 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | | | +--- androidx.compose.ui:ui-util:1.7.2 +| | | | | | | | \--- androidx.compose.ui:ui-util-android:1.7.2 +| | | | | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | | +--- androidx.compose.ui:ui:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-geometry:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.2 (c) +| | | | | | | | \--- androidx.compose.ui:ui-unit:1.7.2 (c) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | +--- androidx.compose.ui:ui:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-text:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (c) +| | | | | | | \--- androidx.compose.ui:ui-util:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 +| | | | | | | \--- androidx.compose.ui:ui-graphics-android:1.7.2 +| | | | | | | +--- androidx.annotation:annotation:1.7.0 -> 1.8.1 (*) +| | | | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.2 +| | | | | | | | \--- androidx.compose.ui:ui-unit-android:1.7.2 +| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) +| | | | | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | | | | | +--- androidx.collection:collection-ktx:1.2.0 -> 1.4.4 (*) +| | | | | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | | | | +--- androidx.compose.ui:ui-geometry:1.7.2 (*) +| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | | +--- androidx.compose.ui:ui:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-geometry:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.2 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.2 (c) +| | | | | | | | \--- androidx.compose.ui:ui-util:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) +| | | | | | | +--- androidx.graphics:graphics-path:1.0.1 +| | | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | +--- androidx.compose.ui:ui:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-geometry:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-text:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (c) +| | | | | | | \--- androidx.compose.ui:ui-util:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-text:1.7.2 +| | | | | | | \--- androidx.compose.ui:ui-text-android:1.7.2 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | | | +--- androidx.compose.runtime:runtime-saveable:1.7.2 (*) +| | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (*) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (*) +| | | | | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*) +| | | | | | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) +| | | | | | | +--- androidx.compose.ui:ui:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-geometry:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.2 (c) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (c) +| | | | | | | \--- androidx.compose.ui:ui-util:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (*) +| | | | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) +| | | | | | +--- androidx.customview:customview-poolingcontainer:1.0.0 +| | | | | | | +--- androidx.core:core-ktx:1.5.0 -> 1.13.1 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.0.20 (*) +| | | | | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.3 -> 2.8.6 +| | | | | | | \--- androidx.lifecycle:lifecycle-runtime-compose-android:2.8.6 +| | | | | | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) +| | | | | | | +--- androidx.compose.runtime:runtime:1.7.1 -> 1.7.2 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | | | | | | \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.6 (*) +| | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) +| | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) +| | | | | | +--- androidx.compose.ui:ui-geometry:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-text:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (c) +| | | | | | +--- androidx.compose.ui:ui-util:1.7.2 (c) +| | | | | | \--- androidx.compose.foundation:foundation:1.7.2 (c) +| | | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (*) +| | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (*) +| | | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) +| | | | | +--- androidx.compose.animation:animation:1.7.2 (c) +| | | | | \--- androidx.compose.animation:animation-graphics:1.7.2 (c) +| | | | +--- androidx.compose.foundation:foundation-layout:1.7.2 +| | | | | \--- androidx.compose.foundation:foundation-layout-android:1.7.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | | +--- androidx.compose.animation:animation-core:1.2.1 -> 1.7.2 (*) +| | | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | | +--- androidx.compose.ui:ui:1.7.2 (*) +| | | | | +--- androidx.compose.ui:ui-unit:1.7.2 (*) +| | | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | \--- androidx.compose.foundation:foundation:1.7.2 (c) +| | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | +--- androidx.compose.ui:ui:1.7.2 (*) +| | | | +--- androidx.compose.ui:ui-geometry:1.7.2 (*) +| | | | +--- androidx.compose.ui:ui-graphics:1.7.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | +--- androidx.compose.animation:animation-core:1.7.2 (c) +| | | | \--- androidx.compose.animation:animation-graphics:1.7.2 (c) +| | | +--- androidx.compose.foundation:foundation-layout:1.7.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | +--- androidx.compose.ui:ui:1.7.2 (*) +| | | +--- androidx.compose.ui:ui-text:1.7.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | +--- androidx.core:core:1.13.1 (*) +| | | +--- androidx.emoji2:emoji2:1.3.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | \--- androidx.compose.foundation:foundation-layout:1.7.2 (c) +| | +--- dev.chrisbanes.snapper:snapper:0.2.2 -> 0.3.0 +| | | +--- androidx.compose.foundation:foundation:1.2.1 -> 1.7.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 2.0.0 (*) | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*) -| \--- io.coil-kt:coil-compose:2.6.0 -| +--- io.coil-kt:coil-compose-base:2.6.0 -| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) -| | +--- com.google.accompanist:accompanist-drawablepainter:0.32.0 -| | | +--- androidx.compose.ui:ui:1.5.0 -> 1.7.0-rc01 (*) -| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.8.1 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 -> 1.9.20 (*) -| | +--- io.coil-kt:coil-base:2.6.0 (*) -| | +--- androidx.compose.foundation:foundation:1.6.1 -> 1.7.0-rc01 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*) -| +--- io.coil-kt:coil:2.6.0 (*) -| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*) +| +--- project :core:analytics (*) +| +--- project :core:designsystem +| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| | +--- androidx.activity:activity-compose:1.9.2 +| | | +--- androidx.activity:activity-ktx:1.9.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.7.2 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.7.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.1 -> 1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.6 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | +--- androidx.activity:activity:1.9.2 (c) +| | | \--- androidx.activity:activity-ktx:1.9.2 (c) +| | +--- project :core:model (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| | +--- io.coil-kt.coil3:coil-compose-core:3.0.0-alpha10 +| | | \--- io.coil-kt.coil3:coil-compose-core-android:3.0.0-alpha10 +| | | +--- com.google.accompanist:accompanist-drawablepainter:0.34.0 +| | | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.2 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.9.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 2.0.20 (*) +| | | +--- io.coil-kt.coil3:coil-core:3.0.0-alpha10 (*) +| | | +--- org.jetbrains.compose.foundation:foundation:1.6.11 +| | | | \--- androidx.compose.foundation:foundation:1.6.7 -> 1.7.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.0.20 (*) +| | +--- org.jetbrains.compose.runtime:runtime:1.6.11 (*) +| | +--- org.jetbrains.compose.foundation:foundation:1.6.11 (*) +| | +--- org.jetbrains.compose.material:material:1.6.11 +| | | \--- androidx.compose.material:material:1.6.7 -> 1.7.2 +| | | \--- androidx.compose.material:material-android:1.7.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | +--- androidx.compose.animation:animation:1.7.2 (*) +| | | +--- androidx.compose.animation:animation-core:1.7.2 (*) +| | | +--- androidx.compose.foundation:foundation:1.7.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.7.2 (*) +| | | +--- androidx.compose.material:material-ripple:1.7.2 +| | | | \--- androidx.compose.material:material-ripple-android:1.7.2 +| | | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | | +--- androidx.compose.animation:animation:1.7.2 (*) +| | | | +--- androidx.compose.foundation:foundation:1.7.2 (*) +| | | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | +--- androidx.compose.ui:ui:1.7.2 (*) +| | | +--- androidx.compose.ui:ui-text:1.7.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.6 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.6 (*) +| | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | +--- org.jetbrains.compose.material3:material3:1.6.11 +| | | \--- androidx.compose.material3:material3:1.2.1 -> 1.3.0 +| | | \--- androidx.compose.material3:material3-android:1.3.0 +| | | +--- androidx.activity:activity-compose:1.8.2 -> 1.9.2 (*) +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) +| | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | +--- androidx.compose.animation:animation-core:1.6.0 -> 1.7.2 (*) +| | | +--- androidx.compose.foundation:foundation:1.7.0 -> 1.7.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.7.0 -> 1.7.2 (*) +| | | +--- androidx.compose.material:material-icons-core:1.6.0 -> 1.7.2 +| | | | \--- androidx.compose.material:material-icons-core-android:1.7.2 +| | | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | +--- androidx.compose.material:material-ripple:1.7.0 -> 1.7.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.7.0 -> 1.7.2 (*) +| | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.2 (*) +| | | +--- androidx.compose.ui:ui-text:1.6.0 -> 1.7.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.6.0 -> 1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.1 -> 2.8.6 (*) +| | | \--- androidx.compose.material3:material3-window-size-class:1.3.0 (c) +| | +--- org.jetbrains.compose.material:material-icons-extended:1.6.11 +| | | \--- androidx.compose.material:material-icons-extended:1.6.7 -> 1.7.2 +| | | \--- androidx.compose.material:material-icons-extended-android:1.7.2 +| | | \--- androidx.compose.material:material-icons-core:1.7.2 (*) +| | +--- org.jetbrains.compose.ui:ui:1.6.11 +| | | \--- androidx.compose.ui:ui:1.6.7 -> 1.7.2 (*) +| | +--- org.jetbrains.compose.ui:ui-util:1.6.11 +| | | \--- androidx.compose.ui:ui-util:1.6.7 -> 1.7.2 (*) +| | +--- org.jetbrains.compose.components:components-resources:1.6.11 +| | | \--- org.jetbrains.compose.components:components-resources-android:1.6.11 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) +| | | +--- org.jetbrains.compose.runtime:runtime:1.6.11 (*) +| | | +--- org.jetbrains.compose.foundation:foundation:1.6.11 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.9.0 (*) +| | \--- org.jetbrains.compose.components:components-ui-tooling-preview:1.6.11 +| | \--- org.jetbrains.compose.components:components-ui-tooling-preview-android:1.6.11 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.0.20 (*) +| +--- project :core:model (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) +| +--- io.coil-kt.coil3:coil:3.0.0-alpha10 (*) +| +--- io.coil-kt.coil3:coil-compose-core:3.0.0-alpha10 (*) +| +--- org.jetbrains.compose.material3:material3:1.6.11 (*) +| +--- org.jetbrains.compose.components:components-resources:1.6.11 (*) +| \--- org.jetbrains.compose.components:components-ui-tooling-preview:1.6.11 (*) +--- project :core:designsystem (*) +--- project :feature:receipt | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | +--- androidx.compose:compose-bom:2024.08.00 (*) -| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| | +--- androidx.navigation:navigation-compose:2.8.0-rc01 (*) -| | +--- androidx.compose.material3:material3 -> 1.2.1 (*) -| | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| | \--- androidx.compose.ui:ui-util:1.6.8 -> 1.7.0-rc01 (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 -| | \--- org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.7 +| | +--- androidx.compose:compose-bom:2024.09.02 (*) +| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| | +--- androidx.navigation:navigation-compose:2.8.1 +| | | +--- androidx.activity:activity-compose:1.8.0 -> 1.9.2 (*) +| | | +--- androidx.compose.animation:animation:1.7.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.7.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.7.2 (*) +| | | +--- androidx.compose.ui:ui:1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2 -> 2.8.6 +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.6 +| | | | +--- androidx.annotation:annotation:1.8.0 -> 1.8.1 (*) +| | | | +--- androidx.compose.runtime:runtime:1.6.0 -> 1.7.2 (*) +| | | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.6 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 (c) +| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.1 +| | | | +--- androidx.navigation:navigation-common-ktx:2.8.1 +| | | | | +--- androidx.navigation:navigation-common:2.8.1 +| | | | | | +--- androidx.annotation:annotation:1.8.1 (*) +| | | | | | +--- androidx.collection:collection-ktx:1.4.2 -> 1.4.4 (*) +| | | | | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 -> 2.8.6 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.6 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.6 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 -> 2.8.6 (*) +| | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) +| | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.2 (*) +| | | | | | +--- androidx.navigation:navigation-common-ktx:2.8.1 (c) +| | | | | | +--- androidx.navigation:navigation-compose:2.8.1 (c) +| | | | | | +--- androidx.navigation:navigation-fragment:2.8.1 (c) +| | | | | | +--- androidx.navigation:navigation-fragment-ktx:2.8.1 (c) +| | | | | | +--- androidx.navigation:navigation-runtime:2.8.1 (c) +| | | | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-common:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-compose:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-fragment:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-fragment-ktx:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-runtime:2.8.1 (c) +| | | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-runtime:2.8.1 +| | | | | +--- androidx.activity:activity-ktx:1.7.1 -> 1.9.2 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.4.1 (*) +| | | | | +--- androidx.collection:collection:1.4.2 -> 1.4.4 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.6 (*) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.6 (*) +| | | | | +--- androidx.navigation:navigation-common:2.8.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.2 (*) +| | | | | +--- androidx.navigation:navigation-common:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-common-ktx:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-compose:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-fragment:2.8.1 (c) +| | | | | +--- androidx.navigation:navigation-fragment-ktx:2.8.1 (c) +| | | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-common-ktx:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-compose:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-fragment-ktx:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-runtime:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-fragment:2.8.1 (c) +| | | | \--- androidx.navigation:navigation-common:2.8.1 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.2 (*) +| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.1 (c) +| | | +--- androidx.navigation:navigation-fragment-ktx:2.8.1 (c) +| | | +--- androidx.navigation:navigation-common-ktx:2.8.1 (c) +| | | +--- androidx.navigation:navigation-runtime:2.8.1 (c) +| | | +--- androidx.navigation:navigation-fragment:2.8.1 (c) +| | | \--- androidx.navigation:navigation-common:2.8.1 (c) +| | +--- androidx.compose.material3:material3 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime -> 1.7.2 (*) +| | \--- androidx.compose.ui:ui-util -> 1.7.2 (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 +| | \--- org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8 | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 -| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui:1.0.1 -> 1.7.0-rc01 (*) -| | +--- androidx.hilt:hilt-navigation:1.2.0 -| | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) -| | | +--- androidx.navigation:navigation-runtime:2.5.1 -> 2.8.0-rc01 (*) -| | | +--- com.google.dagger:hilt-android:2.49 -> 2.52 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1 -> 2.8.4 (*) -| | +--- androidx.navigation:navigation-compose:2.5.1 -> 2.8.0-rc01 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| +--- com.squareup.okhttp3:okhttp:4.12.0 (*) -| \--- project :core:data (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 +| | +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-compose:4.0.0-RC2 +| | | \--- io.insert-koin:koin-compose-jvm:4.0.0-RC2 +| | | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | | +--- org.jetbrains.compose.runtime:runtime:1.6.11 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.2 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 -> 2.8.6 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 +| | +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 -> 2.8.1 +| | | +--- androidx.navigation:navigation-fragment:2.8.1 +| | | | +--- androidx.fragment:fragment-ktx:1.6.2 -> 1.8.2 (*) +| | | | +--- androidx.navigation:navigation-runtime:2.8.1 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | +--- androidx.customview:customview:1.1.0 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | | +--- androidx.window:window:1.0.0 -> 1.3.0 +| | | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*) +| | | | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) +| | | | | | +--- androidx.core:core:1.8.0 -> 1.13.1 (*) +| | | | | | +--- androidx.window.extensions.core:core:1.0.0 +| | | | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.8.1 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.20 -> 2.0.20 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*) +| | | | | | \--- androidx.window:window-core:1.3.0 (c) +| | | | | \--- androidx.transition:transition:1.4.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.2 (*) +| | | | +--- androidx.navigation:navigation-common:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-common-ktx:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-compose:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-fragment-ktx:2.8.1 (c) +| | | | +--- androidx.navigation:navigation-runtime:2.8.1 (c) +| | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.1 (c) +| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.1 (*) +| | | +--- androidx.navigation:navigation-common-ktx:2.8.1 (c) +| | | +--- androidx.navigation:navigation-compose:2.8.1 (c) +| | | +--- androidx.navigation:navigation-fragment:2.8.1 (c) +| | | +--- androidx.navigation:navigation-runtime:2.8.1 (c) +| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.1 (c) +| | | \--- androidx.navigation:navigation-common:2.8.1 (c) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| \--- com.squareup.okhttp3:okhttp:4.12.0 (*) +--- project :feature:profile | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | +--- project :libs:country-code-picker | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| | +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| | +--- androidx.compose:compose-bom:2024.08.00 (*) -| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| | +--- androidx.compose.foundation:foundation -> 1.7.0-rc01 (*) -| | +--- androidx.compose.foundation:foundation-layout -> 1.7.0-rc01 (*) -| | +--- androidx.compose.material:material-icons-extended -> 1.6.8 (*) -| | +--- androidx.compose.material3:material3 -> 1.2.1 (*) -| | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui-util:1.6.8 -> 1.7.0-rc01 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) +| | +--- androidx.compose:compose-bom:2024.09.02 (*) +| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| | +--- androidx.compose.foundation:foundation -> 1.7.2 (*) +| | +--- androidx.compose.foundation:foundation-layout -> 1.7.2 (*) +| | +--- androidx.compose.material:material-icons-extended -> 1.7.2 (*) +| | +--- androidx.compose.material3:material3 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime -> 1.7.2 (*) +| | +--- androidx.compose.ui:ui-util -> 1.7.2 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) | | \--- io.michaelrocks:libphonenumber-android:8.13.35 -| \--- io.coil-kt:coil-compose:2.6.0 (*) +| +--- com.squareup.okhttp3:okhttp:4.12.0 (*) +| \--- io.coil-kt.coil3:coil-compose-core:3.0.0-alpha10 (*) +--- project :feature:auth | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | +--- project :libs:country-code-picker (*) | +--- androidx.credentials:credentials:1.2.2 -> 1.3.0-beta01 | | +--- androidx.annotation:annotation:1.5.0 -> 1.8.1 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) | | \--- androidx.credentials:credentials-play-services-auth:1.3.0-beta01 (c) | +--- androidx.credentials:credentials-play-services-auth:1.2.2 -> 1.3.0-beta01 | | +--- androidx.credentials:credentials:1.3.0-beta01 (*) | | +--- com.google.android.gms:play-services-auth:21.1.1 -> 21.2.0 -| | | +--- androidx.fragment:fragment:1.5.7 -> 1.7.1 (*) +| | | +--- androidx.fragment:fragment:1.5.7 -> 1.8.2 (*) | | | +--- androidx.loader:loader:1.1.0 (*) | | | +--- com.google.android.gms:play-services-auth-api-phone:18.0.2 | | | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.3.0 (*) | | | | +--- com.google.android.gms:play-services-basement:18.0.2 -> 18.4.0 (*) | | | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) | | | +--- com.google.android.gms:play-services-auth-base:18.0.10 -| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*) | | | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.3.0 (*) | | | | +--- com.google.android.gms:play-services-basement:18.2.0 -> 18.4.0 (*) | | | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) @@ -1567,155 +1676,213 @@ | | | | +--- com.google.android.gms:play-services-base:18.3.0 (*) | | | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) | | | | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0 -> 1.9.20 (*) -| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.8.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.9.0 (*) | | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) | | +--- com.google.android.gms:play-services-fido:21.0.0 (*) | | +--- com.google.android.libraries.identity.googleid:googleid:1.1.0 -> 1.1.1 | | | +--- androidx.credentials:credentials:1.3.0-beta01 (*) | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 -> 2.0.20 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 2.0.0 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | | \--- androidx.credentials:credentials:1.3.0-beta01 (c) | +--- com.google.android.libraries.identity.googleid:googleid:1.1.1 (*) | \--- com.google.android.gms:play-services-auth:21.2.0 (*) +--- project :feature:make-transfer | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:faq | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:editpassword | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:notification | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | \--- project :libs:pullrefresh | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| +--- androidx.compose.animation:animation -> 1.7.0-rc01 (*) -| +--- androidx.compose.material3:material3 -> 1.2.1 (*) -| +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| \--- androidx.compose.ui:ui-util:1.6.8 -> 1.7.0-rc01 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| +--- androidx.compose.animation:animation -> 1.7.2 (*) +| +--- androidx.compose.material3:material3 -> 1.3.0 (*) +| +--- androidx.compose.runtime:runtime -> 1.7.2 (*) +| \--- androidx.compose.ui:ui-util -> 1.7.2 (*) +--- project :feature:request-money | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | +--- com.google.zxing:core:3.5.3 -| \--- io.coil-kt:coil-compose:2.6.0 (*) +| \--- io.coil-kt.coil3:coil-compose-core:3.0.0-alpha10 (*) +--- project :feature:upi-setup | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:settings | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:savedcards | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:qr | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | +--- com.google.zxing:core:3.5.3 -| +--- project :core:data (*) | +--- androidx.camera:camera-view:1.3.4 | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) | | +--- androidx.annotation:annotation-experimental:1.3.1 -> 1.4.1 (*) @@ -1726,8 +1893,8 @@ | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) | | | +--- androidx.exifinterface:exifinterface:1.3.2 -> 1.3.7 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.8.4 (*) -| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.8.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.8.6 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.8.6 (*) | | | +--- com.google.auto.value:auto-value-annotations:1.6.3 | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) @@ -1738,7 +1905,7 @@ | | | +--- androidx.camera:camera-core:1.3.4 (*) | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) -| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.8.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.8.6 (*) | | | +--- com.google.auto.value:auto-value-annotations:1.6.3 | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava | | | +--- androidx.camera:camera-core:1.3.4 (c) @@ -1755,7 +1922,7 @@ | | | \--- androidx.camera:camera-view:1.3.4 (c) | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) -| | +--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.8.4 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.8.6 (*) | | +--- com.google.auto.value:auto-value-annotations:1.6.3 | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava | | +--- androidx.camera:camera-core:1.3.4 (c) @@ -1765,175 +1932,232 @@ | \--- com.google.guava:guava:27.0.1-android -> 31.1-android (*) +--- project :feature:invoices | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:merchants | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | \--- project :libs:pullrefresh (*) +--- project :feature:history | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| \--- project :libs:pullrefresh (*) +--- project :feature:kyc | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | +--- project :libs:country-code-picker (*) | +--- project :libs:pullrefresh (*) | +--- com.maxkeppeler.sheets-compose-dialogs:core:1.3.0 -| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10 -> 1.9.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10 -> 2.0.0 (*) | | +--- androidx.core:core-ktx:1.9.0 -> 1.13.1 (*) -| | +--- androidx.compose:compose-bom:2024.02.00 -> 2024.08.00 (*) -| | +--- androidx.compose.ui:ui -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| | +--- androidx.compose.animation:animation -> 1.7.0-rc01 (*) -| | +--- androidx.compose.animation:animation-graphics -> 1.7.0-rc01 -| | | \--- androidx.compose.animation:animation-graphics-android:1.7.0-rc01 +| | +--- androidx.compose:compose-bom:2024.02.00 -> 2024.09.02 (*) +| | +--- androidx.compose.ui:ui -> 1.7.2 (*) +| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| | +--- androidx.compose.animation:animation -> 1.7.2 (*) +| | +--- androidx.compose.animation:animation-graphics -> 1.7.2 +| | | \--- androidx.compose.animation:animation-graphics-android:1.7.2 | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) -| | | +--- androidx.compose.animation:animation:1.7.0-rc01 (*) -| | | +--- androidx.compose.foundation:foundation-layout:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.runtime:runtime:1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-geometry:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- androidx.compose.ui:ui-util:1.7.0-rc01 (*) +| | | +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*) +| | | +--- androidx.compose.animation:animation:1.7.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.7.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.7.2 (*) +| | | +--- androidx.compose.ui:ui:1.7.2 (*) +| | | +--- androidx.compose.ui:ui-geometry:1.7.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.7.2 (*) | | | +--- androidx.core:core-ktx:1.5.0 -> 1.13.1 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | +--- androidx.compose.animation:animation:1.7.0-rc01 (c) -| | | \--- androidx.compose.animation:animation-core:1.7.0-rc01 (c) -| | +--- androidx.compose.runtime:runtime -> 1.7.0-rc01 (*) -| | \--- androidx.compose.material3:material3 -> 1.2.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) +| | | +--- androidx.compose.animation:animation:1.7.2 (c) +| | | \--- androidx.compose.animation:animation-core:1.7.2 (c) +| | +--- androidx.compose.runtime:runtime -> 1.7.2 (*) +| | \--- androidx.compose.material3:material3 -> 1.3.0 (*) | +--- com.maxkeppeler.sheets-compose-dialogs:calendar:1.3.0 -| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10 -> 1.9.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10 -> 2.0.0 (*) | | +--- androidx.core:core-ktx:1.9.0 -> 1.13.1 (*) -| | +--- androidx.compose:compose-bom:2024.02.00 -> 2024.08.00 (*) -| | +--- androidx.compose.ui:ui -> 1.7.0-rc01 (*) -| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| | +--- androidx.compose.animation:animation -> 1.7.0-rc01 (*) -| | +--- androidx.compose.animation:animation-graphics -> 1.7.0-rc01 (*) -| | +--- androidx.compose.runtime:runtime -> 1.7.0-rc01 (*) -| | +--- androidx.compose.material3:material3 -> 1.2.1 (*) +| | +--- androidx.compose:compose-bom:2024.02.00 -> 2024.09.02 (*) +| | +--- androidx.compose.ui:ui -> 1.7.2 (*) +| | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| | +--- androidx.compose.animation:animation -> 1.7.2 (*) +| | +--- androidx.compose.animation:animation-graphics -> 1.7.2 (*) +| | +--- androidx.compose.runtime:runtime -> 1.7.2 (*) +| | +--- androidx.compose.material3:material3 -> 1.3.0 (*) | | +--- dev.chrisbanes.snapper:snapper:0.3.0 (*) | | \--- com.maxkeppeler.sheets-compose-dialogs:core:1.3.0 (*) | \--- com.squareup.okhttp3:okhttp:4.12.0 (*) +--- project :feature:home | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :feature:accounts | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) -| \--- project :libs:pullrefresh (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +| +--- project :libs:pullrefresh (*) +| \--- com.google.android.gms:play-services-auth:21.2.0 (*) +--- project :feature:finance | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | \--- com.google.accompanist:accompanist-pager:0.34.0 (*) +--- project :feature:payments | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | \--- com.google.accompanist:accompanist-pager:0.34.0 (*) +--- project :feature:send-money | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | +--- project :libs:country-code-picker (*) | \--- com.google.android.gms:play-services-code-scanner:16.1.0 -| +--- androidx.activity:activity:1.3.1 -> 1.9.1 (*) +| +--- androidx.activity:activity:1.3.1 -> 1.9.2 (*) | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) @@ -1971,148 +2195,158 @@ | \--- com.google.mlkit:common:18.9.0 (*) +--- project :feature:standing-instruction | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) -| +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) | +--- project :core:data (*) +| +--- project :libs:material3-navigation (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | \--- com.google.android.gms:play-services-code-scanner:16.1.0 (*) +--- project :feature:search | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) | +--- project :core:ui (*) | +--- project :core:designsystem (*) +| +--- project :core:data (*) | +--- project :libs:material3-navigation (*) -| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 (*) -| +--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| \--- project :core:data (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| \--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) +--- project :libs:mifos-passcode | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- io.insert-koin:koin-bom:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-core:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*) | +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -| +--- androidx.compose:compose-bom:2024.08.00 (*) -| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.0-rc01 (*) -| +--- com.google.dagger:hilt-android:2.52 (*) +| +--- androidx.compose:compose-bom:2024.09.02 (*) +| +--- androidx.compose.ui:ui-tooling-preview -> 1.7.2 (*) | +--- androidx.core:core-ktx:1.13.1 (*) -| +--- androidx.compose.foundation:foundation -> 1.7.0-rc01 (*) -| +--- androidx.compose.foundation:foundation-layout -> 1.7.0-rc01 (*) -| +--- androidx.compose.material:material-icons-extended -> 1.6.8 (*) -| +--- androidx.compose.material3:material3 -> 1.2.1 (*) -| +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| +--- androidx.compose.ui:ui-util:1.6.8 -> 1.7.0-rc01 (*) -| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -| +--- androidx.navigation:navigation-compose:2.8.0-rc01 (*) -| \--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) +| +--- androidx.compose.foundation:foundation -> 1.7.2 (*) +| +--- androidx.compose.foundation:foundation-layout -> 1.7.2 (*) +| +--- androidx.compose.material:material-icons-extended -> 1.7.2 (*) +| +--- androidx.compose.material3:material3 -> 1.3.0 (*) +| +--- androidx.compose.runtime:runtime -> 1.7.2 (*) +| +--- androidx.compose.ui:ui-util -> 1.7.2 (*) +| +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) +| +--- androidx.navigation:navigation-compose:2.8.1 (*) +| +--- io.insert-koin:koin-android:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-navigation:4.0.0-RC2 (*) +| +--- io.insert-koin:koin-androidx-compose:4.0.0-RC2 (*) +| \--- io.insert-koin:koin-core-viewmodel:4.0.0-RC2 (*) +--- project :libs:material3-navigation (*) +--- androidx.core:core-ktx:1.13.1 (*) +--- androidx.appcompat:appcompat:1.7.0 (*) -+--- androidx.activity:activity-compose:1.9.1 (*) -+--- androidx.activity:activity-ktx:1.9.1 (*) ++--- androidx.activity:activity-compose:1.9.2 (*) ++--- androidx.activity:activity-ktx:1.9.2 (*) +--- androidx.core:core-splashscreen:1.0.1 | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.0.20 (*) -+--- androidx.compose.material3.adaptive:adaptive:1.0.0-rc01 -| \--- androidx.compose.material3.adaptive:adaptive-android:1.0.0-rc01 ++--- androidx.compose.material3.adaptive:adaptive:1.0.0 +| \--- androidx.compose.material3.adaptive:adaptive-android:1.0.0 | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.0-rc01 (*) -| +--- androidx.compose.ui:ui-geometry:1.6.5 -> 1.7.0-rc01 (*) -| +--- androidx.window:window:1.3.0-rc01 -| | +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*) -| | +--- androidx.collection:collection:1.1.0 -> 1.4.2 (*) -| | +--- androidx.core:core:1.8.0 -> 1.13.1 (*) -| | +--- androidx.window.extensions.core:core:1.0.0 -| | | +--- androidx.annotation:annotation:1.6.0 -> 1.8.1 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.20 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.8.1 (*) -| | \--- androidx.window:window-core:1.3.0-rc01 (c) -| +--- androidx.window:window-core:1.3.0-rc01 -| | \--- androidx.window:window-core-android:1.3.0-rc01 +| +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.2 (*) +| +--- androidx.compose.ui:ui-geometry:1.6.5 -> 1.7.2 (*) +| +--- androidx.window:window:1.3.0 (*) +| +--- androidx.window:window-core:1.3.0 +| | \--- androidx.window:window-core-android:1.3.0 | | +--- androidx.annotation:annotation:1.7.0 -> 1.8.1 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| | \--- androidx.window:window:1.3.0-rc01 (c) +| | \--- androidx.window:window:1.3.0 (c) | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| +--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0-rc01 (c) -| \--- androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-rc01 (c) -+--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0-rc01 -| \--- androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-rc01 +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) +| +--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0 (c) +| \--- androidx.compose.material3.adaptive:adaptive-navigation:1.0.0 (c) ++--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0 +| \--- androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0 | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| +--- androidx.compose.animation:animation:1.7.0-rc01 (*) -| +--- androidx.compose.animation:animation-core:1.7.0-rc01 (*) -| +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.0-rc01 (*) -| +--- androidx.compose.foundation:foundation-layout:1.6.5 -> 1.7.0-rc01 (*) -| +--- androidx.compose.material3.adaptive:adaptive:1.0.0-rc01 (*) -| +--- androidx.compose.ui:ui:1.7.0-rc01 (*) -| +--- androidx.compose.ui:ui-geometry:1.6.5 -> 1.7.0-rc01 (*) -| +--- androidx.compose.ui:ui-util:1.6.5 -> 1.7.0-rc01 (*) -| +--- androidx.window:window-core:1.3.0-rc01 (*) +| +--- androidx.compose.animation:animation:1.7.0 -> 1.7.2 (*) +| +--- androidx.compose.animation:animation-core:1.7.0 -> 1.7.2 (*) +| +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.2 (*) +| +--- androidx.compose.foundation:foundation-layout:1.6.5 -> 1.7.2 (*) +| +--- androidx.compose.material3.adaptive:adaptive:1.0.0 (*) +| +--- androidx.compose.ui:ui:1.7.0 -> 1.7.2 (*) +| +--- androidx.compose.ui:ui-geometry:1.6.5 -> 1.7.2 (*) +| +--- androidx.compose.ui:ui-util:1.6.5 -> 1.7.2 (*) +| +--- androidx.window:window-core:1.3.0 (*) | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| +--- androidx.compose.material3.adaptive:adaptive:1.0.0-rc01 (c) -| \--- androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-rc01 (c) -+--- androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-rc01 -| \--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-rc01 -| +--- androidx.activity:activity-compose:1.8.2 -> 1.9.1 (*) +| +--- androidx.compose.material3.adaptive:adaptive:1.0.0 (c) +| \--- androidx.compose.material3.adaptive:adaptive-navigation:1.0.0 (c) ++--- androidx.compose.material3.adaptive:adaptive-navigation:1.0.0 +| \--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0 +| +--- androidx.activity:activity-compose:1.8.2 -> 1.9.2 (*) | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.0-rc01 (*) -| +--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0-rc01 (*) -| +--- androidx.compose.ui:ui-util:1.6.5 -> 1.7.0-rc01 (*) +| +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.2 (*) +| +--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0 (*) +| +--- androidx.compose.ui:ui-util:1.6.5 -> 1.7.2 (*) | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| +--- androidx.compose.material3.adaptive:adaptive:1.0.0-rc01 (c) -| \--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0-rc01 (c) -+--- androidx.compose.material3:material3-window-size-class -> 1.2.1 -| \--- androidx.compose.material3:material3-window-size-class-android:1.2.1 +| +--- androidx.compose.material3.adaptive:adaptive:1.0.0 (c) +| \--- androidx.compose.material3.adaptive:adaptive-layout:1.0.0 (c) ++--- androidx.compose.material3:material3-window-size-class -> 1.3.0 +| \--- androidx.compose.material3:material3-window-size-class-android:1.3.0 | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*) -| +--- androidx.compose.runtime:runtime:1.6.0 -> 1.7.0-rc01 (*) -| +--- androidx.compose.ui:ui:1.6.0 -> 1.7.0-rc01 (*) -| +--- androidx.compose.ui:ui-unit:1.6.0 -> 1.7.0-rc01 (*) -| +--- androidx.compose.ui:ui-util:1.6.0 -> 1.7.0-rc01 (*) -| +--- androidx.window:window:1.0.0 -> 1.3.0-rc01 (*) +| +--- androidx.compose.runtime:runtime:1.7.0 -> 1.7.2 (*) +| +--- androidx.compose.ui:ui:1.6.0 -> 1.7.2 (*) +| +--- androidx.compose.ui:ui-unit:1.6.0 -> 1.7.2 (*) +| +--- androidx.compose.ui:ui-util:1.6.0 -> 1.7.2 (*) +| +--- androidx.window:window:1.0.0 -> 1.3.0 (*) | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -| \--- androidx.compose.material3:material3:1.2.1 (c) +| \--- androidx.compose.material3:material3:1.3.0 (c) +--- androidx.compose.runtime:runtime-tracing:1.0.0-beta01 | +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*) -| +--- androidx.compose.runtime:runtime:1.3.3 -> 1.7.0-rc01 (*) +| +--- androidx.compose.runtime:runtime:1.3.3 -> 1.7.2 (*) | +--- androidx.startup:startup-runtime:1.1.1 (*) | +--- androidx.tracing:tracing-perfetto:1.0.0 | | +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*) | | +--- androidx.startup:startup-runtime:1.1.1 (*) | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.20 (*) -+--- androidx.hilt:hilt-navigation-compose:1.2.0 (*) -+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) -+--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*) -+--- androidx.lifecycle:lifecycle-runtime-compose:2.8.4 (*) -+--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 (*) -+--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 (*) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 (*) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0 (*) ++--- androidx.lifecycle:lifecycle-runtime-compose:2.8.6 (*) ++--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 (*) ++--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 (*) +--- androidx.lifecycle:lifecycle-extensions:2.2.0 -| +--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.8.4 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.8.6 (*) | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) -| +--- androidx.fragment:fragment:1.2.0 -> 1.7.1 (*) -| +--- androidx.lifecycle:lifecycle-common:2.2.0 -> 2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-livedata:2.2.0 -> 2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.8.4 (*) -| +--- androidx.lifecycle:lifecycle-service:2.2.0 -> 2.8.4 (*) -| \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 -> 2.8.4 (*) -+--- androidx.navigation:navigation-compose:2.8.0-rc01 (*) -+--- androidx.profileinstaller:profileinstaller:1.3.1 (*) +| +--- androidx.fragment:fragment:1.2.0 -> 1.8.2 (*) +| +--- androidx.lifecycle:lifecycle-common:2.2.0 -> 2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-livedata:2.2.0 -> 2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.8.6 (*) +| +--- androidx.lifecycle:lifecycle-service:2.2.0 -> 2.8.6 (*) +| \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 -> 2.8.6 (*) ++--- androidx.navigation:navigation-compose:2.8.1 (*) ++--- androidx.profileinstaller:profileinstaller:1.4.0 (*) +--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (*) -\--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) ++--- io.insert-koin:koin-android:4.0.0-RC2 (*) ++--- io.ktor:ktor-client-core:2.3.4 -> 3.0.0-beta-2 (*) +\--- androidx.compose.runtime:runtime -> 1.7.2 (*) diff --git a/mifospay/dependencies/prodReleaseRuntimeClasspath.txt b/mifospay/dependencies/prodReleaseRuntimeClasspath.txt index 6dc1ab157..d808c3e69 100644 --- a/mifospay/dependencies/prodReleaseRuntimeClasspath.txt +++ b/mifospay/dependencies/prodReleaseRuntimeClasspath.txt @@ -34,10 +34,9 @@ :libs:material3-navigation :libs:mifos-passcode :libs:pullrefresh -:shared -androidx.activity:activity-compose:1.9.1 -androidx.activity:activity-ktx:1.9.1 -androidx.activity:activity:1.9.1 +androidx.activity:activity-compose:1.9.2 +androidx.activity:activity-ktx:1.9.2 +androidx.activity:activity:1.9.2 androidx.annotation:annotation-experimental:1.4.1 androidx.annotation:annotation-jvm:1.8.1 androidx.annotation:annotation:1.8.1 @@ -51,55 +50,57 @@ androidx.camera:camera-core:1.3.4 androidx.camera:camera-lifecycle:1.3.4 androidx.camera:camera-video:1.3.4 androidx.camera:camera-view:1.3.4 -androidx.collection:collection-jvm:1.4.2 -androidx.collection:collection-ktx:1.4.2 -androidx.collection:collection:1.4.2 -androidx.compose.animation:animation-android:1.7.0-rc01 -androidx.compose.animation:animation-core-android:1.7.0-rc01 -androidx.compose.animation:animation-core:1.7.0-rc01 -androidx.compose.animation:animation-graphics-android:1.7.0-rc01 -androidx.compose.animation:animation-graphics:1.7.0-rc01 -androidx.compose.animation:animation:1.7.0-rc01 -androidx.compose.foundation:foundation-android:1.7.0-rc01 -androidx.compose.foundation:foundation-layout-android:1.7.0-rc01 -androidx.compose.foundation:foundation-layout:1.7.0-rc01 -androidx.compose.foundation:foundation:1.7.0-rc01 -androidx.compose.material3.adaptive:adaptive-android:1.0.0-rc01 -androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-rc01 -androidx.compose.material3.adaptive:adaptive-layout:1.0.0-rc01 -androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-rc01 -androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-rc01 -androidx.compose.material3.adaptive:adaptive:1.0.0-rc01 -androidx.compose.material3:material3-android:1.2.1 -androidx.compose.material3:material3-window-size-class-android:1.2.1 -androidx.compose.material3:material3-window-size-class:1.2.1 -androidx.compose.material3:material3:1.2.1 -androidx.compose.material:material-icons-core-android:1.6.8 -androidx.compose.material:material-icons-core:1.6.8 -androidx.compose.material:material-icons-extended-android:1.6.8 -androidx.compose.material:material-icons-extended:1.6.8 -androidx.compose.material:material-ripple-android:1.6.8 -androidx.compose.material:material-ripple:1.6.8 -androidx.compose.runtime:runtime-android:1.7.0-rc01 -androidx.compose.runtime:runtime-saveable-android:1.7.0-rc01 -androidx.compose.runtime:runtime-saveable:1.7.0-rc01 +androidx.collection:collection-jvm:1.4.4 +androidx.collection:collection-ktx:1.4.4 +androidx.collection:collection:1.4.4 +androidx.compose.animation:animation-android:1.7.2 +androidx.compose.animation:animation-core-android:1.7.2 +androidx.compose.animation:animation-core:1.7.2 +androidx.compose.animation:animation-graphics-android:1.7.2 +androidx.compose.animation:animation-graphics:1.7.2 +androidx.compose.animation:animation:1.7.2 +androidx.compose.foundation:foundation-android:1.7.2 +androidx.compose.foundation:foundation-layout-android:1.7.2 +androidx.compose.foundation:foundation-layout:1.7.2 +androidx.compose.foundation:foundation:1.7.2 +androidx.compose.material3.adaptive:adaptive-android:1.0.0 +androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0 +androidx.compose.material3.adaptive:adaptive-layout:1.0.0 +androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0 +androidx.compose.material3.adaptive:adaptive-navigation:1.0.0 +androidx.compose.material3.adaptive:adaptive:1.0.0 +androidx.compose.material3:material3-android:1.3.0 +androidx.compose.material3:material3-window-size-class-android:1.3.0 +androidx.compose.material3:material3-window-size-class:1.3.0 +androidx.compose.material3:material3:1.3.0 +androidx.compose.material:material-android:1.7.2 +androidx.compose.material:material-icons-core-android:1.7.2 +androidx.compose.material:material-icons-core:1.7.2 +androidx.compose.material:material-icons-extended-android:1.7.2 +androidx.compose.material:material-icons-extended:1.7.2 +androidx.compose.material:material-ripple-android:1.7.2 +androidx.compose.material:material-ripple:1.7.2 +androidx.compose.material:material:1.7.2 +androidx.compose.runtime:runtime-android:1.7.2 +androidx.compose.runtime:runtime-saveable-android:1.7.2 +androidx.compose.runtime:runtime-saveable:1.7.2 androidx.compose.runtime:runtime-tracing:1.0.0-beta01 -androidx.compose.runtime:runtime:1.7.0-rc01 -androidx.compose.ui:ui-android:1.7.0-rc01 -androidx.compose.ui:ui-geometry-android:1.7.0-rc01 -androidx.compose.ui:ui-geometry:1.7.0-rc01 -androidx.compose.ui:ui-graphics-android:1.7.0-rc01 -androidx.compose.ui:ui-graphics:1.7.0-rc01 -androidx.compose.ui:ui-text-android:1.7.0-rc01 -androidx.compose.ui:ui-text:1.7.0-rc01 -androidx.compose.ui:ui-tooling-preview-android:1.7.0-rc01 -androidx.compose.ui:ui-tooling-preview:1.7.0-rc01 -androidx.compose.ui:ui-unit-android:1.7.0-rc01 -androidx.compose.ui:ui-unit:1.7.0-rc01 -androidx.compose.ui:ui-util-android:1.7.0-rc01 -androidx.compose.ui:ui-util:1.7.0-rc01 -androidx.compose.ui:ui:1.7.0-rc01 -androidx.compose:compose-bom:2024.08.00 +androidx.compose.runtime:runtime:1.7.2 +androidx.compose.ui:ui-android:1.7.2 +androidx.compose.ui:ui-geometry-android:1.7.2 +androidx.compose.ui:ui-geometry:1.7.2 +androidx.compose.ui:ui-graphics-android:1.7.2 +androidx.compose.ui:ui-graphics:1.7.2 +androidx.compose.ui:ui-text-android:1.7.2 +androidx.compose.ui:ui-text:1.7.2 +androidx.compose.ui:ui-tooling-preview-android:1.7.2 +androidx.compose.ui:ui-tooling-preview:1.7.2 +androidx.compose.ui:ui-unit-android:1.7.2 +androidx.compose.ui:ui-unit:1.7.2 +androidx.compose.ui:ui-util-android:1.7.2 +androidx.compose.ui:ui-util:1.7.2 +androidx.compose.ui:ui:1.7.2 +androidx.compose:compose-bom:2024.09.02 androidx.concurrent:concurrent-futures:1.1.0 androidx.core:core-ktx:1.13.1 androidx.core:core-splashscreen:1.0.1 @@ -108,91 +109,86 @@ androidx.credentials:credentials-play-services-auth:1.3.0-beta01 androidx.credentials:credentials:1.3.0-beta01 androidx.cursoradapter:cursoradapter:1.0.0 androidx.customview:customview-poolingcontainer:1.0.0 -androidx.customview:customview:1.0.0 +androidx.customview:customview:1.1.0 androidx.databinding:databinding-adapters:8.5.2 androidx.databinding:databinding-common:8.5.2 androidx.databinding:databinding-ktx:8.5.2 androidx.databinding:databinding-runtime:8.5.2 androidx.databinding:viewbinding:8.5.2 -androidx.datastore:datastore-android:1.1.1 -androidx.datastore:datastore-core-android:1.1.1 -androidx.datastore:datastore-core-okio-jvm:1.1.1 -androidx.datastore:datastore-core-okio:1.1.1 -androidx.datastore:datastore-core:1.1.1 -androidx.datastore:datastore-preferences-android:1.1.1 -androidx.datastore:datastore-preferences-core-jvm:1.1.1 -androidx.datastore:datastore-preferences-core:1.1.1 -androidx.datastore:datastore-preferences:1.1.1 -androidx.datastore:datastore:1.1.1 +androidx.datastore:datastore-core:1.0.0 +androidx.datastore:datastore-preferences-core:1.0.0 +androidx.datastore:datastore-preferences:1.0.0 +androidx.datastore:datastore:1.0.0 androidx.documentfile:documentfile:1.0.0 androidx.drawerlayout:drawerlayout:1.0.0 androidx.emoji2:emoji2-views-helper:1.3.0 androidx.emoji2:emoji2:1.3.0 androidx.exifinterface:exifinterface:1.3.7 -androidx.fragment:fragment-ktx:1.7.1 -androidx.fragment:fragment:1.7.1 +androidx.fragment:fragment-ktx:1.8.2 +androidx.fragment:fragment:1.8.2 androidx.graphics:graphics-path:1.0.1 -androidx.hilt:hilt-navigation-compose:1.2.0 -androidx.hilt:hilt-navigation:1.2.0 androidx.interpolator:interpolator:1.0.0 androidx.legacy:legacy-support-core-utils:1.0.0 -androidx.lifecycle:lifecycle-common-java8:2.8.4 -androidx.lifecycle:lifecycle-common-jvm:2.8.4 -androidx.lifecycle:lifecycle-common:2.8.4 +androidx.lifecycle:lifecycle-common-java8:2.8.6 +androidx.lifecycle:lifecycle-common-jvm:2.8.6 +androidx.lifecycle:lifecycle-common:2.8.6 androidx.lifecycle:lifecycle-extensions:2.2.0 -androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 -androidx.lifecycle:lifecycle-livedata-core:2.8.4 -androidx.lifecycle:lifecycle-livedata:2.8.4 -androidx.lifecycle:lifecycle-process:2.8.4 -androidx.lifecycle:lifecycle-runtime-android:2.8.4 -androidx.lifecycle:lifecycle-runtime-compose-android:2.8.4 -androidx.lifecycle:lifecycle-runtime-compose:2.8.4 -androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.4 -androidx.lifecycle:lifecycle-runtime-ktx:2.8.4 -androidx.lifecycle:lifecycle-runtime:2.8.4 -androidx.lifecycle:lifecycle-service:2.8.4 -androidx.lifecycle:lifecycle-viewmodel-android:2.8.4 -androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.4 -androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4 -androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4 -androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 -androidx.lifecycle:lifecycle-viewmodel:2.8.4 +androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6 +androidx.lifecycle:lifecycle-livedata-core:2.8.6 +androidx.lifecycle:lifecycle-livedata:2.8.6 +androidx.lifecycle:lifecycle-process:2.8.6 +androidx.lifecycle:lifecycle-runtime-android:2.8.6 +androidx.lifecycle:lifecycle-runtime-compose-android:2.8.6 +androidx.lifecycle:lifecycle-runtime-compose:2.8.6 +androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.6 +androidx.lifecycle:lifecycle-runtime-ktx:2.8.6 +androidx.lifecycle:lifecycle-runtime:2.8.6 +androidx.lifecycle:lifecycle-service:2.8.6 +androidx.lifecycle:lifecycle-viewmodel-android:2.8.6 +androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.6 +androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6 +androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6 +androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6 +androidx.lifecycle:lifecycle-viewmodel:2.8.6 androidx.loader:loader:1.1.0 androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 androidx.metrics:metrics-performance:1.0.0-beta01 -androidx.navigation:navigation-common-ktx:2.8.0-rc01 -androidx.navigation:navigation-common:2.8.0-rc01 -androidx.navigation:navigation-compose:2.8.0-rc01 -androidx.navigation:navigation-runtime-ktx:2.8.0-rc01 -androidx.navigation:navigation-runtime:2.8.0-rc01 +androidx.navigation:navigation-common-ktx:2.8.1 +androidx.navigation:navigation-common:2.8.1 +androidx.navigation:navigation-compose:2.8.1 +androidx.navigation:navigation-fragment-ktx:2.8.1 +androidx.navigation:navigation-fragment:2.8.1 +androidx.navigation:navigation-runtime-ktx:2.8.1 +androidx.navigation:navigation-runtime:2.8.1 androidx.print:print:1.0.0 androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 -androidx.profileinstaller:profileinstaller:1.3.1 +androidx.profileinstaller:profileinstaller:1.4.0 androidx.resourceinspection:resourceinspection-annotation:1.0.1 androidx.savedstate:savedstate-ktx:1.2.1 androidx.savedstate:savedstate:1.2.1 +androidx.slidingpanelayout:slidingpanelayout:1.2.0 androidx.startup:startup-runtime:1.1.1 androidx.tracing:tracing-ktx:1.3.0-alpha02 androidx.tracing:tracing-perfetto:1.0.0 androidx.tracing:tracing:1.3.0-alpha02 +androidx.transition:transition:1.4.1 androidx.vectordrawable:vectordrawable-animated:1.1.0 androidx.vectordrawable:vectordrawable:1.1.0 androidx.versionedparcelable:versionedparcelable:1.1.1 androidx.viewpager:viewpager:1.0.0 androidx.window.extensions.core:core:1.0.0 -androidx.window:window-core-android:1.3.0-rc01 -androidx.window:window-core:1.3.0-rc01 -androidx.window:window:1.3.0-rc01 -ch.qos.logback:logback-classic:1.2.3 -ch.qos.logback:logback-core:1.2.3 -co.touchlab:stately-concurrency-jvm:2.0.6 -co.touchlab:stately-concurrency:2.0.6 -co.touchlab:stately-concurrent-collections-jvm:2.0.6 -co.touchlab:stately-concurrent-collections:2.0.6 -co.touchlab:stately-strict-jvm:2.0.6 -co.touchlab:stately-strict:2.0.6 -com.google.accompanist:accompanist-drawablepainter:0.32.0 +androidx.window:window-core-android:1.3.0 +androidx.window:window-core:1.3.0 +androidx.window:window:1.3.0 +co.touchlab:stately-concurrency-jvm:2.0.7 +co.touchlab:stately-concurrency:2.0.7 +co.touchlab:stately-concurrent-collections-jvm:2.0.7 +co.touchlab:stately-concurrent-collections:2.0.7 +co.touchlab:stately-strict-jvm:2.0.7 +co.touchlab:stately-strict:2.0.7 +com.caverock:androidsvg-aar:1.4 +com.google.accompanist:accompanist-drawablepainter:0.34.0 com.google.accompanist:accompanist-pager:0.34.0 com.google.android.datatransport:transport-api:3.2.0 com.google.android.datatransport:transport-backend-cct:3.3.0 @@ -206,12 +202,12 @@ com.google.android.gms:play-services-basement:18.4.0 com.google.android.gms:play-services-cloud-messaging:17.2.0 com.google.android.gms:play-services-code-scanner:16.1.0 com.google.android.gms:play-services-fido:21.0.0 -com.google.android.gms:play-services-measurement-api:22.0.2 -com.google.android.gms:play-services-measurement-base:22.0.2 -com.google.android.gms:play-services-measurement-impl:22.0.2 -com.google.android.gms:play-services-measurement-sdk-api:22.0.2 -com.google.android.gms:play-services-measurement-sdk:22.0.2 -com.google.android.gms:play-services-measurement:22.0.2 +com.google.android.gms:play-services-measurement-api:22.1.0 +com.google.android.gms:play-services-measurement-base:22.1.0 +com.google.android.gms:play-services-measurement-impl:22.1.0 +com.google.android.gms:play-services-measurement-sdk-api:22.1.0 +com.google.android.gms:play-services-measurement-sdk:22.1.0 +com.google.android.gms:play-services-measurement:22.1.0 com.google.android.gms:play-services-stats:17.0.2 com.google.android.gms:play-services-tasks:18.2.0 com.google.android.libraries.identity.googleid:googleid:1.1.1 @@ -219,23 +215,20 @@ com.google.android.odml:image:1.0.0-beta1 com.google.auto.value:auto-value-annotations:1.6.3 com.google.code.findbugs:jsr305:3.0.2 com.google.code.gson:gson:2.10.1 -com.google.dagger:dagger-lint-aar:2.52 -com.google.dagger:dagger:2.52 -com.google.dagger:hilt-android:2.52 -com.google.dagger:hilt-core:2.52 +com.google.dagger:dagger:2.27 com.google.errorprone:error_prone_annotations:2.26.0 com.google.firebase:firebase-abt:21.1.1 -com.google.firebase:firebase-analytics-ktx:22.0.2 -com.google.firebase:firebase-analytics:22.0.2 +com.google.firebase:firebase-analytics-ktx:22.1.0 +com.google.firebase:firebase-analytics:22.1.0 com.google.firebase:firebase-annotations:16.2.0 -com.google.firebase:firebase-bom:33.1.2 +com.google.firebase:firebase-bom:33.3.0 com.google.firebase:firebase-common-ktx:21.0.0 com.google.firebase:firebase-common:21.0.0 com.google.firebase:firebase-components:18.0.0 com.google.firebase:firebase-config-interop:16.0.1 com.google.firebase:firebase-config:22.0.0 -com.google.firebase:firebase-crashlytics-ktx:19.0.3 -com.google.firebase:firebase-crashlytics:19.0.3 +com.google.firebase:firebase-crashlytics-ktx:19.1.0 +com.google.firebase:firebase-crashlytics:19.1.0 com.google.firebase:firebase-datatransport:19.0.0 com.google.firebase:firebase-encoders-json:18.0.1 com.google.firebase:firebase-encoders-proto:16.0.0 @@ -244,11 +237,11 @@ com.google.firebase:firebase-iid-interop:17.1.0 com.google.firebase:firebase-installations-interop:17.2.0 com.google.firebase:firebase-installations:18.0.0 com.google.firebase:firebase-measurement-connector:20.0.1 -com.google.firebase:firebase-messaging-ktx:24.0.0 -com.google.firebase:firebase-messaging:24.0.0 +com.google.firebase:firebase-messaging-ktx:24.0.1 +com.google.firebase:firebase-messaging:24.0.1 com.google.firebase:firebase-perf-ktx:21.0.1 com.google.firebase:firebase-perf:21.0.1 -com.google.firebase:firebase-sessions:2.0.3 +com.google.firebase:firebase-sessions:2.0.4 com.google.firebase:protolite-well-known-types:18.0.0 com.google.guava:failureaccess:1.0.1 com.google.guava:guava:31.1-android @@ -260,101 +253,139 @@ com.google.mlkit:vision-common:17.0.0 com.google.protobuf:protobuf-javalite:4.26.0 com.google.protobuf:protobuf-kotlin-lite:4.26.0 com.google.zxing:core:3.5.3 -com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0 com.maxkeppeler.sheets-compose-dialogs:calendar:1.3.0 com.maxkeppeler.sheets-compose-dialogs:core:1.3.0 -com.squareup.okhttp3:logging-interceptor:4.12.0 +com.russhwolf:multiplatform-settings-android:1.2.0 +com.russhwolf:multiplatform-settings-coroutines-android:1.2.0 +com.russhwolf:multiplatform-settings-coroutines:1.2.0 +com.russhwolf:multiplatform-settings-no-arg-android:1.2.0 +com.russhwolf:multiplatform-settings-no-arg:1.2.0 +com.russhwolf:multiplatform-settings-serialization-android:1.2.0 +com.russhwolf:multiplatform-settings-serialization:1.2.0 +com.russhwolf:multiplatform-settings:1.2.0 com.squareup.okhttp3:okhttp:4.12.0 com.squareup.okio:okio-jvm:3.9.0 com.squareup.okio:okio:3.9.0 -com.squareup.retrofit2:adapter-rxjava:2.11.0 com.squareup.retrofit2:converter-gson:2.11.0 com.squareup.retrofit2:retrofit:2.11.0 -com.squareup.wire:wire-runtime-jvm:5.0.0 -com.squareup.wire:wire-runtime:5.0.0 +de.jensklingenberg.ktorfit:ktorfit-annotations-android:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-annotations:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-converters-call-android:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-converters-call:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-converters-flow-android:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-converters-flow:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-lib-android:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-lib-light-android:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-lib-light:2.1.0 +de.jensklingenberg.ktorfit:ktorfit-lib:2.1.0 dev.chrisbanes.snapper:snapper:0.3.0 -io.coil-kt:coil-base:2.6.0 -io.coil-kt:coil-compose-base:2.6.0 -io.coil-kt:coil-compose:2.6.0 -io.coil-kt:coil:2.6.0 -io.insert-koin:koin-android:3.6.0-Beta4 -io.insert-koin:koin-androidx-compose:3.6.0-Beta4 -io.insert-koin:koin-compose-jvm:1.2.0-Beta4 -io.insert-koin:koin-compose-viewmodel-jvm:1.2.0-Beta4 -io.insert-koin:koin-compose-viewmodel:1.2.0-Beta4 -io.insert-koin:koin-compose:1.2.0-Beta4 -io.insert-koin:koin-core-jvm:3.6.0-Beta4 -io.insert-koin:koin-core:3.6.0-Beta4 +io.coil-kt.coil3:coil-android:3.0.0-alpha10 +io.coil-kt.coil3:coil-compose-core-android:3.0.0-alpha10 +io.coil-kt.coil3:coil-compose-core:3.0.0-alpha10 +io.coil-kt.coil3:coil-core-android:3.0.0-alpha10 +io.coil-kt.coil3:coil-core:3.0.0-alpha10 +io.coil-kt.coil3:coil-network-core-android:3.0.0-alpha10 +io.coil-kt.coil3:coil-network-core:3.0.0-alpha10 +io.coil-kt.coil3:coil-network-ktor3-android:3.0.0-alpha10 +io.coil-kt.coil3:coil-network-ktor3:3.0.0-alpha10 +io.coil-kt.coil3:coil-svg-android:3.0.0-alpha10 +io.coil-kt.coil3:coil-svg:3.0.0-alpha10 +io.coil-kt.coil3:coil:3.0.0-alpha10 +io.insert-koin:koin-android:4.0.0-RC2 +io.insert-koin:koin-androidx-compose:4.0.0-RC2 +io.insert-koin:koin-androidx-navigation:4.0.0-RC2 +io.insert-koin:koin-annotations-jvm:1.4.0-RC4 +io.insert-koin:koin-annotations:1.4.0-RC4 +io.insert-koin:koin-bom:4.0.0-RC2 +io.insert-koin:koin-compose-jvm:4.0.0-RC2 +io.insert-koin:koin-compose:4.0.0-RC2 +io.insert-koin:koin-core-jvm:4.0.0-RC2 +io.insert-koin:koin-core-viewmodel-jvm:4.0.0-RC2 +io.insert-koin:koin-core-viewmodel:4.0.0-RC2 +io.insert-koin:koin-core:4.0.0-RC2 io.ktor:ktor-client-android-jvm:2.3.4 io.ktor:ktor-client-android:2.3.4 +io.ktor:ktor-client-cio-jvm:2.3.12 io.ktor:ktor-client-content-negotiation-jvm:2.3.4 io.ktor:ktor-client-content-negotiation:2.3.4 -io.ktor:ktor-client-core-jvm:2.3.4 -io.ktor:ktor-client-core:2.3.4 +io.ktor:ktor-client-core-jvm:3.0.0-beta-2 +io.ktor:ktor-client-core:3.0.0-beta-2 io.ktor:ktor-client-json-jvm:2.3.4 io.ktor:ktor-client-json:2.3.4 io.ktor:ktor-client-logging-jvm:2.3.4 io.ktor:ktor-client-logging:2.3.4 io.ktor:ktor-client-serialization-jvm:2.3.4 io.ktor:ktor-client-serialization:2.3.4 -io.ktor:ktor-client-websockets-jvm:2.3.4 -io.ktor:ktor-client-websockets:2.3.4 -io.ktor:ktor-events-jvm:2.3.4 -io.ktor:ktor-events:2.3.4 -io.ktor:ktor-http-jvm:2.3.4 -io.ktor:ktor-http:2.3.4 -io.ktor:ktor-io-jvm:2.3.4 -io.ktor:ktor-io:2.3.4 -io.ktor:ktor-serialization-jvm:2.3.4 +io.ktor:ktor-events-jvm:3.0.0-beta-2 +io.ktor:ktor-events:3.0.0-beta-2 +io.ktor:ktor-http-cio-jvm:2.3.12 +io.ktor:ktor-http-cio:2.3.12 +io.ktor:ktor-http-jvm:3.0.0-beta-2 +io.ktor:ktor-http:3.0.0-beta-2 +io.ktor:ktor-io-jvm:3.0.0-beta-2 +io.ktor:ktor-io:3.0.0-beta-2 +io.ktor:ktor-network-jvm:2.3.12 +io.ktor:ktor-network-tls-jvm:2.3.12 +io.ktor:ktor-network-tls:2.3.12 +io.ktor:ktor-network:2.3.12 +io.ktor:ktor-serialization-jvm:3.0.0-beta-2 io.ktor:ktor-serialization-kotlinx-json-jvm:2.3.4 io.ktor:ktor-serialization-kotlinx-json:2.3.4 io.ktor:ktor-serialization-kotlinx-jvm:2.3.4 io.ktor:ktor-serialization-kotlinx:2.3.4 -io.ktor:ktor-serialization:2.3.4 -io.ktor:ktor-utils-jvm:2.3.4 -io.ktor:ktor-utils:2.3.4 -io.ktor:ktor-websocket-serialization-jvm:2.3.4 -io.ktor:ktor-websocket-serialization:2.3.4 -io.ktor:ktor-websockets-jvm:2.3.4 -io.ktor:ktor-websockets:2.3.4 +io.ktor:ktor-serialization:3.0.0-beta-2 +io.ktor:ktor-sse-jvm:3.0.0-beta-2 +io.ktor:ktor-sse:3.0.0-beta-2 +io.ktor:ktor-utils-jvm:3.0.0-beta-2 +io.ktor:ktor-utils:3.0.0-beta-2 +io.ktor:ktor-websocket-serialization-jvm:3.0.0-beta-2 +io.ktor:ktor-websocket-serialization:3.0.0-beta-2 +io.ktor:ktor-websockets-jvm:3.0.0-beta-2 +io.ktor:ktor-websockets:3.0.0-beta-2 io.michaelrocks:libphonenumber-android:8.13.35 -io.reactivex:rxandroid:1.1.0 -io.reactivex:rxjava:1.3.8 -jakarta.inject:jakarta.inject-api:2.0.1 javax.inject:javax.inject:1 org.checkerframework:checker-qual:3.12.0 -org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0-rc03 -org.jetbrains.androidx.navigation:navigation-compose:2.7.0-alpha06 +org.jetbrains.androidx.core:core-bundle-android:1.0.0 +org.jetbrains.androidx.core:core-bundle:1.0.0 +org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.0 +org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.8.0 +org.jetbrains.androidx.savedstate:savedstate:1.2.0 org.jetbrains.compose.components:components-resources-android:1.6.11 org.jetbrains.compose.components:components-resources:1.6.11 org.jetbrains.compose.components:components-ui-tooling-preview-android:1.6.11 org.jetbrains.compose.components:components-ui-tooling-preview:1.6.11 org.jetbrains.compose.foundation:foundation:1.6.11 org.jetbrains.compose.material3:material3:1.6.11 +org.jetbrains.compose.material:material-icons-extended:1.6.11 +org.jetbrains.compose.material:material:1.6.11 org.jetbrains.compose.runtime:runtime:1.6.11 -org.jetbrains.compose.ui:ui-tooling-preview:1.6.11 +org.jetbrains.compose.ui:ui-util:1.6.11 org.jetbrains.compose.ui:ui:1.6.11 org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.0.20 org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.20 org.jetbrains.kotlin:kotlin-stdlib-common:2.0.20 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.0 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 org.jetbrains.kotlin:kotlin-stdlib:2.0.20 -org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.7 -org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7 -org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1 -org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1 -org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.1 -org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.1 -org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.8.1 +org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8 +org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 +org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0 +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0 +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0 +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 +org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.9.0 +org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.9.0 +org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.9.0 org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0 org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 -org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.1 -org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.1 -org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.1 -org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.1 -org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1 +org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.5.1 +org.jetbrains.kotlinx:kotlinx-io-bytestring:0.5.1 +org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.5.1 +org.jetbrains.kotlinx:kotlinx-io-core:0.5.1 +org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.2 +org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.2 +org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.2 +org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.2 +org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.2 org.jetbrains:annotations:23.0.0 -org.slf4j:slf4j-api:1.7.36 +org.slf4j:slf4j-api:2.0.13 diff --git a/mifospay/prodRelease-badging.txt b/mifospay/prodRelease-badging.txt index 8cdf267e8..0b23830ab 100644 --- a/mifospay/prodRelease-badging.txt +++ b/mifospay/prodRelease-badging.txt @@ -1,4 +1,4 @@ -package: name='org.mifospay' versionCode='1' versionName='0.0.1-beta.0.833+20240905T230255Z' platformBuildVersionName='14' platformBuildVersionCode='34' compileSdkVersion='34' compileSdkVersionCodename='14' +package: name='org.mifospay' versionCode='1' versionName='0.0.2-beta.0.2' platformBuildVersionName='14' platformBuildVersionCode='34' compileSdkVersion='34' compileSdkVersionCodename='14' sdkVersion:'26' targetSdkVersion:'34' uses-permission: name='android.permission.INTERNET' diff --git a/mifospay/src/main/java/org/mifospay/MainActivity.kt b/mifospay/src/main/java/org/mifospay/MainActivity.kt index 8416a5d33..e17923bd8 100644 --- a/mifospay/src/main/java/org/mifospay/MainActivity.kt +++ b/mifospay/src/main/java/org/mifospay/MainActivity.kt @@ -10,10 +10,10 @@ package org.mifospay import android.os.Bundle +import android.view.Window import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge -import androidx.activity.viewModels import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi import androidx.compose.material3.windowsizeclass.calculateWindowSizeClass import androidx.compose.runtime.CompositionLocalProvider @@ -27,10 +27,12 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.metrics.performance.JankStats import androidx.navigation.compose.rememberNavController -import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch +import org.koin.android.ext.android.inject +import org.koin.androidx.viewmodel.ext.android.viewModel +import org.koin.core.parameter.parametersOf import org.mifospay.MainActivityUiState.Loading import org.mifospay.MainActivityUiState.Success import org.mifospay.core.analytics.AnalyticsHelper @@ -43,28 +45,25 @@ import org.mifospay.navigation.MifosNavGraph.LOGIN_GRAPH import org.mifospay.navigation.MifosNavGraph.PASSCODE_GRAPH import org.mifospay.navigation.RootNavGraph import org.mifospay.ui.rememberMifosAppState -import javax.inject.Inject @OptIn(ExperimentalMaterial3WindowSizeClassApi::class) -@AndroidEntryPoint class MainActivity : ComponentActivity() { /** * Lazily inject [JankStats], which is used to track jank throughout the app. */ - @Inject - lateinit var lazyStats: dagger.Lazy - @Inject - lateinit var networkMonitor: NetworkMonitor + private val networkMonitor: NetworkMonitor by inject() - @Inject - lateinit var timeZoneMonitor: TimeZoneMonitor + private val timeZoneMonitor: TimeZoneMonitor by inject() - @Inject - lateinit var analyticsHelper: AnalyticsHelper + private val analyticsHelper: AnalyticsHelper by inject() - private val viewModel: MainActivityViewModel by viewModels() + private val viewModel: MainActivityViewModel by viewModel() + + private val myWindow: Window by inject { parametersOf(this) } + + private val lazyStats: JankStats by inject { parametersOf(myWindow) } override fun onCreate(savedInstanceState: Bundle?) { val splashScreen = installSplashScreen() @@ -136,11 +135,11 @@ class MainActivity : ComponentActivity() { override fun onResume() { super.onResume() - lazyStats.get().isTrackingEnabled = true + lazyStats.isTrackingEnabled = true } override fun onPause() { super.onPause() - lazyStats.get().isTrackingEnabled = false + lazyStats.isTrackingEnabled = false } } diff --git a/mifospay/src/main/java/org/mifospay/MainActivityViewModel.kt b/mifospay/src/main/java/org/mifospay/MainActivityViewModel.kt index 2a3677a51..35ddb856e 100644 --- a/mifospay/src/main/java/org/mifospay/MainActivityViewModel.kt +++ b/mifospay/src/main/java/org/mifospay/MainActivityViewModel.kt @@ -12,7 +12,6 @@ package org.mifospay import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mifospay.core.model.UserData -import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.map @@ -20,10 +19,8 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import org.mifos.library.passcode.data.PasscodeManager import org.mifospay.core.data.repository.auth.UserDataRepository -import javax.inject.Inject -@HiltViewModel -class MainActivityViewModel @Inject constructor( +class MainActivityViewModel( private val userDataRepository: UserDataRepository, private val passcodeManager: PasscodeManager, ) : ViewModel() { diff --git a/mifospay/src/main/java/org/mifospay/MifosPayApp.kt b/mifospay/src/main/java/org/mifospay/MifosPayApp.kt index 795035371..e7403cf44 100644 --- a/mifospay/src/main/java/org/mifospay/MifosPayApp.kt +++ b/mifospay/src/main/java/org/mifospay/MifosPayApp.kt @@ -10,11 +10,33 @@ package org.mifospay import android.app.Application -import dagger.hilt.android.HiltAndroidApp +import org.koin.android.ext.koin.androidContext +import org.koin.core.context.startKoin +import org.koin.core.logger.Level +import org.mifospay.di.KoinModules -@HiltAndroidApp class MifosPayApp : Application() { override fun onCreate() { super.onCreate() + val koinModules = KoinModules() + + startKoin { + printLogger(Level.ERROR) + androidContext(this@MifosPayApp) + modules( + listOf( + koinModules.dataModules, + koinModules.mifosPayModule, + koinModules + .coreDataStoreModules, + koinModules.featureModules, + koinModules.networkModules, + koinModules + .analyticsModules, + koinModules.commonModules, + koinModules.libsModule, + ), + ) + } } } diff --git a/mifospay/src/main/java/org/mifospay/di/JankStatsModule.kt b/mifospay/src/main/java/org/mifospay/di/JankStatsModule.kt index 3ffdca107..aa1210bf6 100644 --- a/mifospay/src/main/java/org/mifospay/di/JankStatsModule.kt +++ b/mifospay/src/main/java/org/mifospay/di/JankStatsModule.kt @@ -13,30 +13,24 @@ import android.app.Activity import android.util.Log import android.view.Window import androidx.metrics.performance.JankStats -import androidx.metrics.performance.JankStats.OnFrameListener -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.components.ActivityComponent +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module +import org.mifospay.MainActivityViewModel -@Module -@InstallIn(ActivityComponent::class) -object JankStatsModule { - @Provides - fun providesOnFrameListener(): OnFrameListener = OnFrameListener { frameData -> - // Make sure to only log janky frames. - if (frameData.isJank) { - // We're currently logging this but would better report it to a backend. - Log.v("Mifos Jank", frameData.toString()) +val JankStatsModule = module { + + factory { (activity: Activity) -> activity.window } + factory { (window: Window) -> + JankStats.createAndTrack(window) { frameData -> + // Make sure to only log janky frames. + if (frameData.isJank) { + // We're currently logging this but would better report it to a backend. + Log.v("Mifos Jank", frameData.toString()) + } } } - @Provides - fun providesWindow(activity: Activity): Window = activity.window - - @Provides - fun providesJankStats( - window: Window, - frameListener: OnFrameListener, - ): JankStats = JankStats.createAndTrack(window, frameListener) + viewModel { + MainActivityViewModel(userDataRepository = get(), passcodeManager = get()) + } } diff --git a/mifospay/src/main/java/org/mifospay/di/KoinModules.kt b/mifospay/src/main/java/org/mifospay/di/KoinModules.kt new file mode 100644 index 000000000..c3ad261cb --- /dev/null +++ b/mifospay/src/main/java/org/mifospay/di/KoinModules.kt @@ -0,0 +1,76 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay.di + +import org.koin.dsl.module +import org.mifos.library.passcode.di.ApplicationModule +import org.mifospay.core.analytics.di.AnalyticsModule +import org.mifospay.core.data.di.DataModule +import org.mifospay.core.data.di.LocalDataModule +import org.mifospay.core.datastore.di.CoreDataStoreModule +import org.mifospay.core.network.di.CoroutineScopesModule +import org.mifospay.core.network.di.DispatchersModule +import org.mifospay.core.network.di.LocalModule +import org.mifospay.core.network.di.NetworkModule +import org.mifospay.feature.auth.di.AuthModule +import org.mifospay.feature.bank.accounts.di.AccountsModule +import org.mifospay.feature.di.HistoryModule +import org.mifospay.feature.editpassword.di.EditPasswordModule +import org.mifospay.feature.faq.di.FaqModule +import org.mifospay.feature.home.di.HomeModule +import org.mifospay.feature.invoices.di.InvoicesModule +import org.mifospay.feature.kyc.di.KYCModule +import org.mifospay.feature.make.transfer.di.MakeTransferModule +import org.mifospay.feature.merchants.di.MerchantsModule +import org.mifospay.feature.notification.di.NotificationModule +import org.mifospay.feature.payments.di.PaymentsModule +import org.mifospay.feature.profile.di.ProfileModule +import org.mifospay.feature.read.qr.di.QrModule +import org.mifospay.feature.receipt.di.ReceiptModule +import org.mifospay.feature.request.money.di.RequestMoneyModule +import org.mifospay.feature.savedcards.di.SavedCardsModule +import org.mifospay.feature.search.di.SearchModule +import org.mifospay.feature.send.money.di.SendMoneyModule +import org.mifospay.feature.settings.di.SettingsModule +import org.mifospay.feature.standing.instruction.di.StandingInstructionModule +import org.mifospay.feature.upiSetup.di.UpiSetupModule + +class KoinModules { + val analyticsModules = module { + includes(AnalyticsModule) + } + val commonModules = module { + includes(CoroutineScopesModule, DispatchersModule) + } + val dataModules = module { + includes(DataModule, LocalDataModule) + } + val coreDataStoreModules = module { + includes(CoreDataStoreModule) + } + val networkModules = module { + includes(LocalModule, NetworkModule) + } + val featureModules = module { + includes( + AuthModule, AccountsModule, EditPasswordModule, FaqModule, HistoryModule, HomeModule, + InvoicesModule, KYCModule, MakeTransferModule, MerchantsModule, NotificationModule, + PaymentsModule, ProfileModule, QrModule, ReceiptModule, RequestMoneyModule, + SavedCardsModule, SearchModule, SendMoneyModule, SettingsModule, + StandingInstructionModule, UpiSetupModule, + ) + } + val mifosPayModule = module { + includes(JankStatsModule) + } + val libsModule = module { + includes(ApplicationModule) + } +} diff --git a/mifospay/src/test/java/org/mifospay/ExampleUnitTest.kt b/mifospay/src/test/java/org/mifospay/ExampleUnitTest.kt deleted file mode 100644 index 96fcfe7f2..000000000 --- a/mifospay/src/test/java/org/mifospay/ExampleUnitTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2024 Mifos Initiative - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md - */ -package org.mifospay - -import org.junit.Assert -import org.junit.Test - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see [Testing documentation](http://d.android.com/tools/testing) - */ -class ExampleUnitTest { - @Test - @Throws(Exception::class) - fun additionIsCorrect() { - Assert.assertEquals(4, (2 + 2).toLong()) - } -} diff --git a/mifospay/src/test/java/org/mifospay/KoinModulesCheck.kt b/mifospay/src/test/java/org/mifospay/KoinModulesCheck.kt new file mode 100644 index 000000000..f9c811a25 --- /dev/null +++ b/mifospay/src/test/java/org/mifospay/KoinModulesCheck.kt @@ -0,0 +1,76 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md + */ +package org.mifospay + +import android.content.Context +import androidx.lifecycle.SavedStateHandle +import io.ktor.client.HttpClientConfig +import io.ktor.client.engine.HttpClientEngine +import org.koin.test.AutoCloseKoinTest +import org.koin.test.verify.verify +import org.mifos.core.network.services.KtorAuthenticationService +import org.mifos.library.passcode.data.PasscodeManager +import org.mifospay.core.data.repository.auth.UserDataRepository +import org.mifospay.core.datastore.PreferencesHelper +import org.mifospay.core.network.FineractApiManager +import org.mifospay.core.network.SelfServiceApiManager +import org.mifospay.di.KoinModules +import kotlin.test.Test + +class KoinModulesCheck : AutoCloseKoinTest() { + + @Test + fun checkKoinModules() { + val koinModules = KoinModules() + + koinModules.libsModule.verify( + extraTypes = listOf(Context::class), + ) + koinModules.commonModules.verify() + koinModules.analyticsModules.verify() + koinModules.networkModules.verify( + extraTypes = listOf( + HttpClientEngine::class, + HttpClientConfig::class, + ), + ) + koinModules.featureModules.verify( + extraTypes = listOf( + PreferencesHelper::class, + FineractApiManager::class, + SelfServiceApiManager::class, + KtorAuthenticationService::class, + SavedStateHandle::class, + ), + ) + koinModules.coreDataStoreModules.verify( + extraTypes = listOf( + PreferencesHelper::class, + Context::class, + ), + ) + koinModules.mifosPayModule.verify( + extraTypes = listOf( + UserDataRepository::class, + PasscodeManager::class, + Context::class, + ), + ) + koinModules.dataModules.verify( + extraTypes = listOf( + FineractApiManager::class, + SelfServiceApiManager::class, + KtorAuthenticationService::class, + PreferencesHelper::class, + Map::class, + ), + ) + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index f43a17c79..9cb771d36 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,7 +17,7 @@ dependencyResolutionManagement { } } -plugins { + plugins { id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0") id("org.ajoberstar.reckon.settings") version("0.18.3") } diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 5c99a7fef..fec478782 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -71,7 +71,6 @@ kotlin { api(libs.koin.core) implementation(libs.koin.compose) - implementation(libs.koin.compose.viewmodel) implementation(libs.datastore) }