diff --git a/build.gradle.kts b/build.gradle.kts index 68dd014b..8431176e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,6 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.android.test) apply false - alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.kotlin.parcelize) apply false @@ -30,6 +29,11 @@ plugins { // Plugin applied to allow module graph generation alias(libs.plugins.module.graph) apply true alias(libs.plugins.spotless) apply true + // Multiplatform plugins + alias(libs.plugins.jetbrainsCompose) apply false + alias(libs.plugins.compose.compiler) apply false + alias(libs.plugins.kotlinMultiplatform) apply false + alias(libs.plugins.wire) apply false } val detektFormatting = libs.detekt.formatting diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 60788599..96fffb89 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -62,10 +62,6 @@ room = "2.6.1" roborazzi = "1.26.0" retrofitKotlinxSerializationJson = "1.0.0" spotlessVersion = "6.23.3" - -koin = "3.6.0-Beta4" -koinComposeMultiplatform = "1.2.0-Beta4" - sheets_compose_dialogs_core = "1.3.0" secrets = "2.0.1" truth = "1.4.2" @@ -74,6 +70,12 @@ zxingVersion = "3.5.3" # Multiplatform Dependencies compose-plugin = "1.6.11" +koin = "3.6.0-Beta4" +koinComposeMultiplatform = "1.2.0-Beta4" + +datastore = "1.1.1" +wire = "5.0.0" + compileSdk = "34" minSdk = "24" targetSdk = "34" @@ -201,6 +203,9 @@ truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" } twitter-detekt-compose = { group = "com.twitter.compose.rules", name = "detekt", version.ref = "twitter-detekt-compose" } +#Multiplatform Libraries +datastore = { module = "androidx.datastore:datastore-core-okio", version.ref = "datastore" } + # Dependencies of the included build-logic android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } android-tools-common = { group = "com.android.tools", name = "common", version.ref = "androidTools" } @@ -233,12 +238,15 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } 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" } room = { id = "androidx.room", version.ref = "room" } secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets" } spotless = { id = "com.diffplug.spotless", version.ref = "spotlessVersion" } +# Multiplatform Plugins +wire = { id = "com.squareup.wire", version.ref = "wire" } # Plugins defined by this project mifospay-android-application = { id = "mifospay.android.application", version = "unspecified" } diff --git a/mifospay/build.gradle.kts b/mifospay/build.gradle.kts index f5b5c358..ef519cd2 100644 --- a/mifospay/build.gradle.kts +++ b/mifospay/build.gradle.kts @@ -65,6 +65,8 @@ android { } dependencies { + implementation(projects.shared) + implementation(projects.core.data) implementation(projects.core.ui) implementation(projects.core.designsystem) diff --git a/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt b/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt index a315df38..1677ec59 100644 --- a/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt +++ b/mifospay/dependencies/prodReleaseRuntimeClasspath.tree.txt @@ -36,6 +36,7 @@ | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (c) | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.1 (c) | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) +| | +--- 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) @@ -47,8 +48,7 @@ | | +--- 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-java8: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 (*) | | +--- androidx.concurrent:concurrent-futures:1.1.0 @@ -66,6 +66,7 @@ | | +--- 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) @@ -76,8 +77,7 @@ | +--- 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-java8:2.8.4 (c) +| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) +--- androidx.databinding:databinding-adapters:8.5.2 | +--- androidx.databinding:databinding-runtime:8.5.2 (*) | \--- androidx.databinding:databinding-common:8.5.2 @@ -95,6 +95,7 @@ | | +--- 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) @@ -105,8 +106,7 @@ | | +--- 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-java8:2.8.4 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) | +--- androidx.lifecycle:lifecycle-livedata:2.6.1 -> 2.8.4 | | +--- androidx.arch.core:core-common:2.2.0 (*) | | +--- androidx.arch.core:core-runtime:2.2.0 (*) @@ -116,6 +116,7 @@ | | | +--- androidx.lifecycle:lifecycle-common: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-livedata-core-ktx:2.8.4 (c) | | | +--- androidx.lifecycle:lifecycle-process:2.8.4 (c) @@ -126,12 +127,12 @@ | | | +--- 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-java8: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 (*) | | | +--- 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) @@ -142,11 +143,11 @@ | | | +--- 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-java8:2.8.4 (c) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (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) @@ -157,14 +158,14 @@ | | +--- 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-java8:2.8.4 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (c) | +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.4 | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.1 (*) | | +--- androidx.lifecycle:lifecycle-runtime:2.8.4 (*) | | +--- 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) @@ -175,12 +176,12 @@ | | +--- 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-java8: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 (*) | | +--- 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) @@ -191,8 +192,7 @@ | | +--- 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-java8: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.annotation:annotation:1.8.0 -> 1.8.1 (*) @@ -200,6 +200,7 @@ | +--- 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) @@ -210,8 +211,7 @@ | +--- 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) -| \--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) +| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.4 (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) @@ -233,8 +233,8 @@ | +--- 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.material:material-icons-extended-android:1.6.8 (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) @@ -261,12 +261,9 @@ | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.20 (*) | | +--- androidx.collection:collection:1.4.0 -> 1.4.2 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib: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 (*) | | +--- 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) -| +--- org.jetbrains.kotlin:kotlin-stdlib-common: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) @@ -319,6 +316,7 @@ | | | +--- 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) @@ -329,8 +327,7 @@ | | | +--- 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-common-java8: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 (*) @@ -339,29 +336,32 @@ | | \--- 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.5.7 -| | +--- androidx.activity:activity:1.5.1 -> 1.9.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.0.0 -> 1.4.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.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.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.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| | +--- 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.6.21 -> 2.0.20 (*) +| | +--- 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 (*) @@ -400,7 +400,7 @@ | | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 | | | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) | | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) -| | | | \--- androidx.fragment:fragment:1.1.0 -> 1.5.7 (*) +| | | | \--- androidx.fragment:fragment:1.1.0 -> 1.7.1 (*) | | | +--- 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-basement:18.4.0 (*) @@ -575,16 +575,16 @@ | | | | | +--- 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.8.0 -| | | | | | | \--- com.squareup.okio:okio-jvm:3.8.0 +| | | | | | +--- 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:1.1.1 (c) | | | | | | +--- 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.8.0 (*) +| | | | | +--- 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) @@ -595,7 +595,7 @@ | | | | | \--- 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.8.0 (*) +| | | | | +--- 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) @@ -652,7 +652,7 @@ | | | | +--- 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.5.7 (*) +| | | +--- 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 (*) @@ -664,7 +664,7 @@ | | +--- com.google.android.datatransport:transport-api:3.0.0 -> 3.2.0 (*) | | +--- com.google.dagger:dagger:2.27 -> 2.52 (*) | | \--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.12.0 -| | +--- com.squareup.okio:okio:3.6.0 -> 3.8.0 (*) +| | +--- com.squareup.okio:okio:3.6.0 -> 3.9.0 (*) | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.20 (*) | +--- com.google.firebase:firebase-common:21.0.0 (*) | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) @@ -715,7 +715,7 @@ | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.3.0 | | | +--- androidx.collection:collection:1.0.0 -> 1.4.2 (*) | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) -| | | +--- androidx.fragment:fragment:1.0.0 -> 1.5.7 (*) +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.7.1 (*) | | | +--- 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 (*) @@ -730,6 +730,432 @@ | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.20 (*) | \--- 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 (*) +| | | +--- 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 (*) +| | | | +--- 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) +| | | +--- 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.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.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.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 | +--- project :core:common | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.20 (*) @@ -739,29 +1165,14 @@ | | | \--- 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 -| | | \--- org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0 -| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.0.20 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 (*) | | +--- 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.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.kotlin:kotlin-stdlib-common:2.0.0 -> 2.0.20 (*) -| | | \--- 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.kotlinx:kotlinx-serialization-json:1.7.1 (*) | | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.20 (*) | +--- project :core:network | | +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0 (*) @@ -815,291 +1226,16 @@ | \--- 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.ui:ui-android:1.7.0-rc01 -| | | +--- androidx.activity:activity-ktx:1.7.0 -> 1.9.1 -| | | | +--- androidx.activity:activity:1.9.1 (*) -| | | | +--- 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 (*) -| | | | | +--- 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-livedata-core:2.8.4 (c) -| | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.4 (c) -| | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (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.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.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 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | \--- androidx.compose.runtime:runtime:1.7.0-rc01 (c) -| | | +--- 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 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common: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 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common: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 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common: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 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common: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.kotlin:kotlin-stdlib-common: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-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-common-java8: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.kotlin:kotlin-stdlib-common: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.compose.foundation:foundation -> 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.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.kotlin:kotlin-stdlib-common: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-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 (*) -| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | | \--- 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 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | +--- 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 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | \--- androidx.compose.foundation:foundation-layout:1.7.0-rc01 (c) +| | +--- 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.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 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common: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-icons-core:1.6.8 (*) | | | +--- androidx.compose.runtime:runtime:1.6.8 -> 1.7.0-rc01 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) | | | +--- 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.material3:material3-android:1.2.1 -| | | +--- androidx.activity:activity-compose:1.5.0 -> 1.9.1 -| | | | +--- androidx.activity:activity-ktx:1.9.1 (*) -| | | | +--- 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.ui:ui:1.0.1 -> 1.7.0-rc01 (*) -| | | | +--- 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) -| | | +--- 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.foundation:foundation:1.6.0 -> 1.7.0-rc01 (*) -| | | +--- 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-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 (*) -| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | | +--- 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.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) -| | | +--- 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 (*) -| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.0.20 (*) -| | | \--- androidx.compose.material3:material3-window-size-class:1.2.1 (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 (*) @@ -1156,7 +1292,7 @@ | | | +--- 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 (*) +| | | \--- com.squareup.okio:okio:3.8.0 -> 3.9.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 @@ -1182,80 +1318,7 @@ | | +--- 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.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.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-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) -| | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.4 (c) -| | | +--- 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) +| | +--- 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 (*) @@ -1330,7 +1393,7 @@ | +--- 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 (*) +| | | +--- androidx.fragment:fragment:1.5.7 -> 1.7.1 (*) | | | +--- 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 (*) @@ -1866,7 +1929,6 @@ | +--- androidx.compose.ui:ui-util:1.6.0 -> 1.7.0-rc01 (*) | +--- androidx.window:window:1.0.0 -> 1.3.0-rc01 (*) | +--- 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:material3:1.2.1 (c) +--- androidx.compose.runtime:runtime-tracing:1.0.0-beta01 | +--- androidx.annotation:annotation:1.3.0 -> 1.8.1 (*) @@ -1887,7 +1949,7 @@ | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.8.4 (*) | +--- 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.5.7 (*) +| +--- 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 (*) diff --git a/mifospay/dependencies/prodReleaseRuntimeClasspath.txt b/mifospay/dependencies/prodReleaseRuntimeClasspath.txt index 4bec621b..e408163a 100644 --- a/mifospay/dependencies/prodReleaseRuntimeClasspath.txt +++ b/mifospay/dependencies/prodReleaseRuntimeClasspath.txt @@ -34,6 +34,7 @@ :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 @@ -128,7 +129,8 @@ 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:1.5.7 +androidx.fragment:fragment-ktx:1.7.1 +androidx.fragment:fragment:1.7.1 androidx.graphics:graphics-path:1.0.1 androidx.hilt:hilt-navigation-compose:1.2.0 androidx.hilt:hilt-navigation:1.2.0 @@ -182,6 +184,12 @@ 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 +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 com.google.accompanist:accompanist-pager:0.34.0 com.google.android.datatransport:transport-api:3.2.0 @@ -255,22 +263,43 @@ 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.squareup.okhttp3:okhttp:4.12.0 -com.squareup.okio:okio-jvm:3.8.0 -com.squareup.okio:okio:3.8.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 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.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.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.runtime:runtime:1.6.11 +org.jetbrains.compose.ui:ui-tooling-preview: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 diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 6e2e36b5..df9426c8 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -20,20 +20,19 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ plugins { - kotlin("multiplatform") + alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.android.library) alias(libs.plugins.compose.compiler) alias(libs.plugins.jetbrainsCompose) + alias(libs.plugins.wire) id("kotlin-parcelize") } kotlin { - jvmToolchain(21) - androidTarget { @OptIn(ExperimentalKotlinGradlePluginApi::class) - compilerOptions() { - jvmTarget = JvmTarget.JVM_1_8 + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) } } @@ -61,14 +60,20 @@ kotlin { commonMain.dependencies { //put your multiplatform dependencies here - implementation(compose.material) + implementation(compose.runtime) implementation(compose.material3) + implementation(compose.ui) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + implementation(libs.kotlinx.datetime) implementation(libs.kotlinx.serialization.json) - implementation(libs.squareup.retrofit.converter.gson) + api(libs.koin.core) implementation(libs.koin.compose) implementation(libs.koin.compose.viewmodel) + + implementation(libs.datastore) } val desktopMain by getting { @@ -82,14 +87,33 @@ kotlin { task("testClasses") } +wire { + kotlin {} + sourcePath { + srcDir("src/commonMain/proto") + } +} + android { namespace = "org.mifospay.shared" compileSdk = 34 + defaultConfig { minSdk = 24 } + + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + dependencies { + debugImplementation(compose.uiTooling) } } diff --git a/shared/src/androidMain/kotlin/org/mifospay/shared/MainActivity.kt b/shared/src/androidMain/kotlin/org/mifospay/shared/MainActivity.kt index acefcdb2..e65339b5 100644 --- a/shared/src/androidMain/kotlin/org/mifospay/shared/MainActivity.kt +++ b/shared/src/androidMain/kotlin/org/mifospay/shared/MainActivity.kt @@ -1,3 +1,12 @@ +/* + * 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.shared import android.os.Bundle @@ -20,4 +29,4 @@ class MainActivity : ComponentActivity() { @Composable fun AppAndroidPreview() { App() -} \ No newline at end of file +} diff --git a/shared/src/androidMain/kotlin/org/mifospay/shared/MyApplication.kt b/shared/src/androidMain/kotlin/org/mifospay/shared/MyApplication.kt index 97d7c5de..6fccb03b 100644 --- a/shared/src/androidMain/kotlin/org/mifospay/shared/MyApplication.kt +++ b/shared/src/androidMain/kotlin/org/mifospay/shared/MyApplication.kt @@ -1,10 +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.shared import android.app.Application import org.koin.android.ext.koin.androidContext import org.mifospay.shared.di.initKoin -class MyApplication: Application() { +class MyApplication : Application() { override fun onCreate() { super.onCreate() @@ -12,4 +21,4 @@ class MyApplication: Application() { androidContext(this@MyApplication) } } -} \ No newline at end of file +} diff --git a/shared/src/androidMain/kotlin/org/mifospay/shared/Platform.android.kt b/shared/src/androidMain/kotlin/org/mifospay/shared/Platform.android.kt index 8b6bdb51..909044b9 100644 --- a/shared/src/androidMain/kotlin/org/mifospay/shared/Platform.android.kt +++ b/shared/src/androidMain/kotlin/org/mifospay/shared/Platform.android.kt @@ -19,4 +19,4 @@ class AndroidPlatform : Platform { actual fun getPlatform(): Platform = AndroidPlatform() actual typealias CommonParcelize = Parcelize -actual typealias CommonParcelable = Parcelable \ No newline at end of file +actual typealias CommonParcelable = Parcelable diff --git a/shared/src/androidMain/kotlin/org/mifospay/shared/di/AndroidPlatformContextProvider.kt b/shared/src/androidMain/kotlin/org/mifospay/shared/di/AndroidPlatformContextProvider.kt new file mode 100644 index 00000000..9c690822 --- /dev/null +++ b/shared/src/androidMain/kotlin/org/mifospay/shared/di/AndroidPlatformContextProvider.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.shared.di + +import android.content.Context + +object AndroidPlatformContextProvider { + private var appContext: Context? = null + + val context: Context? + get() = appContext + + fun setContext(context: Context) { + appContext = context + } +} diff --git a/shared/src/androidMain/kotlin/org/mifospay/shared/di/Modules.android.kt b/shared/src/androidMain/kotlin/org/mifospay/shared/di/Modules.android.kt index ff4565bf..8d463b4d 100644 --- a/shared/src/androidMain/kotlin/org/mifospay/shared/di/Modules.android.kt +++ b/shared/src/androidMain/kotlin/org/mifospay/shared/di/Modules.android.kt @@ -1,7 +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 + */ package org.mifospay.shared.di import org.koin.dsl.module actual val platformModule = module { - -} \ No newline at end of file +} diff --git a/shared/src/androidMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.android.kt b/shared/src/androidMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.android.kt new file mode 100644 index 00000000..7976d9c2 --- /dev/null +++ b/shared/src/androidMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.android.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.shared.preferences + +import androidx.datastore.core.DataStore +import okio.FileSystem +import okio.Path.Companion.toPath +import org.mifospay.shared.commonMain.proto.UserPreferences +import org.mifospay.shared.di.AndroidPlatformContextProvider + +actual fun getDataStore(): DataStore { + val content = requireNotNull(AndroidPlatformContextProvider.context) + val producePath = { content.filesDir.resolve(DATA_STORE_FILE_NAME).absolutePath.toPath() } + + return createDataStore(fileSystem = FileSystem.SYSTEM, producePath = producePath) +} diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/App.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/App.kt index e78ba62f..8e9fb536 100644 --- a/shared/src/commonMain/kotlin/org/mifospay/shared/App.kt +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/App.kt @@ -11,8 +11,8 @@ package org.mifospay.shared import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Text import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -21,7 +21,7 @@ import org.koin.compose.KoinContext @Composable fun App() { - KoinContext{ + KoinContext { Box( modifier = Modifier .fillMaxSize(), diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/Platform.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/Platform.kt index 9e1cb142..00ed0030 100644 --- a/shared/src/commonMain/kotlin/org/mifospay/shared/Platform.kt +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/Platform.kt @@ -23,4 +23,4 @@ expect fun getPlatform(): Platform expect annotation class CommonParcelize() // For Android Parcelable -expect interface CommonParcelable \ No newline at end of file +expect interface CommonParcelable diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/di/KoinModule.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/di/KoinModule.kt new file mode 100644 index 00000000..1af847cd --- /dev/null +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/di/KoinModule.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.shared.di + +import org.koin.core.context.startKoin +import org.koin.dsl.KoinAppDeclaration + +fun initKoin(config: KoinAppDeclaration? = null) { + startKoin { + config?.invoke(this) + modules(sharedModule, platformModule) + } +} diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/di/Modules.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/di/Modules.kt index 8118b580..9708d1fe 100644 --- a/shared/src/commonMain/kotlin/org/mifospay/shared/di/Modules.kt +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/di/Modules.kt @@ -1,3 +1,12 @@ +/* + * 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.shared.di import org.koin.core.module.Module @@ -6,5 +15,5 @@ import org.koin.dsl.module expect val platformModule: Module val sharedModule = module { - single { } -} \ No newline at end of file + single { } +} diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/di/initKoin.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/di/initKoin.kt deleted file mode 100644 index cc9e1d05..00000000 --- a/shared/src/commonMain/kotlin/org/mifospay/shared/di/initKoin.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.mifospay.shared.di - -import org.koin.core.context.startKoin -import org.koin.dsl.KoinAppDeclaration - -fun initKoin(config: KoinAppDeclaration? = null) { - startKoin { - config?.invoke(this) - modules(sharedModule, platformModule) - } -} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Client.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Client.kt index f57b526a..60f1e2d0 100644 --- a/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Client.kt +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Client.kt @@ -9,10 +9,6 @@ */ package org.mifospay.shared.modal.domain -import org.mifospay.shared.CommonParcelable -import org.mifospay.shared.CommonParcelize - -@CommonParcelize data class Client( var name: String? = null, var image: String, @@ -20,6 +16,4 @@ data class Client( var clientId: Long = 0L, var displayName: String, var mobileNo: String, -) : CommonParcelable{ - companion object -} +) diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Role.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Role.kt index 19724854..29bd13e8 100644 --- a/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Role.kt +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/Role.kt @@ -9,15 +9,9 @@ */ package org.mifospay.shared.modal.domain -import org.mifospay.shared.CommonParcelable -import org.mifospay.shared.CommonParcelize - -@CommonParcelize data class Role( var id: String? = null, var name: String? = null, var description: String? = null, val disabled: Boolean, -): CommonParcelable { - companion object -} +) diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/User.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/User.kt index 86ebec76..dad50bcc 100644 --- a/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/User.kt +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/User.kt @@ -9,10 +9,6 @@ */ package org.mifospay.shared.modal.domain -import org.mifospay.shared.CommonParcelable -import org.mifospay.shared.CommonParcelize - -@CommonParcelize data class User( val username: String, val userId: Long = 0, @@ -25,6 +21,4 @@ data class User( val clients: List, val shouldRenewPassword: Boolean, val isTwoFactorAuthenticationRequired: Boolean, -): CommonParcelable { - companion object -} +) diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/UserData.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/UserData.kt new file mode 100644 index 00000000..4191ecd6 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/modal/domain/UserData.kt @@ -0,0 +1,17 @@ +/* + * 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.shared.modal.domain + +data class UserData( + val authToken: String, + val user: String, + val userEmail: String, + val client: String, +) diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.kt new file mode 100644 index 00000000..2c7fbe6f --- /dev/null +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.kt @@ -0,0 +1,32 @@ +/* + * 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.shared.preferences + +import androidx.datastore.core.DataStore +import androidx.datastore.core.DataStoreFactory +import androidx.datastore.core.okio.OkioStorage +import okio.FileSystem +import okio.Path +import org.mifospay.shared.commonMain.proto.UserPreferences +internal const val DATA_STORE_FILE_NAME = "user.preferences_pb" + +expect fun getDataStore(): DataStore + +fun createDataStore( + fileSystem: FileSystem, + producePath: () -> Path, +): DataStore = + DataStoreFactory.create( + storage = OkioStorage( + fileSystem = fileSystem, + producePath = producePath, + serializer = UserPreferenceSerializer, + ), + ) diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/UserPreferenceRepository.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/UserPreferenceRepository.kt new file mode 100644 index 00000000..294905f0 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/UserPreferenceRepository.kt @@ -0,0 +1,169 @@ +/* + * 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.shared.preferences + +import androidx.datastore.core.DataStore +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.map +import org.mifospay.shared.commonMain.proto.Client +import org.mifospay.shared.commonMain.proto.User +import org.mifospay.shared.commonMain.proto.UserPreferences + +interface UserPreferenceRepository { + suspend fun saveToken(token: String) + fun getToken(): Flow + suspend fun saveFullName(name: String) + fun getFullName(): Flow + suspend fun saveUsername(name: String) + fun getUsername(): Flow + suspend fun saveEmail(email: String) + fun getEmail(): Flow + suspend fun saveMobile(mobile: String) + fun getMobile(): Flow + fun getUserId(): Flow + suspend fun setUserId(id: Int) + fun getClientId(): Flow + suspend fun setClientId(clientId: Int) + fun getClientVpa(): Flow + suspend fun setClientVpa(vpa: String) + fun getAccountId(): Flow + suspend fun setAccountId(accountId: Int) + fun getFirebaseRegId(): Flow + suspend fun setFirebaseRegId(firebaseRegId: String) + fun getUser(): Flow + suspend fun setUser(user: User) + fun getClient(): Flow + suspend fun setClient(client: Client) +} + +class UserPreferenceRepositoryImpl( + private val dataStore: DataStore = getDataStore(), +) : UserPreferenceRepository { + + override suspend fun saveToken(token: String) { + dataStore.updateData { preferences -> + preferences.copy(token = token) + } + } + + override fun getToken(): Flow { + return dataStore.data.map { it.token } + } + + override suspend fun saveFullName(name: String) { + dataStore.updateData { preferences -> + preferences.copy(name = name) + } + } + + override fun getFullName(): Flow { + return dataStore.data.map { it.name } + } + + override suspend fun saveUsername(name: String) { + dataStore.updateData { preferences -> + preferences.copy(username = name) + } + } + + override fun getUsername(): Flow { + return dataStore.data.map { it.username } + } + + override suspend fun saveEmail(email: String) { + dataStore.updateData { preferences -> + preferences.copy(email = email) + } + } + + override fun getEmail(): Flow { + return dataStore.data.map { it.email } + } + + override suspend fun saveMobile(mobile: String) { + dataStore.updateData { preferences -> + preferences.copy(mobile_no = mobile) + } + } + + override fun getMobile(): Flow { + return dataStore.data.map { it.mobile_no } + } + + override fun getUserId(): Flow { + return dataStore.data.map { it.user_id } + } + + override suspend fun setUserId(id: Int) { + dataStore.updateData { preferences -> + preferences.copy(user_id = id) + } + } + + override fun getClientId(): Flow { + return dataStore.data.map { it.client_id } + } + + override suspend fun setClientId(clientId: Int) { + dataStore.updateData { preferences -> + preferences.copy(client_id = clientId) + } + } + + override fun getClientVpa(): Flow { + return dataStore.data.map { it.client_vpa } + } + + override suspend fun setClientVpa(vpa: String) { + dataStore.updateData { preferences -> + preferences.copy(client_vpa = vpa) + } + } + + override fun getAccountId(): Flow { + return dataStore.data.map { it.account_id } + } + + override suspend fun setAccountId(accountId: Int) { + dataStore.updateData { preferences -> + preferences.copy(account_id = accountId) + } + } + + override fun getFirebaseRegId(): Flow { + return dataStore.data.map { it.firebase_reg_id } + } + + override suspend fun setFirebaseRegId(firebaseRegId: String) { + dataStore.updateData { preferences -> + preferences.copy(firebase_reg_id = firebaseRegId) + } + } + + override fun getUser(): Flow { + return dataStore.data.map { it.user!! } + } + + override suspend fun setUser(user: User) { + dataStore.updateData { preferences -> + preferences.copy(user = user) + } + } + + override fun getClient(): Flow { + return dataStore.data.map { it.client!! } + } + + override suspend fun setClient(client: Client) { + dataStore.updateData { preferences -> + preferences.copy(client = client) + } + } +} diff --git a/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/UserPreferenceSerializer.kt b/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/UserPreferenceSerializer.kt new file mode 100644 index 00000000..803b106a --- /dev/null +++ b/shared/src/commonMain/kotlin/org/mifospay/shared/preferences/UserPreferenceSerializer.kt @@ -0,0 +1,33 @@ +/* + * 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.shared.preferences + +import androidx.datastore.core.okio.OkioSerializer +import okio.BufferedSink +import okio.BufferedSource +import okio.IOException +import org.mifospay.shared.commonMain.proto.UserPreferences + +object UserPreferenceSerializer : OkioSerializer { + override val defaultValue: UserPreferences + get() = UserPreferences() + + override suspend fun readFrom(source: BufferedSource): UserPreferences { + try { + return UserPreferences.ADAPTER.decode(source) + } catch (exception: IOException) { + throw Exception(exception.message ?: "Serialization Exception") + } + } + + override suspend fun writeTo(t: UserPreferences, sink: BufferedSink) { + sink.write(t.encode()) + } +} diff --git a/shared/src/commonMain/proto/user_preferences.proto b/shared/src/commonMain/proto/user_preferences.proto new file mode 100644 index 00000000..1a7a43dc --- /dev/null +++ b/shared/src/commonMain/proto/user_preferences.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; + +option java_package = "org.mifospay.shared.commonMain.proto"; +option java_multiple_files = true; + +message UserPreferences { + string token = 1; + string name = 2; + string username = 3; + string email = 4; + string mobile_no = 5; + int32 user_id = 6; + int32 client_id = 7; + string client_vpa = 8; + int32 account_id = 9; + string firebase_reg_id = 10; + Client client = 11; + User user = 12; +} + +message Client { + string name = 1; + string image = 2; + string external_id = 3; + int64 clientId = 4; + string display_name = 5; + string mobileNo = 6; +} + +message User { + string username = 1; + int64 userId = 2; + string base64EncodedAuthenticationKey = 3; + bool authenticated = 4; + int32 officeId = 5; + string officeName = 6; + repeated Role roles = 7; + repeated string permissions = 8; + repeated int64 clients = 9; + bool shouldRenewPassword = 10; + bool isTwoFactorAuthenticationRequired = 11; +} + +message Role { + string id = 1; + string name = 2; + string description = 3; + bool disabled = 4; +} \ No newline at end of file diff --git a/shared/src/desktopMain/kotlin/org/mifospay/shared/Platform.desktop.kt b/shared/src/desktopMain/kotlin/org/mifospay/shared/Platform.desktop.kt index 651f9f0b..fcc74d58 100644 --- a/shared/src/desktopMain/kotlin/org/mifospay/shared/Platform.desktop.kt +++ b/shared/src/desktopMain/kotlin/org/mifospay/shared/Platform.desktop.kt @@ -20,4 +20,4 @@ class JVMPlatform : Platform { actual fun getPlatform(): Platform = JVMPlatform() -actual interface CommonParcelable \ No newline at end of file +actual interface CommonParcelable diff --git a/shared/src/desktopMain/kotlin/org/mifospay/shared/di/Modules.desktop.kt b/shared/src/desktopMain/kotlin/org/mifospay/shared/di/Modules.desktop.kt index 81933fcf..e7cbc931 100644 --- a/shared/src/desktopMain/kotlin/org/mifospay/shared/di/Modules.desktop.kt +++ b/shared/src/desktopMain/kotlin/org/mifospay/shared/di/Modules.desktop.kt @@ -1,6 +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 + */ package org.mifospay.shared.di import org.koin.core.module.Module actual val platformModule: Module - get() = TODO("Not yet implemented") \ No newline at end of file + get() = TODO("Not yet implemented") diff --git a/shared/src/desktopMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.desktop.kt b/shared/src/desktopMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.desktop.kt new file mode 100644 index 00000000..64fe263b --- /dev/null +++ b/shared/src/desktopMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.desktop.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.shared.preferences + +import androidx.datastore.core.DataStore +import okio.FileSystem +import okio.Path.Companion.toPath +import org.mifospay.shared.commonMain.proto.UserPreferences +import java.io.File + +actual fun getDataStore(): DataStore { + val dbFile = File(System.getProperty("java.io.tmpdir"), DATA_STORE_FILE_NAME) + + return createDataStore( + fileSystem = FileSystem.SYSTEM, + producePath = { dbFile.absolutePath.toPath() }, + ) +} diff --git a/shared/src/iosMain/kotlin/org/mifospay/shared/MainViewController.kt b/shared/src/iosMain/kotlin/org/mifospay/shared/MainViewController.kt index 2b3c9bdc..1f5f6765 100644 --- a/shared/src/iosMain/kotlin/org/mifospay/shared/MainViewController.kt +++ b/shared/src/iosMain/kotlin/org/mifospay/shared/MainViewController.kt @@ -1,12 +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.shared import androidx.compose.ui.window.ComposeUIViewController import org.mifospay.shared.di.initKoin -fun MainViewController() = ComposeUIViewController( +fun mainViewController() = ComposeUIViewController( configure = { initKoin() - } + }, ) { App() -} \ No newline at end of file +} diff --git a/shared/src/iosMain/kotlin/org/mifospay/shared/Platform.ios.kt b/shared/src/iosMain/kotlin/org/mifospay/shared/Platform.ios.kt index 7f17b010..22fb77da 100644 --- a/shared/src/iosMain/kotlin/org/mifospay/shared/Platform.ios.kt +++ b/shared/src/iosMain/kotlin/org/mifospay/shared/Platform.ios.kt @@ -17,4 +17,4 @@ class IOSPlatform : Platform { actual fun getPlatform(): Platform = IOSPlatform() -actual interface CommonParcelable \ No newline at end of file +actual interface CommonParcelable diff --git a/shared/src/iosMain/kotlin/org/mifospay/shared/di/Modules.ios.kt b/shared/src/iosMain/kotlin/org/mifospay/shared/di/Modules.ios.kt index 81933fcf..e7cbc931 100644 --- a/shared/src/iosMain/kotlin/org/mifospay/shared/di/Modules.ios.kt +++ b/shared/src/iosMain/kotlin/org/mifospay/shared/di/Modules.ios.kt @@ -1,6 +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 + */ package org.mifospay.shared.di import org.koin.core.module.Module actual val platformModule: Module - get() = TODO("Not yet implemented") \ No newline at end of file + get() = TODO("Not yet implemented") diff --git a/shared/src/iosMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.ios.kt b/shared/src/iosMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.ios.kt new file mode 100644 index 00000000..6e7e19d3 --- /dev/null +++ b/shared/src/iosMain/kotlin/org/mifospay/shared/preferences/DataStoreModule.ios.kt @@ -0,0 +1,33 @@ +/* + * 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.shared.preferences + +import androidx.datastore.core.DataStore +import okio.FileSystem +import okio.Path.Companion.toPath +import org.mifospay.shared.commonMain.proto.UserPreferences + +actual fun getDataStore(): DataStore { + return createDataStore( + fileSystem = FileSystem.SYSTEM, + producePath = { "${documentDirectory()}/$DATA_STORE_FILE_NAME".toPath() }, + ) +} + +private fun documentDirectory(): String { + val documentDirectory = NSFileManager.defaultManager.URLForDirectory( + directory = NSDocumentDirectory, + inDomain = NSUserDomainMask, + appropriateForURL = null, + create = false, + error = null, + ) + return requireNotNull(documentDirectory?.path) +}