fix(ios): use CocoaPods integration for cmp-shared (#2968)

This commit is contained in:
Hekmatullah 2025-09-07 15:31:38 +01:00 committed by GitHub
parent f47b96134b
commit 0eb2547a28
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
40 changed files with 724 additions and 386 deletions

8
.run/cmp-ios.run.xml Normal file
View File

@ -0,0 +1,8 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="cmp-ios" type="AppleRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="iosApp" TARGET_NAME="iosApp" CONFIG_NAME="Debug" IS_LOCATION_SIMULATION_SUPPORTED="true" SCHEME_NAME="cmp-ios" IS_LOCATION_SIMULATION_ALLOWED="true" LOCATION_SCENARIO_ID="com.apple.dt.IDEFoundation.CurrentLocationScenarioIdentifier" LOCATION_SCENARIO_TYPE="1" APPLICATION_LANGUAGE="IDELaunchSchemeLanguageUseSystemLanguage" APPLICATION_REGION="" RUN_TARGET_PROJECT_NAME="iosApp" RUN_TARGET_NAME="iosApp" MAKE_ACTIVE="TRUE" SHOULD_DEBUG_EXTENSIONS="false">
<embedded_app_extension_list />
<method v="2">
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
</method>
</configuration>
</component>

View File

@ -24,6 +24,7 @@ class CMPFeatureConventionPlugin : Plugin<Project> {
add("commonMainImplementation", libs.findLibrary("koin.compose.viewmodel").get())
add("commonMainImplementation", libs.findLibrary("jb.composeRuntime").get())
add("commonMainImplementation", libs.findLibrary("jb.lifecycle.compose").get())
add("commonMainImplementation", libs.findLibrary("jb.composeViewmodel").get())
add("commonMainImplementation", libs.findLibrary("jb.lifecycleViewmodel").get())
add("commonMainImplementation", libs.findLibrary("jb.lifecycleViewmodelSavedState").get())

View File

@ -8,6 +8,7 @@ buildscript {
}
plugins {
alias(libs.plugins.kotlinCocoapods) apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.android.test) apply false

View File

@ -17,61 +17,69 @@ androidx.camera:camera-view:1.4.1
androidx.collection:collection-jvm:1.5.0
androidx.collection:collection-ktx:1.5.0
androidx.collection:collection:1.5.0
androidx.compose.animation:animation-android:1.8.2
androidx.compose.animation:animation-core-android:1.8.2
androidx.compose.animation:animation-core:1.8.2
androidx.compose.animation:animation:1.8.2
androidx.compose.foundation:foundation-android:1.8.2
androidx.compose.foundation:foundation-layout-android:1.8.2
androidx.compose.foundation:foundation-layout:1.8.2
androidx.compose.foundation:foundation:1.8.2
androidx.compose.animation:animation-android:1.8.3
androidx.compose.animation:animation-core-android:1.8.3
androidx.compose.animation:animation-core:1.8.3
androidx.compose.animation:animation:1.8.3
androidx.compose.foundation:foundation-android:1.8.3
androidx.compose.foundation:foundation-layout-android:1.8.3
androidx.compose.foundation:foundation-layout:1.8.3
androidx.compose.foundation:foundation:1.8.3
androidx.compose.material3.adaptive:adaptive-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
androidx.compose.material3.adaptive:adaptive:1.1.0
androidx.compose.material3:material3-adaptive-navigation-suite-android:1.3.2
androidx.compose.material3:material3-adaptive-navigation-suite:1.3.2
androidx.compose.material3:material3-android:1.3.2
androidx.compose.material3:material3:1.3.2
androidx.compose.material:material-android:1.8.2
androidx.compose.material:material-icons-core-android:1.7.6
androidx.compose.material:material-icons-core:1.7.6
androidx.compose.material:material-icons-extended-android:1.7.6
androidx.compose.material:material-icons-extended:1.7.6
androidx.compose.material:material-ripple-android:1.8.2
androidx.compose.material:material-ripple:1.8.2
androidx.compose.material:material:1.8.2
androidx.compose.runtime:runtime-android:1.8.2
androidx.compose.runtime:runtime-saveable-android:1.8.2
androidx.compose.runtime:runtime-saveable:1.8.2
androidx.compose.runtime:runtime:1.8.2
androidx.compose.ui:ui-android:1.8.2
androidx.compose.ui:ui-geometry-android:1.8.2
androidx.compose.ui:ui-geometry:1.8.2
androidx.compose.ui:ui-graphics-android:1.8.2
androidx.compose.ui:ui-graphics:1.8.2
androidx.compose.ui:ui-text-android:1.8.2
androidx.compose.ui:ui-text:1.8.2
androidx.compose.ui:ui-tooling-android:1.8.2
androidx.compose.ui:ui-tooling-data-android:1.8.2
androidx.compose.ui:ui-tooling-data:1.8.2
androidx.compose.ui:ui-tooling-preview-android:1.8.2
androidx.compose.ui:ui-tooling-preview:1.8.2
androidx.compose.ui:ui-tooling:1.8.2
androidx.compose.ui:ui-unit-android:1.8.2
androidx.compose.ui:ui-unit:1.8.2
androidx.compose.ui:ui-util-android:1.8.2
androidx.compose.ui:ui-util:1.8.2
androidx.compose.ui:ui:1.8.2
androidx.compose:compose-bom:2024.12.01
androidx.compose.material:material-android:1.8.3
androidx.compose.material:material-icons-core-android:1.7.8
androidx.compose.material:material-icons-core:1.7.8
androidx.compose.material:material-icons-extended-android:1.7.8
androidx.compose.material:material-icons-extended:1.7.8
androidx.compose.material:material-ripple-android:1.8.3
androidx.compose.material:material-ripple:1.8.3
androidx.compose.material:material:1.8.3
androidx.compose.runtime:runtime-android:1.8.3
androidx.compose.runtime:runtime-saveable-android:1.8.3
androidx.compose.runtime:runtime-saveable:1.8.3
androidx.compose.runtime:runtime:1.8.3
androidx.compose.ui:ui-android:1.8.3
androidx.compose.ui:ui-geometry-android:1.8.3
androidx.compose.ui:ui-geometry:1.8.3
androidx.compose.ui:ui-graphics-android:1.8.3
androidx.compose.ui:ui-graphics:1.8.3
androidx.compose.ui:ui-text-android:1.8.3
androidx.compose.ui:ui-text:1.8.3
androidx.compose.ui:ui-tooling-android:1.8.3
androidx.compose.ui:ui-tooling-data-android:1.8.3
androidx.compose.ui:ui-tooling-data:1.8.3
androidx.compose.ui:ui-tooling-preview-android:1.8.3
androidx.compose.ui:ui-tooling-preview:1.8.3
androidx.compose.ui:ui-tooling:1.8.3
androidx.compose.ui:ui-unit-android:1.8.3
androidx.compose.ui:ui-unit:1.8.3
androidx.compose.ui:ui-util-android:1.8.3
androidx.compose.ui:ui-util:1.8.3
androidx.compose.ui:ui:1.8.3
androidx.compose:compose-bom:2025.06.01
androidx.concurrent:concurrent-futures-ktx:1.1.0
androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.15.0
androidx.core:core-ktx:1.16.0
androidx.core:core-splashscreen:1.0.1
androidx.core:core-viewtree:1.0.0
androidx.core:core:1.15.0
androidx.core:core:1.16.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.10.0
androidx.databinding:databinding-common:8.10.0
androidx.databinding:databinding-ktx:8.10.0
androidx.databinding:databinding-runtime:8.10.0
androidx.databinding:viewbinding:8.10.0
androidx.datastore:datastore-core:1.0.0
androidx.datastore:datastore-preferences-core:1.0.0
androidx.datastore:datastore-preferences:1.0.0
@ -130,15 +138,18 @@ androidx.savedstate:savedstate-ktx:1.3.1
androidx.savedstate:savedstate:1.3.1
androidx.slidingpanelayout:slidingpanelayout:1.2.0
androidx.startup:startup-runtime:1.2.0
androidx.tracing:tracing-ktx:1.2.0
androidx.tracing:tracing:1.2.0
androidx.tracing:tracing-android:1.3.0
androidx.tracing:tracing-ktx:1.3.0
androidx.tracing:tracing:1.3.0
androidx.transition:transition:1.4.1
androidx.vectordrawable:vectordrawable-animated:1.2.0
androidx.vectordrawable:vectordrawable:1.2.0
androidx.versionedparcelable:versionedparcelable:1.1.1
androidx.viewpager:viewpager:1.0.0
androidx.window.extensions.core:core:1.0.0
androidx.window:window:1.2.0
androidx.window:window-core-android:1.3.0
androidx.window:window-core:1.3.0
androidx.window:window:1.3.0
co.touchlab:kermit-android-debug:2.0.6
co.touchlab:kermit-core-android-debug:2.0.6
co.touchlab:kermit-core:2.0.6
@ -159,7 +170,8 @@ com.attafitamim.krop:ui-android:0.1.6
com.attafitamim.krop:ui:0.1.6
com.caverock:androidsvg-aar:1.4
com.google.accompanist:accompanist-drawablepainter:0.37.3
com.google.accompanist:accompanist-permissions:0.37.3
com.google.accompanist:accompanist-pager:0.36.0
com.google.accompanist:accompanist-permissions:0.36.0
com.google.android.datatransport:transport-api:3.2.0
com.google.android.datatransport:transport-backend-cct:3.3.0
com.google.android.datatransport:transport-runtime:3.3.0
@ -231,6 +243,7 @@ de.jensklingenberg.ktorfit:ktorfit-lib-light:2.5.2
de.jensklingenberg.ktorfit:ktorfit-lib:2.5.2
dev.chrisbanes.material3:material3-window-size-class-multiplatform-android:0.5.0
dev.chrisbanes.material3:material3-window-size-class-multiplatform:0.5.0
dev.chrisbanes.snapper:snapper:0.2.2
io.coil-kt.coil3:coil-android:3.2.0
io.coil-kt.coil3:coil-compose-android:3.2.0
io.coil-kt.coil3:coil-compose-core-android:3.2.0
@ -271,12 +284,14 @@ io.github.panpf.zoomimage:zoomimage-core-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3:1.3.0
io.github.panpf.zoomimage:zoomimage-core:1.3.0
io.github.vinceglb:filekit-core-android:0.10.0
io.github.vinceglb:filekit-core:0.10.0
io.github.vinceglb:filekit-dialogs-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose:0.10.0
io.github.vinceglb:filekit-dialogs:0.10.0
io.github.vinceglb:filekit-compose-android:0.8.8
io.github.vinceglb:filekit-compose:0.8.8
io.github.vinceglb:filekit-core-android:0.10.0-beta04
io.github.vinceglb:filekit-core:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose:0.10.0-beta04
io.github.vinceglb:filekit-dialogs:0.10.0-beta04
io.insert-koin:koin-android:4.1.0
io.insert-koin:koin-androidx-compose:4.1.0
io.insert-koin:koin-androidx-navigation:4.1.0
@ -345,7 +360,8 @@ org.jetbrains.androidx.navigation:navigation-common:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-runtime:2.9.0-beta03
org.jetbrains.androidx.savedstate:savedstate-compose:1.3.1
org.jetbrains.androidx.savedstate:savedstate:1.3.3
org.jetbrains.androidx.savedstate:savedstate:1.3.1
org.jetbrains.androidx.window:window-core:1.3.1
org.jetbrains.compose.animation:animation-core:1.8.2
org.jetbrains.compose.animation:animation:1.8.2
org.jetbrains.compose.annotation-internal:annotation:1.8.2
@ -356,6 +372,10 @@ org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
org.jetbrains.compose.foundation:foundation-layout:1.8.2
org.jetbrains.compose.foundation:foundation:1.8.2
org.jetbrains.compose.material3.adaptive:adaptive-layout:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive-navigation:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive:1.1.2
org.jetbrains.compose.material3:material3-adaptive-navigation-suite:1.8.2
org.jetbrains.compose.material3:material3:1.8.2
org.jetbrains.compose.material:material-icons-core:1.7.3
org.jetbrains.compose.material:material-icons-extended:1.7.3
@ -374,12 +394,12 @@ org.jetbrains.compose.ui:ui-tooling:1.8.2
org.jetbrains.compose.ui:ui-unit:1.8.2
org.jetbrains.compose.ui:ui-util:1.8.2
org.jetbrains.compose.ui:ui:1.8.2
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.10
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.10
org.jetbrains.kotlin:kotlin-reflect:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20
org.jetbrains.kotlin:kotlin-reflect:2.1.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0
org.jetbrains.kotlin:kotlin-stdlib:2.1.21
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8
@ -390,19 +410,19 @@ org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.10.2
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core:0.7.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1
org.jetbrains:annotations:23.0.0
org.jspecify:jspecify:1.0.0
org.slf4j:slf4j-api:2.0.16

View File

@ -17,61 +17,69 @@ androidx.camera:camera-view:1.4.1
androidx.collection:collection-jvm:1.5.0
androidx.collection:collection-ktx:1.5.0
androidx.collection:collection:1.5.0
androidx.compose.animation:animation-android:1.8.2
androidx.compose.animation:animation-core-android:1.8.2
androidx.compose.animation:animation-core:1.8.2
androidx.compose.animation:animation:1.8.2
androidx.compose.foundation:foundation-android:1.8.2
androidx.compose.foundation:foundation-layout-android:1.8.2
androidx.compose.foundation:foundation-layout:1.8.2
androidx.compose.foundation:foundation:1.8.2
androidx.compose.animation:animation-android:1.8.3
androidx.compose.animation:animation-core-android:1.8.3
androidx.compose.animation:animation-core:1.8.3
androidx.compose.animation:animation:1.8.3
androidx.compose.foundation:foundation-android:1.8.3
androidx.compose.foundation:foundation-layout-android:1.8.3
androidx.compose.foundation:foundation-layout:1.8.3
androidx.compose.foundation:foundation:1.8.3
androidx.compose.material3.adaptive:adaptive-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
androidx.compose.material3.adaptive:adaptive:1.1.0
androidx.compose.material3:material3-adaptive-navigation-suite-android:1.3.2
androidx.compose.material3:material3-adaptive-navigation-suite:1.3.2
androidx.compose.material3:material3-android:1.3.2
androidx.compose.material3:material3:1.3.2
androidx.compose.material:material-android:1.8.2
androidx.compose.material:material-icons-core-android:1.7.6
androidx.compose.material:material-icons-core:1.7.6
androidx.compose.material:material-icons-extended-android:1.7.6
androidx.compose.material:material-icons-extended:1.7.6
androidx.compose.material:material-ripple-android:1.8.2
androidx.compose.material:material-ripple:1.8.2
androidx.compose.material:material:1.8.2
androidx.compose.runtime:runtime-android:1.8.2
androidx.compose.runtime:runtime-saveable-android:1.8.2
androidx.compose.runtime:runtime-saveable:1.8.2
androidx.compose.runtime:runtime:1.8.2
androidx.compose.ui:ui-android:1.8.2
androidx.compose.ui:ui-geometry-android:1.8.2
androidx.compose.ui:ui-geometry:1.8.2
androidx.compose.ui:ui-graphics-android:1.8.2
androidx.compose.ui:ui-graphics:1.8.2
androidx.compose.ui:ui-text-android:1.8.2
androidx.compose.ui:ui-text:1.8.2
androidx.compose.ui:ui-tooling-android:1.8.2
androidx.compose.ui:ui-tooling-data-android:1.8.2
androidx.compose.ui:ui-tooling-data:1.8.2
androidx.compose.ui:ui-tooling-preview-android:1.8.2
androidx.compose.ui:ui-tooling-preview:1.8.2
androidx.compose.ui:ui-tooling:1.8.2
androidx.compose.ui:ui-unit-android:1.8.2
androidx.compose.ui:ui-unit:1.8.2
androidx.compose.ui:ui-util-android:1.8.2
androidx.compose.ui:ui-util:1.8.2
androidx.compose.ui:ui:1.8.2
androidx.compose:compose-bom:2024.12.01
androidx.compose.material:material-android:1.8.3
androidx.compose.material:material-icons-core-android:1.7.8
androidx.compose.material:material-icons-core:1.7.8
androidx.compose.material:material-icons-extended-android:1.7.8
androidx.compose.material:material-icons-extended:1.7.8
androidx.compose.material:material-ripple-android:1.8.3
androidx.compose.material:material-ripple:1.8.3
androidx.compose.material:material:1.8.3
androidx.compose.runtime:runtime-android:1.8.3
androidx.compose.runtime:runtime-saveable-android:1.8.3
androidx.compose.runtime:runtime-saveable:1.8.3
androidx.compose.runtime:runtime:1.8.3
androidx.compose.ui:ui-android:1.8.3
androidx.compose.ui:ui-geometry-android:1.8.3
androidx.compose.ui:ui-geometry:1.8.3
androidx.compose.ui:ui-graphics-android:1.8.3
androidx.compose.ui:ui-graphics:1.8.3
androidx.compose.ui:ui-text-android:1.8.3
androidx.compose.ui:ui-text:1.8.3
androidx.compose.ui:ui-tooling-android:1.8.3
androidx.compose.ui:ui-tooling-data-android:1.8.3
androidx.compose.ui:ui-tooling-data:1.8.3
androidx.compose.ui:ui-tooling-preview-android:1.8.3
androidx.compose.ui:ui-tooling-preview:1.8.3
androidx.compose.ui:ui-tooling:1.8.3
androidx.compose.ui:ui-unit-android:1.8.3
androidx.compose.ui:ui-unit:1.8.3
androidx.compose.ui:ui-util-android:1.8.3
androidx.compose.ui:ui-util:1.8.3
androidx.compose.ui:ui:1.8.3
androidx.compose:compose-bom:2025.06.01
androidx.concurrent:concurrent-futures-ktx:1.1.0
androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.15.0
androidx.core:core-ktx:1.16.0
androidx.core:core-splashscreen:1.0.1
androidx.core:core-viewtree:1.0.0
androidx.core:core:1.15.0
androidx.core:core:1.16.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.10.0
androidx.databinding:databinding-common:8.10.0
androidx.databinding:databinding-ktx:8.10.0
androidx.databinding:databinding-runtime:8.10.0
androidx.databinding:viewbinding:8.10.0
androidx.datastore:datastore-core:1.0.0
androidx.datastore:datastore-preferences-core:1.0.0
androidx.datastore:datastore-preferences:1.0.0
@ -130,15 +138,18 @@ androidx.savedstate:savedstate-ktx:1.3.1
androidx.savedstate:savedstate:1.3.1
androidx.slidingpanelayout:slidingpanelayout:1.2.0
androidx.startup:startup-runtime:1.2.0
androidx.tracing:tracing-ktx:1.2.0
androidx.tracing:tracing:1.2.0
androidx.tracing:tracing-android:1.3.0
androidx.tracing:tracing-ktx:1.3.0
androidx.tracing:tracing:1.3.0
androidx.transition:transition:1.4.1
androidx.vectordrawable:vectordrawable-animated:1.2.0
androidx.vectordrawable:vectordrawable:1.2.0
androidx.versionedparcelable:versionedparcelable:1.1.1
androidx.viewpager:viewpager:1.0.0
androidx.window.extensions.core:core:1.0.0
androidx.window:window:1.2.0
androidx.window:window-core-android:1.3.0
androidx.window:window-core:1.3.0
androidx.window:window:1.3.0
co.touchlab:kermit-android:2.0.6
co.touchlab:kermit-core-android:2.0.6
co.touchlab:kermit-core:2.0.6
@ -159,7 +170,8 @@ com.attafitamim.krop:ui-android:0.1.6
com.attafitamim.krop:ui:0.1.6
com.caverock:androidsvg-aar:1.4
com.google.accompanist:accompanist-drawablepainter:0.37.3
com.google.accompanist:accompanist-permissions:0.37.3
com.google.accompanist:accompanist-pager:0.36.0
com.google.accompanist:accompanist-permissions:0.36.0
com.google.android.datatransport:transport-api:3.2.0
com.google.android.datatransport:transport-backend-cct:3.3.0
com.google.android.datatransport:transport-runtime:3.3.0
@ -231,6 +243,7 @@ de.jensklingenberg.ktorfit:ktorfit-lib-light:2.5.2
de.jensklingenberg.ktorfit:ktorfit-lib:2.5.2
dev.chrisbanes.material3:material3-window-size-class-multiplatform-android:0.5.0
dev.chrisbanes.material3:material3-window-size-class-multiplatform:0.5.0
dev.chrisbanes.snapper:snapper:0.2.2
io.coil-kt.coil3:coil-android:3.2.0
io.coil-kt.coil3:coil-compose-android:3.2.0
io.coil-kt.coil3:coil-compose-core-android:3.2.0
@ -271,12 +284,14 @@ io.github.panpf.zoomimage:zoomimage-core-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3:1.3.0
io.github.panpf.zoomimage:zoomimage-core:1.3.0
io.github.vinceglb:filekit-core-android:0.10.0
io.github.vinceglb:filekit-core:0.10.0
io.github.vinceglb:filekit-dialogs-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose:0.10.0
io.github.vinceglb:filekit-dialogs:0.10.0
io.github.vinceglb:filekit-compose-android:0.8.8
io.github.vinceglb:filekit-compose:0.8.8
io.github.vinceglb:filekit-core-android:0.10.0-beta04
io.github.vinceglb:filekit-core:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose:0.10.0-beta04
io.github.vinceglb:filekit-dialogs:0.10.0-beta04
io.insert-koin:koin-android:4.1.0
io.insert-koin:koin-androidx-compose:4.1.0
io.insert-koin:koin-androidx-navigation:4.1.0
@ -345,7 +360,8 @@ org.jetbrains.androidx.navigation:navigation-common:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-runtime:2.9.0-beta03
org.jetbrains.androidx.savedstate:savedstate-compose:1.3.1
org.jetbrains.androidx.savedstate:savedstate:1.3.3
org.jetbrains.androidx.savedstate:savedstate:1.3.1
org.jetbrains.androidx.window:window-core:1.3.1
org.jetbrains.compose.animation:animation-core:1.8.2
org.jetbrains.compose.animation:animation:1.8.2
org.jetbrains.compose.annotation-internal:annotation:1.8.2
@ -356,6 +372,10 @@ org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
org.jetbrains.compose.foundation:foundation-layout:1.8.2
org.jetbrains.compose.foundation:foundation:1.8.2
org.jetbrains.compose.material3.adaptive:adaptive-layout:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive-navigation:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive:1.1.2
org.jetbrains.compose.material3:material3-adaptive-navigation-suite:1.8.2
org.jetbrains.compose.material3:material3:1.8.2
org.jetbrains.compose.material:material-icons-core:1.7.3
org.jetbrains.compose.material:material-icons-extended:1.7.3
@ -371,12 +391,12 @@ org.jetbrains.compose.ui:ui-text:1.8.2
org.jetbrains.compose.ui:ui-unit:1.8.2
org.jetbrains.compose.ui:ui-util:1.8.2
org.jetbrains.compose.ui:ui:1.8.2
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.10
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.10
org.jetbrains.kotlin:kotlin-reflect:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20
org.jetbrains.kotlin:kotlin-reflect:2.1.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0
org.jetbrains.kotlin:kotlin-stdlib:2.1.21
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8
@ -387,19 +407,19 @@ org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.10.2
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core:0.7.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1
org.jetbrains:annotations:23.0.0
org.jspecify:jspecify:1.0.0
org.slf4j:slf4j-api:2.0.16

View File

@ -17,61 +17,69 @@ androidx.camera:camera-view:1.4.1
androidx.collection:collection-jvm:1.5.0
androidx.collection:collection-ktx:1.5.0
androidx.collection:collection:1.5.0
androidx.compose.animation:animation-android:1.8.2
androidx.compose.animation:animation-core-android:1.8.2
androidx.compose.animation:animation-core:1.8.2
androidx.compose.animation:animation:1.8.2
androidx.compose.foundation:foundation-android:1.8.2
androidx.compose.foundation:foundation-layout-android:1.8.2
androidx.compose.foundation:foundation-layout:1.8.2
androidx.compose.foundation:foundation:1.8.2
androidx.compose.animation:animation-android:1.8.3
androidx.compose.animation:animation-core-android:1.8.3
androidx.compose.animation:animation-core:1.8.3
androidx.compose.animation:animation:1.8.3
androidx.compose.foundation:foundation-android:1.8.3
androidx.compose.foundation:foundation-layout-android:1.8.3
androidx.compose.foundation:foundation-layout:1.8.3
androidx.compose.foundation:foundation:1.8.3
androidx.compose.material3.adaptive:adaptive-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
androidx.compose.material3.adaptive:adaptive:1.1.0
androidx.compose.material3:material3-adaptive-navigation-suite-android:1.3.2
androidx.compose.material3:material3-adaptive-navigation-suite:1.3.2
androidx.compose.material3:material3-android:1.3.2
androidx.compose.material3:material3:1.3.2
androidx.compose.material:material-android:1.8.2
androidx.compose.material:material-icons-core-android:1.7.6
androidx.compose.material:material-icons-core:1.7.6
androidx.compose.material:material-icons-extended-android:1.7.6
androidx.compose.material:material-icons-extended:1.7.6
androidx.compose.material:material-ripple-android:1.8.2
androidx.compose.material:material-ripple:1.8.2
androidx.compose.material:material:1.8.2
androidx.compose.runtime:runtime-android:1.8.2
androidx.compose.runtime:runtime-saveable-android:1.8.2
androidx.compose.runtime:runtime-saveable:1.8.2
androidx.compose.runtime:runtime:1.8.2
androidx.compose.ui:ui-android:1.8.2
androidx.compose.ui:ui-geometry-android:1.8.2
androidx.compose.ui:ui-geometry:1.8.2
androidx.compose.ui:ui-graphics-android:1.8.2
androidx.compose.ui:ui-graphics:1.8.2
androidx.compose.ui:ui-text-android:1.8.2
androidx.compose.ui:ui-text:1.8.2
androidx.compose.ui:ui-tooling-android:1.8.2
androidx.compose.ui:ui-tooling-data-android:1.8.2
androidx.compose.ui:ui-tooling-data:1.8.2
androidx.compose.ui:ui-tooling-preview-android:1.8.2
androidx.compose.ui:ui-tooling-preview:1.8.2
androidx.compose.ui:ui-tooling:1.8.2
androidx.compose.ui:ui-unit-android:1.8.2
androidx.compose.ui:ui-unit:1.8.2
androidx.compose.ui:ui-util-android:1.8.2
androidx.compose.ui:ui-util:1.8.2
androidx.compose.ui:ui:1.8.2
androidx.compose:compose-bom:2024.12.01
androidx.compose.material:material-android:1.8.3
androidx.compose.material:material-icons-core-android:1.7.8
androidx.compose.material:material-icons-core:1.7.8
androidx.compose.material:material-icons-extended-android:1.7.8
androidx.compose.material:material-icons-extended:1.7.8
androidx.compose.material:material-ripple-android:1.8.3
androidx.compose.material:material-ripple:1.8.3
androidx.compose.material:material:1.8.3
androidx.compose.runtime:runtime-android:1.8.3
androidx.compose.runtime:runtime-saveable-android:1.8.3
androidx.compose.runtime:runtime-saveable:1.8.3
androidx.compose.runtime:runtime:1.8.3
androidx.compose.ui:ui-android:1.8.3
androidx.compose.ui:ui-geometry-android:1.8.3
androidx.compose.ui:ui-geometry:1.8.3
androidx.compose.ui:ui-graphics-android:1.8.3
androidx.compose.ui:ui-graphics:1.8.3
androidx.compose.ui:ui-text-android:1.8.3
androidx.compose.ui:ui-text:1.8.3
androidx.compose.ui:ui-tooling-android:1.8.3
androidx.compose.ui:ui-tooling-data-android:1.8.3
androidx.compose.ui:ui-tooling-data:1.8.3
androidx.compose.ui:ui-tooling-preview-android:1.8.3
androidx.compose.ui:ui-tooling-preview:1.8.3
androidx.compose.ui:ui-tooling:1.8.3
androidx.compose.ui:ui-unit-android:1.8.3
androidx.compose.ui:ui-unit:1.8.3
androidx.compose.ui:ui-util-android:1.8.3
androidx.compose.ui:ui-util:1.8.3
androidx.compose.ui:ui:1.8.3
androidx.compose:compose-bom:2025.06.01
androidx.concurrent:concurrent-futures-ktx:1.1.0
androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.15.0
androidx.core:core-ktx:1.16.0
androidx.core:core-splashscreen:1.0.1
androidx.core:core-viewtree:1.0.0
androidx.core:core:1.15.0
androidx.core:core:1.16.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.10.0
androidx.databinding:databinding-common:8.10.0
androidx.databinding:databinding-ktx:8.10.0
androidx.databinding:databinding-runtime:8.10.0
androidx.databinding:viewbinding:8.10.0
androidx.datastore:datastore-core:1.0.0
androidx.datastore:datastore-preferences-core:1.0.0
androidx.datastore:datastore-preferences:1.0.0
@ -130,15 +138,18 @@ androidx.savedstate:savedstate-ktx:1.3.1
androidx.savedstate:savedstate:1.3.1
androidx.slidingpanelayout:slidingpanelayout:1.2.0
androidx.startup:startup-runtime:1.2.0
androidx.tracing:tracing-ktx:1.2.0
androidx.tracing:tracing:1.2.0
androidx.tracing:tracing-android:1.3.0
androidx.tracing:tracing-ktx:1.3.0
androidx.tracing:tracing:1.3.0
androidx.transition:transition:1.4.1
androidx.vectordrawable:vectordrawable-animated:1.2.0
androidx.vectordrawable:vectordrawable:1.2.0
androidx.versionedparcelable:versionedparcelable:1.1.1
androidx.viewpager:viewpager:1.0.0
androidx.window.extensions.core:core:1.0.0
androidx.window:window:1.2.0
androidx.window:window-core-android:1.3.0
androidx.window:window-core:1.3.0
androidx.window:window:1.3.0
co.touchlab:kermit-android-debug:2.0.6
co.touchlab:kermit-core-android-debug:2.0.6
co.touchlab:kermit-core:2.0.6
@ -159,7 +170,8 @@ com.attafitamim.krop:ui-android:0.1.6
com.attafitamim.krop:ui:0.1.6
com.caverock:androidsvg-aar:1.4
com.google.accompanist:accompanist-drawablepainter:0.37.3
com.google.accompanist:accompanist-permissions:0.37.3
com.google.accompanist:accompanist-pager:0.36.0
com.google.accompanist:accompanist-permissions:0.36.0
com.google.android.datatransport:transport-api:3.2.0
com.google.android.datatransport:transport-backend-cct:3.3.0
com.google.android.datatransport:transport-runtime:3.3.0
@ -231,6 +243,7 @@ de.jensklingenberg.ktorfit:ktorfit-lib-light:2.5.2
de.jensklingenberg.ktorfit:ktorfit-lib:2.5.2
dev.chrisbanes.material3:material3-window-size-class-multiplatform-android:0.5.0
dev.chrisbanes.material3:material3-window-size-class-multiplatform:0.5.0
dev.chrisbanes.snapper:snapper:0.2.2
io.coil-kt.coil3:coil-android:3.2.0
io.coil-kt.coil3:coil-compose-android:3.2.0
io.coil-kt.coil3:coil-compose-core-android:3.2.0
@ -271,12 +284,14 @@ io.github.panpf.zoomimage:zoomimage-core-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3:1.3.0
io.github.panpf.zoomimage:zoomimage-core:1.3.0
io.github.vinceglb:filekit-core-android:0.10.0
io.github.vinceglb:filekit-core:0.10.0
io.github.vinceglb:filekit-dialogs-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose:0.10.0
io.github.vinceglb:filekit-dialogs:0.10.0
io.github.vinceglb:filekit-compose-android:0.8.8
io.github.vinceglb:filekit-compose:0.8.8
io.github.vinceglb:filekit-core-android:0.10.0-beta04
io.github.vinceglb:filekit-core:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose:0.10.0-beta04
io.github.vinceglb:filekit-dialogs:0.10.0-beta04
io.insert-koin:koin-android:4.1.0
io.insert-koin:koin-androidx-compose:4.1.0
io.insert-koin:koin-androidx-navigation:4.1.0
@ -345,7 +360,8 @@ org.jetbrains.androidx.navigation:navigation-common:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-runtime:2.9.0-beta03
org.jetbrains.androidx.savedstate:savedstate-compose:1.3.1
org.jetbrains.androidx.savedstate:savedstate:1.3.3
org.jetbrains.androidx.savedstate:savedstate:1.3.1
org.jetbrains.androidx.window:window-core:1.3.1
org.jetbrains.compose.animation:animation-core:1.8.2
org.jetbrains.compose.animation:animation:1.8.2
org.jetbrains.compose.annotation-internal:annotation:1.8.2
@ -356,6 +372,10 @@ org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
org.jetbrains.compose.foundation:foundation-layout:1.8.2
org.jetbrains.compose.foundation:foundation:1.8.2
org.jetbrains.compose.material3.adaptive:adaptive-layout:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive-navigation:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive:1.1.2
org.jetbrains.compose.material3:material3-adaptive-navigation-suite:1.8.2
org.jetbrains.compose.material3:material3:1.8.2
org.jetbrains.compose.material:material-icons-core:1.7.3
org.jetbrains.compose.material:material-icons-extended:1.7.3
@ -374,12 +394,12 @@ org.jetbrains.compose.ui:ui-tooling:1.8.2
org.jetbrains.compose.ui:ui-unit:1.8.2
org.jetbrains.compose.ui:ui-util:1.8.2
org.jetbrains.compose.ui:ui:1.8.2
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.10
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.10
org.jetbrains.kotlin:kotlin-reflect:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20
org.jetbrains.kotlin:kotlin-reflect:2.1.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0
org.jetbrains.kotlin:kotlin-stdlib:2.1.21
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8
@ -390,19 +410,19 @@ org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.10.2
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core:0.7.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1
org.jetbrains:annotations:23.0.0
org.jspecify:jspecify:1.0.0
org.slf4j:slf4j-api:2.0.16

View File

@ -17,61 +17,69 @@ androidx.camera:camera-view:1.4.1
androidx.collection:collection-jvm:1.5.0
androidx.collection:collection-ktx:1.5.0
androidx.collection:collection:1.5.0
androidx.compose.animation:animation-android:1.8.2
androidx.compose.animation:animation-core-android:1.8.2
androidx.compose.animation:animation-core:1.8.2
androidx.compose.animation:animation:1.8.2
androidx.compose.foundation:foundation-android:1.8.2
androidx.compose.foundation:foundation-layout-android:1.8.2
androidx.compose.foundation:foundation-layout:1.8.2
androidx.compose.foundation:foundation:1.8.2
androidx.compose.animation:animation-android:1.8.3
androidx.compose.animation:animation-core-android:1.8.3
androidx.compose.animation:animation-core:1.8.3
androidx.compose.animation:animation:1.8.3
androidx.compose.foundation:foundation-android:1.8.3
androidx.compose.foundation:foundation-layout-android:1.8.3
androidx.compose.foundation:foundation-layout:1.8.3
androidx.compose.foundation:foundation:1.8.3
androidx.compose.material3.adaptive:adaptive-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
androidx.compose.material3.adaptive:adaptive:1.1.0
androidx.compose.material3:material3-adaptive-navigation-suite-android:1.3.2
androidx.compose.material3:material3-adaptive-navigation-suite:1.3.2
androidx.compose.material3:material3-android:1.3.2
androidx.compose.material3:material3:1.3.2
androidx.compose.material:material-android:1.8.2
androidx.compose.material:material-icons-core-android:1.7.6
androidx.compose.material:material-icons-core:1.7.6
androidx.compose.material:material-icons-extended-android:1.7.6
androidx.compose.material:material-icons-extended:1.7.6
androidx.compose.material:material-ripple-android:1.8.2
androidx.compose.material:material-ripple:1.8.2
androidx.compose.material:material:1.8.2
androidx.compose.runtime:runtime-android:1.8.2
androidx.compose.runtime:runtime-saveable-android:1.8.2
androidx.compose.runtime:runtime-saveable:1.8.2
androidx.compose.runtime:runtime:1.8.2
androidx.compose.ui:ui-android:1.8.2
androidx.compose.ui:ui-geometry-android:1.8.2
androidx.compose.ui:ui-geometry:1.8.2
androidx.compose.ui:ui-graphics-android:1.8.2
androidx.compose.ui:ui-graphics:1.8.2
androidx.compose.ui:ui-text-android:1.8.2
androidx.compose.ui:ui-text:1.8.2
androidx.compose.ui:ui-tooling-android:1.8.2
androidx.compose.ui:ui-tooling-data-android:1.8.2
androidx.compose.ui:ui-tooling-data:1.8.2
androidx.compose.ui:ui-tooling-preview-android:1.8.2
androidx.compose.ui:ui-tooling-preview:1.8.2
androidx.compose.ui:ui-tooling:1.8.2
androidx.compose.ui:ui-unit-android:1.8.2
androidx.compose.ui:ui-unit:1.8.2
androidx.compose.ui:ui-util-android:1.8.2
androidx.compose.ui:ui-util:1.8.2
androidx.compose.ui:ui:1.8.2
androidx.compose:compose-bom:2024.12.01
androidx.compose.material:material-android:1.8.3
androidx.compose.material:material-icons-core-android:1.7.8
androidx.compose.material:material-icons-core:1.7.8
androidx.compose.material:material-icons-extended-android:1.7.8
androidx.compose.material:material-icons-extended:1.7.8
androidx.compose.material:material-ripple-android:1.8.3
androidx.compose.material:material-ripple:1.8.3
androidx.compose.material:material:1.8.3
androidx.compose.runtime:runtime-android:1.8.3
androidx.compose.runtime:runtime-saveable-android:1.8.3
androidx.compose.runtime:runtime-saveable:1.8.3
androidx.compose.runtime:runtime:1.8.3
androidx.compose.ui:ui-android:1.8.3
androidx.compose.ui:ui-geometry-android:1.8.3
androidx.compose.ui:ui-geometry:1.8.3
androidx.compose.ui:ui-graphics-android:1.8.3
androidx.compose.ui:ui-graphics:1.8.3
androidx.compose.ui:ui-text-android:1.8.3
androidx.compose.ui:ui-text:1.8.3
androidx.compose.ui:ui-tooling-android:1.8.3
androidx.compose.ui:ui-tooling-data-android:1.8.3
androidx.compose.ui:ui-tooling-data:1.8.3
androidx.compose.ui:ui-tooling-preview-android:1.8.3
androidx.compose.ui:ui-tooling-preview:1.8.3
androidx.compose.ui:ui-tooling:1.8.3
androidx.compose.ui:ui-unit-android:1.8.3
androidx.compose.ui:ui-unit:1.8.3
androidx.compose.ui:ui-util-android:1.8.3
androidx.compose.ui:ui-util:1.8.3
androidx.compose.ui:ui:1.8.3
androidx.compose:compose-bom:2025.06.01
androidx.concurrent:concurrent-futures-ktx:1.1.0
androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.15.0
androidx.core:core-ktx:1.16.0
androidx.core:core-splashscreen:1.0.1
androidx.core:core-viewtree:1.0.0
androidx.core:core:1.15.0
androidx.core:core:1.16.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:databinding-adapters:8.7.3
androidx.databinding:databinding-common:8.7.3
androidx.databinding:databinding-ktx:8.7.3
androidx.databinding:databinding-runtime:8.7.3
androidx.databinding:viewbinding:8.7.3
androidx.databinding:databinding-adapters:8.10.0
androidx.databinding:databinding-common:8.10.0
androidx.databinding:databinding-ktx:8.10.0
androidx.databinding:databinding-runtime:8.10.0
androidx.databinding:viewbinding:8.10.0
androidx.datastore:datastore-core:1.0.0
androidx.datastore:datastore-preferences-core:1.0.0
androidx.datastore:datastore-preferences:1.0.0
@ -130,15 +138,18 @@ androidx.savedstate:savedstate-ktx:1.3.1
androidx.savedstate:savedstate:1.3.1
androidx.slidingpanelayout:slidingpanelayout:1.2.0
androidx.startup:startup-runtime:1.2.0
androidx.tracing:tracing-ktx:1.2.0
androidx.tracing:tracing:1.2.0
androidx.tracing:tracing-android:1.3.0
androidx.tracing:tracing-ktx:1.3.0
androidx.tracing:tracing:1.3.0
androidx.transition:transition:1.4.1
androidx.vectordrawable:vectordrawable-animated:1.2.0
androidx.vectordrawable:vectordrawable:1.2.0
androidx.versionedparcelable:versionedparcelable:1.1.1
androidx.viewpager:viewpager:1.0.0
androidx.window.extensions.core:core:1.0.0
androidx.window:window:1.2.0
androidx.window:window-core-android:1.3.0
androidx.window:window-core:1.3.0
androidx.window:window:1.3.0
co.touchlab:kermit-android:2.0.6
co.touchlab:kermit-core-android:2.0.6
co.touchlab:kermit-core:2.0.6
@ -159,7 +170,8 @@ com.attafitamim.krop:ui-android:0.1.6
com.attafitamim.krop:ui:0.1.6
com.caverock:androidsvg-aar:1.4
com.google.accompanist:accompanist-drawablepainter:0.37.3
com.google.accompanist:accompanist-permissions:0.37.3
com.google.accompanist:accompanist-pager:0.36.0
com.google.accompanist:accompanist-permissions:0.36.0
com.google.android.datatransport:transport-api:3.2.0
com.google.android.datatransport:transport-backend-cct:3.3.0
com.google.android.datatransport:transport-runtime:3.3.0
@ -231,6 +243,7 @@ de.jensklingenberg.ktorfit:ktorfit-lib-light:2.5.2
de.jensklingenberg.ktorfit:ktorfit-lib:2.5.2
dev.chrisbanes.material3:material3-window-size-class-multiplatform-android:0.5.0
dev.chrisbanes.material3:material3-window-size-class-multiplatform:0.5.0
dev.chrisbanes.snapper:snapper:0.2.2
io.coil-kt.coil3:coil-android:3.2.0
io.coil-kt.coil3:coil-compose-android:3.2.0
io.coil-kt.coil3:coil-compose-core-android:3.2.0
@ -271,12 +284,14 @@ io.github.panpf.zoomimage:zoomimage-core-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3-android:1.3.0
io.github.panpf.zoomimage:zoomimage-core-coil3:1.3.0
io.github.panpf.zoomimage:zoomimage-core:1.3.0
io.github.vinceglb:filekit-core-android:0.10.0
io.github.vinceglb:filekit-core:0.10.0
io.github.vinceglb:filekit-dialogs-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0
io.github.vinceglb:filekit-dialogs-compose:0.10.0
io.github.vinceglb:filekit-dialogs:0.10.0
io.github.vinceglb:filekit-compose-android:0.8.8
io.github.vinceglb:filekit-compose:0.8.8
io.github.vinceglb:filekit-core-android:0.10.0-beta04
io.github.vinceglb:filekit-core:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose-android:0.10.0-beta04
io.github.vinceglb:filekit-dialogs-compose:0.10.0-beta04
io.github.vinceglb:filekit-dialogs:0.10.0-beta04
io.insert-koin:koin-android:4.1.0
io.insert-koin:koin-androidx-compose:4.1.0
io.insert-koin:koin-androidx-navigation:4.1.0
@ -345,7 +360,8 @@ org.jetbrains.androidx.navigation:navigation-common:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03
org.jetbrains.androidx.navigation:navigation-runtime:2.9.0-beta03
org.jetbrains.androidx.savedstate:savedstate-compose:1.3.1
org.jetbrains.androidx.savedstate:savedstate:1.3.3
org.jetbrains.androidx.savedstate:savedstate:1.3.1
org.jetbrains.androidx.window:window-core:1.3.1
org.jetbrains.compose.animation:animation-core:1.8.2
org.jetbrains.compose.animation:animation:1.8.2
org.jetbrains.compose.annotation-internal:annotation:1.8.2
@ -356,6 +372,10 @@ org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
org.jetbrains.compose.foundation:foundation-layout:1.8.2
org.jetbrains.compose.foundation:foundation:1.8.2
org.jetbrains.compose.material3.adaptive:adaptive-layout:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive-navigation:1.1.2
org.jetbrains.compose.material3.adaptive:adaptive:1.1.2
org.jetbrains.compose.material3:material3-adaptive-navigation-suite:1.8.2
org.jetbrains.compose.material3:material3:1.8.2
org.jetbrains.compose.material:material-icons-core:1.7.3
org.jetbrains.compose.material:material-icons-extended:1.7.3
@ -371,12 +391,12 @@ org.jetbrains.compose.ui:ui-text:1.8.2
org.jetbrains.compose.ui:ui-unit:1.8.2
org.jetbrains.compose.ui:ui-util:1.8.2
org.jetbrains.compose.ui:ui:1.8.2
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.10
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.10
org.jetbrains.kotlin:kotlin-reflect:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20
org.jetbrains.kotlin:kotlin-reflect:2.1.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0
org.jetbrains.kotlin:kotlin-stdlib:2.1.21
org.jetbrains.kotlinx:atomicfu-jvm:0.23.2
org.jetbrains.kotlinx:atomicfu:0.23.2
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8
@ -387,19 +407,19 @@ org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.2
org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.10.2
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1-0.6.x-compat
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.7.0
org.jetbrains.kotlinx:kotlinx-io-core:0.7.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1
org.jetbrains:annotations:23.0.0
org.jspecify:jspecify:1.0.0
org.slf4j:slf4j-api:2.0.16

View File

@ -1,3 +1,3 @@
TEAM_ID=L432S2FZP5
BUNDLE_ID=cmp.ios
APP_NAME=iOSApp
BUNDLE_ID=org.mifos.mobile
APP_NAME=Mifos Mobile

21
cmp-ios/Podfile Normal file
View File

@ -0,0 +1,21 @@
deployment_target = '16.0'
target 'iosApp' do
use_frameworks!
platform :ios, deployment_target
# Pods for iosApp
pod 'cmp_shared', :path => '../cmp-shared'
end
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
end
end
project.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
end
end
end

16
cmp-ios/Podfile.lock Normal file
View File

@ -0,0 +1,16 @@
PODS:
- cmp_shared (1.0)
DEPENDENCIES:
- cmp_shared (from `../cmp-shared`)
EXTERNAL SOURCES:
cmp_shared:
:path: "../cmp-shared"
SPEC CHECKSUMS:
cmp_shared: bba9ecd776184671d0ea35c27194f0fb83f94797
PODFILE CHECKSUM: fba668dc0eba2e4694ef273d90789cf739b8504c
COCOAPODS: 1.16.2

View File

@ -9,6 +9,7 @@
/* Begin PBXBuildFile section */
058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; };
058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; };
1C3FE2006C77932769810076 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DF4DB1CF5E68C5614135A56 /* Pods_iosApp.framework */; };
2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; };
7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; };
/* End PBXBuildFile section */
@ -16,10 +17,13 @@
/* Begin PBXFileReference section */
058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
1EB8E354CA5D35F960D11D5D /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = "<group>"; };
2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = "<group>"; };
7555FF7B242A565900829871 /* iOSApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iOSApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
6DF4DB1CF5E68C5614135A56 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7555FF7B242A565900829871 /* Mifos Mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Mifos Mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; };
7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8DADAFB5E75F5E24CA4F0EB4 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = "<group>"; };
AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -28,6 +32,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
1C3FE2006C77932769810076 /* Pods_iosApp.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -42,9 +47,19 @@
path = "Preview Content";
sourceTree = "<group>";
};
1826950F674A72E12E219090 /* Pods */ = {
isa = PBXGroup;
children = (
8DADAFB5E75F5E24CA4F0EB4 /* Pods-iosApp.debug.xcconfig */,
1EB8E354CA5D35F960D11D5D /* Pods-iosApp.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
42799AB246E5F90AF97AA0EF /* Frameworks */ = {
isa = PBXGroup;
children = (
6DF4DB1CF5E68C5614135A56 /* Pods_iosApp.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@ -56,13 +71,14 @@
7555FF7D242A565900829871 /* iosApp */,
7555FF7C242A565900829871 /* Products */,
42799AB246E5F90AF97AA0EF /* Frameworks */,
1826950F674A72E12E219090 /* Pods */,
);
sourceTree = "<group>";
};
7555FF7C242A565900829871 /* Products */ = {
isa = PBXGroup;
children = (
7555FF7B242A565900829871 /* iOSApp.app */,
7555FF7B242A565900829871 /* Mifos Mobile.app */,
);
name = Products;
sourceTree = "<group>";
@ -94,20 +110,19 @@
isa = PBXNativeTarget;
buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */;
buildPhases = (
F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */,
D005710AF42AFBD3373CBB90 /* [CP] Check Pods Manifest.lock */,
7555FF77242A565900829871 /* Sources */,
B92378962B6B1156000C7307 /* Frameworks */,
7555FF79242A565900829871 /* Resources */,
3843B476B28208558ACE8C15 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = iosApp;
packageProductDependencies = (
);
productName = iosApp;
productReference = 7555FF7B242A565900829871 /* iOSApp.app */;
productReference = 7555FF7B242A565900829871 /* Mifos Mobile.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@ -135,8 +150,6 @@
Base,
);
mainGroup = 7555FF72242A565900829871;
packageReferences = (
);
productRefGroup = 7555FF7C242A565900829871 /* Products */;
projectDirPath = "";
projectRoot = "";
@ -159,7 +172,24 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = {
3843B476B28208558ACE8C15 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n";
showEnvVarsInLog = 0;
};
D005710AF42AFBD3373CBB90 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -167,15 +197,19 @@
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "Compile Kotlin Framework";
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :cmp-shared:embedAndSignAppleFrameworkForXcode\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@ -316,19 +350,20 @@
};
7555FFA6242A565B00829871 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 8DADAFB5E75F5E24CA4F0EB4 /* Pods-iosApp.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
DEVELOPMENT_TEAM = "${TEAM_ID}";
DEVELOPMENT_TEAM = L432S2FZP5;
ENABLE_PREVIEWS = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
INFOPLIST_FILE = iosApp/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Mifos Pay";
INFOPLIST_KEY_CFBundleDisplayName = "Mifos Mobile";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
IPHONEOS_DEPLOYMENT_TARGET = 15.3;
LD_RUNPATH_SEARCH_PATHS = (
@ -346,6 +381,7 @@
};
7555FFA7242A565B00829871 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1EB8E354CA5D35F960D11D5D /* Pods-iosApp.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "Apple Development";
@ -358,7 +394,7 @@
"$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
INFOPLIST_FILE = iosApp/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Mifos Pay";
INFOPLIST_KEY_CFBundleDisplayName = "Mifos Mobile";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
IPHONEOS_DEPLOYMENT_TARGET = 15.3;
LD_RUNPATH_SEARCH_PATHS = (

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict />
</plist>

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7555FF7A242A565900829871"
BuildableName = "Mifos Mobile.app"
BlueprintName = "iosApp"
ReferencedContainer = "container:iosApp.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7555FF7A242A565900829871"
BuildableName = "Mifos Mobile.app"
BlueprintName = "iosApp"
ReferencedContainer = "container:iosApp.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<LocationScenarioReference
identifier = "com.apple.dt.IDEFoundation.CurrentLocationScenarioIdentifier"
referenceType = "1">
</LocationScenarioReference>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -4,7 +4,7 @@
<dict>
<key>SchemeUserState</key>
<dict>
<key>iosApp.xcscheme_^#shared#^_</key>
<key>cmp-ios.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:iosApp.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -9,26 +9,15 @@
*/
plugins {
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.cmp.feature.convention)
alias(libs.plugins.android.library)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.kotlin.parcelize)
alias(libs.plugins.kotlinCocoapods)
}
kotlin {
listOf(
iosX64(),
iosArm64(),
iosX64()
iosArm64()
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
optimized = true
}
}
sourceSets {
commonMain.dependencies {
@ -40,9 +29,6 @@ kotlin {
//put your multiplatform dependencies here
implementation(compose.material)
implementation(compose.material3)
api(libs.koin.core)
implementation(libs.koin.compose)
implementation(libs.koin.compose.viewmodel)
}
desktopMain.dependencies {
@ -51,6 +37,19 @@ kotlin {
implementation(compose.desktop.common)
}
}
cocoapods {
summary = "KMP Shared Module"
homepage = "https://github.com/openMF/mifos-mobile"
version = "1.0"
ios.deploymentTarget = "16.0"
podfile = project.file("../cmp-ios/Podfile")
framework {
baseName = "ComposeApp"
isStatic = true
}
}
}
android {

View File

@ -0,0 +1,54 @@
Pod::Spec.new do |spec|
spec.name = 'cmp_shared'
spec.version = '1.0'
spec.homepage = 'https://github.com/openMF/mifos-mobile'
spec.source = { :http=> ''}
spec.authors = ''
spec.license = ''
spec.summary = 'KMP Shared Module'
spec.vendored_frameworks = 'build/cocoapods/framework/ComposeApp.framework'
spec.libraries = 'c++'
spec.ios.deployment_target = '16.0'
if !Dir.exist?('build/cocoapods/framework/ComposeApp.framework') || Dir.empty?('build/cocoapods/framework/ComposeApp.framework')
raise "
Kotlin framework 'ComposeApp' doesn't exist yet, so a proper Xcode project can't be generated.
'pod install' should be executed after running ':generateDummyFramework' Gradle task:
./gradlew :cmp-shared:generateDummyFramework
Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)"
end
spec.xcconfig = {
'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO',
}
spec.pod_target_xcconfig = {
'KOTLIN_PROJECT_PATH' => ':cmp-shared',
'PRODUCT_MODULE_NAME' => 'ComposeApp',
}
spec.script_phases = [
{
:name => 'Build cmp_shared',
:execution_position => :before_compile,
:shell_path => '/bin/sh',
:script => <<-SCRIPT
if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
exit 0
fi
set -ev
REPO_ROOT="$PODS_TARGET_SRCROOT"
"$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
-Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
-Pkotlin.native.cocoapods.archs="$ARCHS" \
-Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
SCRIPT
}
]
spec.resources = ['build/compose/cocoapods/compose-resources']
end

View File

@ -18,5 +18,9 @@ fun viewController() = ComposeUIViewController(
initKoin()
},
) {
SharedApp()
SharedApp(
handleThemeMode = {},
handleAppLocale = {},
onSplashScreenRemoved = {},
)
}

View File

@ -9,7 +9,7 @@
*/
package template.core.base.analytics
import kotlin.time.Clock
import kotlinx.datetime.Clock
import kotlin.time.Duration
import kotlin.time.DurationUnit

View File

@ -9,7 +9,7 @@
*/
package template.core.base.analytics
import kotlin.time.Clock
import kotlinx.datetime.Clock
/** Performance tracking utilities for analytics */

View File

@ -18,7 +18,6 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.advanceUntilIdle
import kotlinx.coroutines.test.runTest
import kotlinx.datetime.Clock.System
import kotlinx.serialization.Serializable
import org.koin.core.context.startKoin
import org.koin.core.context.stopKoin
@ -45,6 +44,8 @@ import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertNull
import kotlin.test.assertTrue
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import kotlin.time.measureTime
/**
@ -631,6 +632,7 @@ class DataStoreComprehensiveFeatureTest : KoinTest {
* Test 9: Complete Integration Scenario
* Tests realistic app usage patterns
*/
@OptIn(ExperimentalTime::class)
@Test
fun test09_CompleteIntegrationScenario() = runTest(testDispatcher) {
println("=== Testing Complete Integration Scenario ===")
@ -668,7 +670,7 @@ class DataStoreComprehensiveFeatureTest : KoinTest {
// 3. Session preferences
repository.savePreference("session_id", "sess_abc123")
repository.savePreference("login_timestamp", System.now().toEpochMilliseconds())
repository.savePreference("login_timestamp", Clock.System.now().toEpochMilliseconds())
repository.savePreference("device_id", "device_xyz789")
// 4. Feature flags and settings

View File

@ -9,6 +9,8 @@
*/
plugins {
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrainsCompose)
}
android {
@ -39,6 +41,7 @@ kotlin {
api(libs.squareup.okio)
api(libs.jb.kotlin.stdlib)
api(libs.kotlinx.datetime)
implementation(libs.jb.composeRuntime)
}
androidMain.dependencies {

View File

@ -25,7 +25,6 @@ import kotlinx.datetime.isoDayNumber
import kotlinx.datetime.minus
import kotlinx.datetime.toLocalDateTime
import kotlin.time.Duration.Companion.days
import kotlin.time.ExperimentalTime
@Suppress("TooManyFunctions")
@OptIn(FormatStringsInDatetimeFormats::class)
@ -163,7 +162,6 @@ object DateHelper {
private val monthNumberToAbbreviation = monthMap.entries.associate { (k, v) -> v to k }
@OptIn(ExperimentalTime::class)
fun getDateAsLongFromList(integersOfDate: List<Int>?): Long? {
if (integersOfDate == null) return null
val dateStr = getDateAsString(integersOfDate)

View File

@ -48,6 +48,7 @@ kotlin {
implementation(libs.fluentui.system.icons)
api(libs.back.handler)
api(libs.window.size)
api(projects.coreBase.designsystem)
}
nativeMain.dependencies {

View File

@ -33,6 +33,7 @@ kotlin{
api(projects.core.designsystem)
implementation(projects.core.model)
api(libs.kotlinx.datetime)
implementation(libs.jb.lifecycle.compose)
implementation(libs.jb.composeViewmodel)
implementation(libs.jb.lifecycleViewmodel)
implementation(libs.jb.lifecycleViewmodelSavedState)

View File

@ -11,11 +11,12 @@ package org.mifos.mobile.core.ui.utils
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.SelectableDates
import kotlinx.datetime.Clock
import kotlinx.datetime.TimeZone
import kotlinx.datetime.toLocalDateTime
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
@OptIn(ExperimentalMaterial3Api::class)
@OptIn(ExperimentalMaterial3Api::class, ExperimentalTime::class)
object PresentOrFutureSelectableDates : SelectableDates {
@ExperimentalMaterial3Api

View File

@ -17,7 +17,6 @@ import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.datetime.DateTimeUnit
import kotlinx.datetime.LocalDate
import kotlinx.datetime.TimeZone
@ -55,6 +54,8 @@ import org.mifos.mobile.feature.accounts.model.TransactionCheckboxStatus
import org.mifos.mobile.feature.accounts.model.TransactionFilterType
import org.mifos.mobile.feature.accounts.utils.StatusUtils
import kotlin.collections.map
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
/**
* ViewModel for managing the state and logic of the account transactions screen.
@ -527,6 +528,7 @@ internal class AccountsTransactionViewModel(
* @param selectedFilters A list of [TransactionCheckboxStatus] representing the active checkbox filters.
* @return A map of filtered transactions grouped by date.
*/
@OptIn(ExperimentalTime::class)
internal fun applyTransactionFilters(
selectedFilters: List<TransactionCheckboxStatus>,
): Map<String, List<UiTransaction>> {

View File

@ -12,7 +12,6 @@ package org.mifos.mobile.feature.accounts.accounts
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.toRoute
import kotlinx.coroutines.flow.update
import kotlinx.datetime.Clock
import org.jetbrains.compose.resources.StringResource
import org.mifos.mobile.core.common.Constants
import org.mifos.mobile.core.model.enums.AccountType
@ -21,6 +20,8 @@ import org.mifos.mobile.core.ui.utils.ScreenUiState
import org.mifos.mobile.feature.accounts.model.CheckboxStatus
import org.mifos.mobile.feature.accounts.model.FilterType
import org.mifos.mobile.feature.accounts.utils.StatusUtils
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
/**
* ViewModel responsible for managing the account screen state,
@ -41,6 +42,7 @@ internal class AccountsViewModel(
observeAccountTypeAndInitCheckboxes()
}
@OptIn(ExperimentalTime::class)
override fun handleAction(action: AccountsAction) {
when (action) {
is AccountsAction.SetCheckboxFilterList -> {
@ -113,6 +115,7 @@ internal class AccountsViewModel(
* Applies the selected checkboxes as filters, sets refresh signal,
* and dismisses the filter dialog.
*/
@OptIn(ExperimentalTime::class)
private fun handleConfirmFilterDialog() {
val selectedFilters = state.checkboxOptions.filter { it.isChecked }
@ -203,7 +206,9 @@ internal class AccountsViewModel(
* UI state for the Accounts screen, containing filter options, dialog visibility,
* current account type, and refresh signals.
*/
internal data class AccountsState(
internal data class AccountsState
@OptIn(ExperimentalTime::class)
constructor(
val isRefreshing: Boolean = false,
/** Current filter checkboxes shown in the dialog */

View File

@ -45,7 +45,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import kotlinx.datetime.Clock
import mifos_mobile.feature.auth.generated.resources.Res
import mifos_mobile.feature.auth.generated.resources.feature_common_submit
import mifos_mobile.feature.auth.generated.resources.feature_upload_id_cancel
@ -75,6 +74,8 @@ import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme
import org.mifos.mobile.core.designsystem.theme.MifosTypography
import org.mifos.mobile.core.ui.component.MifosPoweredCard
import org.mifos.mobile.core.ui.utils.EventsEffect
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
@Composable
internal fun UploadIdScreen(
@ -179,7 +180,7 @@ internal fun UploadIdScreenContent(
}
}
@OptIn(ExperimentalMaterial3Api::class)
@OptIn(ExperimentalMaterial3Api::class, ExperimentalTime::class)
@Composable
internal fun InputForm(
state: UploadIdUiState,

View File

@ -31,7 +31,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import kotlinx.datetime.Clock
import mifos_mobile.feature.loan_account.generated.resources.Res
import mifos_mobile.feature.loan_account.generated.resources.feature_loan_due
import mifos_mobile.feature.loan_account.generated.resources.feature_loan_installment_number
@ -47,7 +46,10 @@ import org.mifos.mobile.core.designsystem.theme.AppColors
import org.mifos.mobile.core.designsystem.theme.DesignToken
import org.mifos.mobile.core.designsystem.theme.MifosTypography
import org.mifos.mobile.core.model.entity.accounts.loan.Periods
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
@OptIn(ExperimentalTime::class)
@Composable
fun RepaymentScheduleItem(
period: Periods,

View File

@ -36,7 +36,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import kotlinx.datetime.Clock
import mifos_mobile.feature.loan_application.generated.resources.Res
import mifos_mobile.feature.loan_application.generated.resources.feature_apply_loan_button_cancel
import mifos_mobile.feature.loan_application.generated.resources.feature_apply_loan_button_continue
@ -65,6 +64,8 @@ import org.mifos.mobile.core.ui.component.MifosPoweredCard
import org.mifos.mobile.core.ui.component.MifosProgressIndicator
import org.mifos.mobile.core.ui.utils.EventsEffect
import org.mifos.mobile.core.ui.utils.ScreenUiState
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
@Composable
internal fun LoanApplyScreen(
@ -136,7 +137,7 @@ internal fun LoanAccountDialog(
}
}
@OptIn(ExperimentalMaterial3Api::class)
@OptIn(ExperimentalMaterial3Api::class, ExperimentalTime::class)
@Composable
internal fun LoanAccountContent(
state: LoanApplicationState,

View File

@ -20,7 +20,6 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import mifos_mobile.feature.loan_application.generated.resources.Res
import mifos_mobile.feature.loan_application.generated.resources.feature_apply_loan_error_amount_too_large
import mifos_mobile.feature.loan_application.generated.resources.feature_apply_loan_error_amount_too_small
@ -48,6 +47,8 @@ import org.mifos.mobile.core.ui.utils.AmountValidationResult
import org.mifos.mobile.core.ui.utils.BaseViewModel
import org.mifos.mobile.core.ui.utils.ScreenUiState
import org.mifos.mobile.core.ui.utils.ValidationHelper
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import org.mifos.mobile.core.model.entity.Currency as ModelCurrency
/**
@ -675,6 +676,7 @@ internal data class LoanApplicationState(
/**
* The current time in milliseconds, used for date pickers.
*/
@OptIn(ExperimentalTime::class)
val currentDate: Long
get() = Clock.System.now().toEpochMilliseconds()
@ -714,6 +716,7 @@ internal data class LoanApplicationState(
* The effective submission date, which is the later of today's date or the
* client's activation date.
*/
@OptIn(ExperimentalTime::class)
val submittedOnDate: String
get() {
val todayMillis = Clock.System.now().toEpochMilliseconds()

View File

@ -18,7 +18,6 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.io.IOException
import mifos_mobile.feature.savings_application.generated.resources.Res
import mifos_mobile.feature.savings_application.generated.resources.feature_apply_savings_error_amount_too_large
@ -56,6 +55,8 @@ import org.mifos.mobile.core.ui.utils.ScreenUiState
import org.mifos.mobile.core.ui.utils.ValidationHelper
import org.mifos.mobile.core.ui.utils.observe
import kotlin.String
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import org.mifos.mobile.core.model.entity.Currency as ModelCurrency
private const val DEFAULT_DECIMAL_PLACES = 2
@ -723,6 +724,7 @@ internal data class SavingsApplicationState(
/**
* The current date as a formatted string.
*/
@OptIn(ExperimentalTime::class)
val currentDate: String
get() = DateHelper.getDateMonthYearString(Clock.System.now().toEpochMilliseconds())

View File

@ -18,7 +18,6 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.io.IOException
import mifos_mobile.feature.savings_application.generated.resources.Res
import mifos_mobile.feature.savings_application.generated.resources.feature_apply_savings_error_product_empty
@ -38,6 +37,8 @@ import org.mifos.mobile.core.model.entity.templates.savings.SavingsAccountTempla
import org.mifos.mobile.core.model.entity.templates.savings.SavingsProduct
import org.mifos.mobile.core.ui.utils.BaseViewModel
import org.mifos.mobile.core.ui.utils.ScreenUiState
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
/**
* A `ViewModel` for the savings application screen, responsible for handling user input,
@ -588,6 +589,7 @@ internal data class SavingsApplicationState(
id to name
}
@OptIn(ExperimentalTime::class)
val submittedOnDate: String
get() {
val todayMillis = Clock.System.now().toEpochMilliseconds()

View File

@ -19,7 +19,6 @@ import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.InternalSerializationApi
import mifos_mobile.feature.share_application.generated.resources.Res
@ -62,6 +61,8 @@ import org.mifos.mobile.core.ui.utils.ResultNavigator
import org.mifos.mobile.core.ui.utils.ValidationHelper
import org.mifos.mobile.core.ui.utils.observe
import kotlin.String
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import org.mifos.mobile.core.model.entity.Currency as ModelCurrency
private const val DEFAULT_DECIMAL_PLACES = 2
@ -818,6 +819,7 @@ internal data class ShareApplicationState(
/**
* The current date formatted as a string.
*/
@OptIn(ExperimentalTime::class)
val currentDate: String
get() = DateHelper.getDateMonthYearString(Clock.System.now().toEpochMilliseconds())

View File

@ -16,7 +16,6 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.datetime.Clock
import kotlinx.io.IOException
import mifos_mobile.feature.share_application.generated.resources.Res
import mifos_mobile.feature.share_application.generated.resources.feature_apply_share_error_server
@ -34,6 +33,8 @@ import org.mifos.mobile.core.model.entity.client.Client
import org.mifos.mobile.core.model.entity.templates.savings.SavingsAccountTemplate
import org.mifos.mobile.core.model.entity.templates.shares.ShareProduct
import org.mifos.mobile.core.ui.utils.BaseViewModel
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
/**
* `ViewModel` for the savings application screen, responsible for handling user input,
@ -398,6 +399,7 @@ internal data class ShareApplicationState(
}
.toMap()
@OptIn(ExperimentalTime::class)
val submittedOnDate: String
get() {
val todayMillis = Clock.System.now().toEpochMilliseconds()

View File

@ -48,3 +48,5 @@ android.defaults.buildfeatures.resvalues=false
android.defaults.buildfeatures.shaders=false
org.jetbrains.compose.experimental.jscanvas.enabled=true
kotlin.native.ignoreDisabledTargets=true
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

View File

@ -1,29 +1,29 @@
[versions]
accompanistVersion = "0.37.3"
accompanistVersion = "0.36.0"
activityVersion = "1.9.3"
androidDesugarJdkLibs = "2.1.4"
androidGradlePlugin = "8.7.3"
androidTools = "31.7.3"
androidDesugarJdkLibs = "2.1.5"
androidGradlePlugin = "8.10.0"
androidTools = "31.10.0"
androidx-test-ext-junit = "1.2.1"
androidxActivity = "1.9.3"
androidxComposeBom = "2024.12.01"
androidxActivity = "1.10.1"
androidxComposeBom = "2025.06.01"
androidxComposeCompiler = "1.5.15"
androidxCoreSplashscreen = "1.0.1"
androidxEspresso = "3.6.1"
androidxLifecycle = "2.8.7"
androidxLifecycle = "2.9.2"
androidxMetrics = "1.0.0-beta01"
androidxNavigation = "2.8.5"
androidxNavigation = "2.9.2"
androidxProfileinstaller = "1.4.1"
androidxTestRules = "1.6.1"
androidxTracing = "1.2.0"
appcompatVersion = "1.7.0"
androidxTracing = "1.3.0"
appcompatVersion = "1.7.1"
androidxBrowser = "1.8.0"
mlkit="17.3.0"
guavaVersion = "33.3.1-android"
cameraxVersion = "1.4.1"
coreKtx = "1.15.0"
coreKtx = "1.16.0"
dependencyGuard = "0.5.0"
detekt = "1.23.7"
detekt = "1.23.8"
easycropVersion = "0.1.1"
firebaseBom = "33.7.0"
firebaseCrashlyticsPlugin = "3.0.2"
@ -37,7 +37,7 @@ ktlint = "12.1.1"
libphonenumberAndroidVersion = "8.13.35"
lifecycleExtensionsVersion = "2.2.0"
lifecycleLivedataKtxVersion = "2.8.7"
lifecycleVersion = "2.8.7"
lifecycleVersion = "2.9.2"
material3 = "1.3.1"
mockitoCoreVersion = "5.6.0"
multidexVersion = "2.0.1"
@ -57,12 +57,12 @@ lottie = "6.6.7"
compottie = "2.0.0-rc05"
# Kotlin KMP Dependencies
kotlin = "2.1.0"
kotlin = "2.1.20"
kotlinInject = "0.7.2"
kotlinxCoroutines = "1.10.1"
kotlinxDatetime = "0.7.1-0.6.x-compat"
kotlinxDatetime = "0.6.2"
kotlinxImmutable = "0.3.8"
kotlinxSerializationJson = "1.7.3"
kotlinxSerializationJson = "1.8.1"
ksp = "2.1.20-2.0.1"
# Ktor & Ktorfit
@ -81,20 +81,22 @@ backHandlerVersion = "2.5.0"
multiplatformSettings = "1.3.0"
mokoPermission = "0.19.1"
qroseVersion = "1.0.1"
okioVersion = "3.15.0"
okioVersion = "3.9.1"
kermit = "2.0.6"
fileKit = "0.10.0-beta04"
fileKitDialog = "0.10.0"
fileKitCompose = "0.8.8"
wire = "5.0.0"
zoomImage = "1.3.0"
uiBackhandler = "1.8.2"
# Jetbrains CMP
windowsSizeClass = "0.5.0"
composeJB = "1.8.2"
composeLifecycle = "2.9.1"
composeNavigation = "2.9.0-beta03"
jbCoreBundle = "1.0.1"
jbSavedState = "1.3.3"
jbSavedState = "1.3.1"
gitLive = "2.1.0"
material3adaptive = "1.1.2"
@ -203,7 +205,7 @@ zxing-core = { group = "com.google.zxing", name = "core", version.ref = "zxingVe
jb-kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
jb-kotlin-stdlib-js = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-js", version.ref = "kotlin" }
jb-kotlin-dom = { group = "org.jetbrains.kotlin", name = "kotlin-dom-api-compat", version.ref = "kotlin" }
jb-composeRuntime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-plugin" }
jb-composeRuntime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeJB" }
jb-lifecycle-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "composeLifecycle" }
jb-composeViewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "composeLifecycle" }
jb-lifecycleViewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "composeLifecycle" }
@ -276,9 +278,10 @@ compose-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compile
squareup-okio = { group = "com.squareup.okio", name = "okio", version.ref = "okioVersion" }
back-handler = { group = "com.arkivanov.essenty", name = "back-handler", version.ref = "backHandlerVersion" }
filekit-core = { group = "io.github.vinceglb", name = "filekit-core", version.ref = "fileKit" }
filekit-compose = { group = "io.github.vinceglb", name = "filekit-compose", version.ref = "fileKit" }
filekit-coil = { module = "io.github.vinceglb:filekit-coil", version.ref = "fileKit" }
filekit-dialog-compose = { group = "io.github.vinceglb", name = "filekit-dialogs-compose", version.ref = "fileKitDialog" }
filekit-dialog-compose = { group = "io.github.vinceglb", name = "filekit-dialogs-compose", version.ref = "fileKit" }
filekit-dialogs = { module = "io.github.vinceglb:filekit-dialogs", version.ref = "fileKit" }
filekit-compose = { group = "io.github.vinceglb", name = "filekit-compose", version.ref = "fileKitCompose" }
qrose = { group = "io.github.alexzhirkevich", name="qrose", version.ref = "qroseVersion" }
lottie-compose = { group = "com.airbnb.android", name = "lottie-compose", version.ref = "lottie" }
compottie = { module = "io.github.alexzhirkevich:compottie", version.ref = "compottie" }

View File

@ -1,6 +1,6 @@
#Tue Oct 10 11:28:53 IST 2017
#Sun Sep 07 08:57:15 BST 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip