From 0eb2547a28c852fad04cf856f1f70f6acd48c169 Mon Sep 17 00:00:00 2001 From: Hekmatullah Date: Sun, 7 Sep 2025 15:31:38 +0100 Subject: [PATCH] fix(ios): use CocoaPods integration for cmp-shared (#2968) --- .run/cmp-ios.run.xml | 8 + .../main/kotlin/CMPFeatureConventionPlugin.kt | 1 + build.gradle.kts | 1 + .../demoDebugRuntimeClasspath.txt | 172 ++++++++++-------- .../demoReleaseRuntimeClasspath.txt | 172 ++++++++++-------- .../prodDebugRuntimeClasspath.txt | 172 ++++++++++-------- .../prodReleaseRuntimeClasspath.txt | 172 ++++++++++-------- cmp-ios/Configuration/Config.xcconfig | 4 +- cmp-ios/Podfile | 21 +++ cmp-ios/Podfile.lock | 16 ++ cmp-ios/iosApp.xcodeproj/project.pbxproj | 64 +++++-- .../UserInterfaceState.xcuserstate | Bin 24026 -> 24141 bytes .../xcschemes/xcschememanagement.plist | 5 + .../xcshareddata/xcschemes/cmp-ios.xcscheme | 70 +++++++ .../xcschemes/xcschememanagement.plist | 2 +- .../contents.xcworkspacedata | 10 + cmp-shared/build.gradle.kts | 35 ++-- cmp-shared/cmp_shared.podspec | 54 ++++++ .../kotlin/org/mifos/shared/ViewController.kt | 6 +- .../base/analytics/AnalyticsExtensions.kt | 2 +- .../core/base/analytics/PerformanceTracker.kt | 2 +- .../DataStoreComprehensiveFeatureTest.kt | 6 +- core/common/build.gradle.kts | 3 + .../mifos/mobile/core/common/DateHelper.kt | 2 - core/designsystem/build.gradle.kts | 1 + core/ui/build.gradle.kts | 1 + .../utils/PresentOrFutureSelectableDates.kt | 5 +- .../TransactionViewModel.kt | 4 +- .../accounts/accounts/AccountsViewModel.kt | 9 +- .../feature/auth/uploadId/UploadIdScreen.kt | 5 +- .../component/RepaymentPeriodCard.kt | 4 +- .../loanApplication/LoanApplyScreen.kt | 5 +- .../loanApplication/LoanApplyViewModel.kt | 5 +- .../FillApplicationViewModel.kt | 4 +- .../SavingsApplyViewModel.kt | 4 +- .../FillApplicationViewModel.kt | 4 +- .../shareApplication/ShareApplyViewModel.kt | 4 +- gradle.properties | 4 +- gradle/libs.versions.toml | 47 ++--- gradle/wrapper/gradle-wrapper.properties | 4 +- 40 files changed, 724 insertions(+), 386 deletions(-) create mode 100644 .run/cmp-ios.run.xml create mode 100644 cmp-ios/Podfile create mode 100644 cmp-ios/Podfile.lock create mode 100644 cmp-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 cmp-ios/iosApp.xcodeproj/xcshareddata/xcschemes/cmp-ios.xcscheme create mode 100644 cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata create mode 100644 cmp-shared/cmp_shared.podspec diff --git a/.run/cmp-ios.run.xml b/.run/cmp-ios.run.xml new file mode 100644 index 000000000..3cfa69a51 --- /dev/null +++ b/.run/cmp-ios.run.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt b/build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt index 3ddfd7b9e..ce47af4bf 100644 --- a/build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt @@ -24,6 +24,7 @@ class CMPFeatureConventionPlugin : Plugin { 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()) diff --git a/build.gradle.kts b/build.gradle.kts index ff96dd548..a34b3aeb4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -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 diff --git a/cmp-android/dependencies/demoDebugRuntimeClasspath.txt b/cmp-android/dependencies/demoDebugRuntimeClasspath.txt index 97c622612..f9ee3fb08 100644 --- a/cmp-android/dependencies/demoDebugRuntimeClasspath.txt +++ b/cmp-android/dependencies/demoDebugRuntimeClasspath.txt @@ -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 diff --git a/cmp-android/dependencies/demoReleaseRuntimeClasspath.txt b/cmp-android/dependencies/demoReleaseRuntimeClasspath.txt index 1266bed3d..836c3e7d8 100644 --- a/cmp-android/dependencies/demoReleaseRuntimeClasspath.txt +++ b/cmp-android/dependencies/demoReleaseRuntimeClasspath.txt @@ -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 diff --git a/cmp-android/dependencies/prodDebugRuntimeClasspath.txt b/cmp-android/dependencies/prodDebugRuntimeClasspath.txt index 97c622612..f9ee3fb08 100644 --- a/cmp-android/dependencies/prodDebugRuntimeClasspath.txt +++ b/cmp-android/dependencies/prodDebugRuntimeClasspath.txt @@ -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 diff --git a/cmp-android/dependencies/prodReleaseRuntimeClasspath.txt b/cmp-android/dependencies/prodReleaseRuntimeClasspath.txt index 1266bed3d..836c3e7d8 100644 --- a/cmp-android/dependencies/prodReleaseRuntimeClasspath.txt +++ b/cmp-android/dependencies/prodReleaseRuntimeClasspath.txt @@ -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 diff --git a/cmp-ios/Configuration/Config.xcconfig b/cmp-ios/Configuration/Config.xcconfig index 17d58e842..ce3c249ae 100644 --- a/cmp-ios/Configuration/Config.xcconfig +++ b/cmp-ios/Configuration/Config.xcconfig @@ -1,3 +1,3 @@ TEAM_ID=L432S2FZP5 -BUNDLE_ID=cmp.ios -APP_NAME=iOSApp +BUNDLE_ID=org.mifos.mobile +APP_NAME=Mifos Mobile diff --git a/cmp-ios/Podfile b/cmp-ios/Podfile new file mode 100644 index 000000000..0f05686a7 --- /dev/null +++ b/cmp-ios/Podfile @@ -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 \ No newline at end of file diff --git a/cmp-ios/Podfile.lock b/cmp-ios/Podfile.lock new file mode 100644 index 000000000..220c85428 --- /dev/null +++ b/cmp-ios/Podfile.lock @@ -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 diff --git a/cmp-ios/iosApp.xcodeproj/project.pbxproj b/cmp-ios/iosApp.xcodeproj/project.pbxproj index f228b3799..1cbac6655 100644 --- a/cmp-ios/iosApp.xcodeproj/project.pbxproj +++ b/cmp-ios/iosApp.xcodeproj/project.pbxproj @@ -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 = ""; }; 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 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 = ""; }; 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 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 = ""; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 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 = ""; }; AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; /* 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 = ""; }; + 1826950F674A72E12E219090 /* Pods */ = { + isa = PBXGroup; + children = ( + 8DADAFB5E75F5E24CA4F0EB4 /* Pods-iosApp.debug.xcconfig */, + 1EB8E354CA5D35F960D11D5D /* Pods-iosApp.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; 42799AB246E5F90AF97AA0EF /* Frameworks */ = { isa = PBXGroup; children = ( + 6DF4DB1CF5E68C5614135A56 /* Pods_iosApp.framework */, ); name = Frameworks; sourceTree = ""; @@ -56,13 +71,14 @@ 7555FF7D242A565900829871 /* iosApp */, 7555FF7C242A565900829871 /* Products */, 42799AB246E5F90AF97AA0EF /* Frameworks */, + 1826950F674A72E12E219090 /* Pods */, ); sourceTree = ""; }; 7555FF7C242A565900829871 /* Products */ = { isa = PBXGroup; children = ( - 7555FF7B242A565900829871 /* iOSApp.app */, + 7555FF7B242A565900829871 /* Mifos Mobile.app */, ); name = Products; sourceTree = ""; @@ -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 = ( diff --git a/cmp-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/UserInterfaceState.xcuserstate b/cmp-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/UserInterfaceState.xcuserstate index 8331989cb05c0a981acd35aa2fd13ed94b11d8e6..86c5772eb6346be4e7f691a13427cd955f8a275a 100644 GIT binary patch delta 12252 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 AK>z>% diff --git a/cmp-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist b/cmp-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..ee3458dd7 --- /dev/null +++ b/cmp-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/cmp-ios/iosApp.xcodeproj/xcshareddata/xcschemes/cmp-ios.xcscheme b/cmp-ios/iosApp.xcodeproj/xcshareddata/xcschemes/cmp-ios.xcscheme new file mode 100644 index 000000000..ecd5e7fae --- /dev/null +++ b/cmp-ios/iosApp.xcodeproj/xcshareddata/xcschemes/cmp-ios.xcscheme @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist b/cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist index 56b5955f8..aede5d13b 100644 --- a/cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,7 +4,7 @@ SchemeUserState - iosApp.xcscheme_^#shared#^_ + cmp-ios.xcscheme_^#shared#^_ orderHint 0 diff --git a/cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata b/cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..c009e7d7c --- /dev/null +++ b/cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/cmp-shared/build.gradle.kts b/cmp-shared/build.gradle.kts index 9ad6f049d..d548fabb5 100644 --- a/cmp-shared/build.gradle.kts +++ b/cmp-shared/build.gradle.kts @@ -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(), - iosSimulatorArm64() - ).forEach { iosTarget -> - iosTarget.binaries.framework { - baseName = "ComposeApp" - isStatic = true - optimized = true - } - } + iosX64() + iosArm64() + iosSimulatorArm64() 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 { diff --git a/cmp-shared/cmp_shared.podspec b/cmp-shared/cmp_shared.podspec new file mode 100644 index 000000000..7094d449a --- /dev/null +++ b/cmp-shared/cmp_shared.podspec @@ -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 \ No newline at end of file diff --git a/cmp-shared/src/nativeMain/kotlin/org/mifos/shared/ViewController.kt b/cmp-shared/src/nativeMain/kotlin/org/mifos/shared/ViewController.kt index b109c261c..bcca05304 100644 --- a/cmp-shared/src/nativeMain/kotlin/org/mifos/shared/ViewController.kt +++ b/cmp-shared/src/nativeMain/kotlin/org/mifos/shared/ViewController.kt @@ -18,5 +18,9 @@ fun viewController() = ComposeUIViewController( initKoin() }, ) { - SharedApp() + SharedApp( + handleThemeMode = {}, + handleAppLocale = {}, + onSplashScreenRemoved = {}, + ) } diff --git a/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/AnalyticsExtensions.kt b/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/AnalyticsExtensions.kt index 60e7e385a..848f7c7b1 100644 --- a/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/AnalyticsExtensions.kt +++ b/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/AnalyticsExtensions.kt @@ -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 diff --git a/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/PerformanceTracker.kt b/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/PerformanceTracker.kt index b93ba5b9b..d8fa77fa8 100644 --- a/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/PerformanceTracker.kt +++ b/core-base/analytics/src/commonMain/kotlin/template/core/base/analytics/PerformanceTracker.kt @@ -9,7 +9,7 @@ */ package template.core.base.analytics -import kotlin.time.Clock +import kotlinx.datetime.Clock /** Performance tracking utilities for analytics */ diff --git a/core-base/datastore/src/commonTest/kotlin/template/core/base/datastore/DataStoreComprehensiveFeatureTest.kt b/core-base/datastore/src/commonTest/kotlin/template/core/base/datastore/DataStoreComprehensiveFeatureTest.kt index cb83c58a2..6c8400cee 100644 --- a/core-base/datastore/src/commonTest/kotlin/template/core/base/datastore/DataStoreComprehensiveFeatureTest.kt +++ b/core-base/datastore/src/commonTest/kotlin/template/core/base/datastore/DataStoreComprehensiveFeatureTest.kt @@ -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 diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index ffff73a0e..1a904db94 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -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 { diff --git a/core/common/src/commonMain/kotlin/org/mifos/mobile/core/common/DateHelper.kt b/core/common/src/commonMain/kotlin/org/mifos/mobile/core/common/DateHelper.kt index d04df5a18..3ea6fa96f 100644 --- a/core/common/src/commonMain/kotlin/org/mifos/mobile/core/common/DateHelper.kt +++ b/core/common/src/commonMain/kotlin/org/mifos/mobile/core/common/DateHelper.kt @@ -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?): Long? { if (integersOfDate == null) return null val dateStr = getDateAsString(integersOfDate) diff --git a/core/designsystem/build.gradle.kts b/core/designsystem/build.gradle.kts index 12ff303e2..8b2508841 100644 --- a/core/designsystem/build.gradle.kts +++ b/core/designsystem/build.gradle.kts @@ -48,6 +48,7 @@ kotlin { implementation(libs.fluentui.system.icons) api(libs.back.handler) api(libs.window.size) + api(projects.coreBase.designsystem) } nativeMain.dependencies { diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index aa72f039a..bc8c1d2f3 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -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) diff --git a/core/ui/src/commonMain/kotlin/org/mifos/mobile/core/ui/utils/PresentOrFutureSelectableDates.kt b/core/ui/src/commonMain/kotlin/org/mifos/mobile/core/ui/utils/PresentOrFutureSelectableDates.kt index 5489dcaf9..1bb49c555 100644 --- a/core/ui/src/commonMain/kotlin/org/mifos/mobile/core/ui/utils/PresentOrFutureSelectableDates.kt +++ b/core/ui/src/commonMain/kotlin/org/mifos/mobile/core/ui/utils/PresentOrFutureSelectableDates.kt @@ -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 diff --git a/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accountTransactions/TransactionViewModel.kt b/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accountTransactions/TransactionViewModel.kt index 9bdbc1f14..ad1fe95c8 100644 --- a/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accountTransactions/TransactionViewModel.kt +++ b/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accountTransactions/TransactionViewModel.kt @@ -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, ): Map> { diff --git a/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accounts/AccountsViewModel.kt b/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accounts/AccountsViewModel.kt index a9b78f259..1415ee353 100644 --- a/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accounts/AccountsViewModel.kt +++ b/feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accounts/AccountsViewModel.kt @@ -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 */ diff --git a/feature/auth/src/commonMain/kotlin/org/mifos/mobile/feature/auth/uploadId/UploadIdScreen.kt b/feature/auth/src/commonMain/kotlin/org/mifos/mobile/feature/auth/uploadId/UploadIdScreen.kt index 8355efdf6..e6877a913 100644 --- a/feature/auth/src/commonMain/kotlin/org/mifos/mobile/feature/auth/uploadId/UploadIdScreen.kt +++ b/feature/auth/src/commonMain/kotlin/org/mifos/mobile/feature/auth/uploadId/UploadIdScreen.kt @@ -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, diff --git a/feature/loan-account/src/commonMain/kotlin/org/mifos/mobile/feature/loanaccount/component/RepaymentPeriodCard.kt b/feature/loan-account/src/commonMain/kotlin/org/mifos/mobile/feature/loanaccount/component/RepaymentPeriodCard.kt index 72e426e88..ef9e2f5c7 100644 --- a/feature/loan-account/src/commonMain/kotlin/org/mifos/mobile/feature/loanaccount/component/RepaymentPeriodCard.kt +++ b/feature/loan-account/src/commonMain/kotlin/org/mifos/mobile/feature/loanaccount/component/RepaymentPeriodCard.kt @@ -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, diff --git a/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyScreen.kt b/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyScreen.kt index 48b090ef7..17f5ab6f8 100644 --- a/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyScreen.kt +++ b/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyScreen.kt @@ -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, diff --git a/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyViewModel.kt b/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyViewModel.kt index b1ca5d190..c818040c4 100644 --- a/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyViewModel.kt +++ b/feature/loan-application/src/commonMain/kotlin/org/mifos/mobile/feature/loan/application/loanApplication/LoanApplyViewModel.kt @@ -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() diff --git a/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/fillApplication/FillApplicationViewModel.kt b/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/fillApplication/FillApplicationViewModel.kt index c4db091da..bb3e15ad4 100644 --- a/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/fillApplication/FillApplicationViewModel.kt +++ b/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/fillApplication/FillApplicationViewModel.kt @@ -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()) diff --git a/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/savingsApplication/SavingsApplyViewModel.kt b/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/savingsApplication/SavingsApplyViewModel.kt index df0f4a66d..5488b0394 100644 --- a/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/savingsApplication/SavingsApplyViewModel.kt +++ b/feature/savings-application/src/commonMain/kotlin/org/mifos/mobile/feature/savings/application/savingsApplication/SavingsApplyViewModel.kt @@ -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() diff --git a/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/fillApplication/FillApplicationViewModel.kt b/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/fillApplication/FillApplicationViewModel.kt index 3edcf75fa..ed8970c09 100644 --- a/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/fillApplication/FillApplicationViewModel.kt +++ b/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/fillApplication/FillApplicationViewModel.kt @@ -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()) diff --git a/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/shareApplication/ShareApplyViewModel.kt b/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/shareApplication/ShareApplyViewModel.kt index a721d1813..d9064b12c 100644 --- a/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/shareApplication/ShareApplyViewModel.kt +++ b/feature/share-application/src/commonMain/kotlin/org/mifos/mobile/feature/share/application/shareApplication/ShareApplyViewModel.kt @@ -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() diff --git a/gradle.properties b/gradle.properties index 78a3d9e35..f207670f8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -47,4 +47,6 @@ kotlin.code.style=official android.defaults.buildfeatures.resvalues=false android.defaults.buildfeatures.shaders=false org.jetbrains.compose.experimental.jscanvas.enabled=true -kotlin.native.ignoreDisabledTargets=true \ No newline at end of file +kotlin.native.ignoreDisabledTargets=true + +org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4d5c3e3ab..a236c91ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -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" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f5e988661..b71b8dc73 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -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