Skip to content

Commit 0a2ed91

Browse files
feat(corebase): Add core-base/datastore module (#46)
* feat(corebase): Add core-base/datastore module * remove unnecessary dependencies * Refactor UserPreferencesDataStore to use Settings instead of SuspendSettings for cross-platform compatibility * Removed SettingsFactory and updated ci-prepush.sh to use :cmp-android:build and :cmp-android:updateProdReleaseBadging
1 parent 494a291 commit 0a2ed91

File tree

16 files changed

+383
-423
lines changed

16 files changed

+383
-423
lines changed

build-logic/convention/src/main/kotlin/org/convention/Detekt.kt

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import org.gradle.kotlin.dsl.named
1515
*/
1616
internal fun Project.configureDetekt(extension: DetektExtension) = extension.apply {
1717
tasks.named<Detekt>("detekt") {
18+
mustRunAfter(":cmp-android:dependencyGuard")
1819
jvmTarget = "17"
1920
source(files(rootDir))
2021
include("**/*.kt")

ci-prepush.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ tasks=(
2828
"spotlessApply --no-configuration-cache"
2929
"dependencyGuardBaseline"
3030
"detekt"
31-
":mifos-android:build"
32-
":mifos-android:updateProdReleaseBadging"
31+
":cmp-android:build"
32+
":cmp-android:updateProdReleaseBadging"
3333
)
3434

3535
for task in "${tasks[@]}"; do

cmp-android/dependencies/prodReleaseRuntimeClasspath.tree.txt

+29-22
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
| | +--- androidx.concurrent:concurrent-futures:1.1.0
5555
| | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
5656
| | | \--- com.google.guava:listenablefuture:1.0
57-
| | +--- androidx.startup:startup-runtime:1.1.1
58-
| | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
57+
| | +--- androidx.startup:startup-runtime:1.1.1 -> 1.2.0
58+
| | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
5959
| | | \--- androidx.tracing:tracing:1.0.0 -> 1.3.0-alpha02
6060
| | | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
6161
| | | \--- androidx.tracing:tracing-ktx:1.3.0-alpha02 (c)
@@ -162,7 +162,7 @@
162162
| +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.7
163163
| | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
164164
| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
165-
| | +--- androidx.startup:startup-runtime:1.1.1 (*)
165+
| | +--- androidx.startup:startup-runtime:1.1.1 -> 1.2.0 (*)
166166
| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
167167
| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
168168
| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
@@ -410,7 +410,7 @@
410410
| | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
411411
| | | | +--- androidx.core:core:1.3.0 -> 1.15.0 (*)
412412
| | | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.8.7 (*)
413-
| | | | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*)
413+
| | | | +--- androidx.startup:startup-runtime:1.0.0 -> 1.2.0 (*)
414414
| | | | \--- androidx.emoji2:emoji2-views-helper:1.3.0 (c)
415415
| | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 -> 1.3.0
416416
| | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
@@ -1206,30 +1206,37 @@
12061206
| | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*)
12071207
| | +--- project :core:common (*)
12081208
| | +--- project :core:datastore
1209+
| | | +--- project :core-base:datastore
1210+
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
1211+
| | | | +--- io.insert-koin:koin-bom:4.0.1-RC1 (*)
1212+
| | | | +--- io.insert-koin:koin-core:4.0.1-RC1 (*)
1213+
| | | | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*)
1214+
| | | | +--- com.russhwolf:multiplatform-settings-no-arg:1.3.0
1215+
| | | | | \--- com.russhwolf:multiplatform-settings-no-arg-android:1.3.0
1216+
| | | | | +--- androidx.startup:startup-runtime:1.2.0 (*)
1217+
| | | | | +--- com.russhwolf:multiplatform-settings:1.3.0
1218+
| | | | | | \--- com.russhwolf:multiplatform-settings-android:1.3.0
1219+
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
1220+
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
1221+
| | | | +--- com.russhwolf:multiplatform-settings-serialization:1.3.0
1222+
| | | | | \--- com.russhwolf:multiplatform-settings-serialization-android:1.3.0
1223+
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
1224+
| | | | | +--- com.russhwolf:multiplatform-settings:1.3.0 (*)
1225+
| | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 (*)
1226+
| | | | +--- com.russhwolf:multiplatform-settings-coroutines:1.3.0
1227+
| | | | | \--- com.russhwolf:multiplatform-settings-coroutines-android:1.3.0
1228+
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
1229+
| | | | | +--- com.russhwolf:multiplatform-settings:1.3.0 (*)
1230+
| | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 -> 1.10.1 (*)
1231+
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1 (*)
1232+
| | | | +--- project :core:common (*)
1233+
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 (*)
12091234
| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
12101235
| | | +--- io.insert-koin:koin-bom:4.0.1-RC1 (*)
12111236
| | | +--- io.insert-koin:koin-core:4.0.1-RC1 (*)
12121237
| | | +--- io.insert-koin:koin-annotations:1.4.0-RC4 (*)
1213-
| | | +--- com.russhwolf:multiplatform-settings-no-arg:1.2.0
1214-
| | | | \--- com.russhwolf:multiplatform-settings-no-arg-android:1.2.0
1215-
| | | | +--- androidx.startup:startup-runtime:1.1.1 (*)
1216-
| | | | +--- com.russhwolf:multiplatform-settings:1.2.0
1217-
| | | | | \--- com.russhwolf:multiplatform-settings-android:1.2.0
1218-
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
1219-
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
1220-
| | | +--- com.russhwolf:multiplatform-settings-serialization:1.2.0
1221-
| | | | \--- com.russhwolf:multiplatform-settings-serialization-android:1.2.0
1222-
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
1223-
| | | | +--- com.russhwolf:multiplatform-settings:1.2.0 (*)
1224-
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.3 (*)
1225-
| | | +--- com.russhwolf:multiplatform-settings-coroutines:1.2.0
1226-
| | | | \--- com.russhwolf:multiplatform-settings-coroutines-android:1.2.0
1227-
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
1228-
| | | | +--- com.russhwolf:multiplatform-settings:1.2.0 (*)
1229-
| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.10.1 (*)
12301238
| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1 (*)
12311239
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 (*)
1232-
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 (*)
12331240
| | | +--- project :core:model (*)
12341241
| | | \--- project :core:common (*)
12351242
| | +--- project :core:model (*)

cmp-android/dependencies/prodReleaseRuntimeClasspath.txt

+10-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
:cmp-navigation
22
:cmp-shared
3+
:core-base:datastore
34
:core:analytics
45
:core:common
56
:core:data
@@ -115,7 +116,7 @@ androidx.resourceinspection:resourceinspection-annotation:1.0.1
115116
androidx.savedstate:savedstate-ktx:1.2.1
116117
androidx.savedstate:savedstate:1.2.1
117118
androidx.slidingpanelayout:slidingpanelayout:1.2.0
118-
androidx.startup:startup-runtime:1.1.1
119+
androidx.startup:startup-runtime:1.2.0
119120
androidx.tracing:tracing-ktx:1.3.0-alpha02
120121
androidx.tracing:tracing:1.3.0-alpha02
121122
androidx.transition:transition:1.4.1
@@ -141,14 +142,14 @@ com.arkivanov.essenty:utils-internal-android:2.1.0
141142
com.arkivanov.essenty:utils-internal:2.1.0
142143
com.google.accompanist:accompanist-drawablepainter:0.36.0
143144
com.google.guava:listenablefuture:1.0
144-
com.russhwolf:multiplatform-settings-android:1.2.0
145-
com.russhwolf:multiplatform-settings-coroutines-android:1.2.0
146-
com.russhwolf:multiplatform-settings-coroutines:1.2.0
147-
com.russhwolf:multiplatform-settings-no-arg-android:1.2.0
148-
com.russhwolf:multiplatform-settings-no-arg:1.2.0
149-
com.russhwolf:multiplatform-settings-serialization-android:1.2.0
150-
com.russhwolf:multiplatform-settings-serialization:1.2.0
151-
com.russhwolf:multiplatform-settings:1.2.0
145+
com.russhwolf:multiplatform-settings-android:1.3.0
146+
com.russhwolf:multiplatform-settings-coroutines-android:1.3.0
147+
com.russhwolf:multiplatform-settings-coroutines:1.3.0
148+
com.russhwolf:multiplatform-settings-no-arg-android:1.3.0
149+
com.russhwolf:multiplatform-settings-no-arg:1.3.0
150+
com.russhwolf:multiplatform-settings-serialization-android:1.3.0
151+
com.russhwolf:multiplatform-settings-serialization:1.3.0
152+
com.russhwolf:multiplatform-settings:1.3.0
152153
com.squareup.okhttp3:okhttp-sse:4.12.0
153154
com.squareup.okhttp3:okhttp:4.12.0
154155
com.squareup.okio:okio-jvm:3.9.1

cmp-android/prodRelease-badging.txt

+91-107
Original file line numberDiff line numberDiff line change
@@ -1,127 +1,111 @@
1-
package: name='org.mifospay' versionCode='1' versionName='2024.12.4-beta.0.4' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
1+
package: name='cmp.android.app' versionCode='1' versionName='2025.3.3-beta.0.3' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
22
sdkVersion:'26'
33
targetSdkVersion:'34'
44
uses-permission: name='android.permission.INTERNET'
5-
uses-permission: name='android.permission.CAMERA'
6-
uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' maxSdkVersion='32'
7-
uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' maxSdkVersion='32'
8-
uses-permission: name='android.permission.VIBRATE'
9-
uses-permission: name='android.permission.FLASHLIGHT'
105
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
11-
uses-permission: name='android.permission.WAKE_LOCK'
12-
uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE'
13-
uses-permission: name='android.permission.ACCESS_ADSERVICES_ATTRIBUTION'
14-
uses-permission: name='android.permission.ACCESS_ADSERVICES_AD_ID'
15-
uses-permission: name='org.mifospay.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
16-
application-label:'Mifos Pay'
17-
application-label-af:'Mifos Pay'
18-
application-label-am:'Mifos Pay'
19-
application-label-ar:'Mifos Pay'
20-
application-label-as:'Mifos Pay'
21-
application-label-az:'Mifos Pay'
22-
application-label-be:'Mifos Pay'
23-
application-label-bg:'Mifos Pay'
24-
application-label-bn:'Mifos Pay'
25-
application-label-bs:'Mifos Pay'
26-
application-label-ca:'Mifos Pay'
27-
application-label-cs:'Mifos Pay'
28-
application-label-da:'Mifos Pay'
29-
application-label-de:'Mifos Pay'
30-
application-label-el:'Mifos Pay'
31-
application-label-en-AU:'Mifos Pay'
32-
application-label-en-CA:'Mifos Pay'
33-
application-label-en-GB:'Mifos Pay'
34-
application-label-en-IN:'Mifos Pay'
35-
application-label-en-XC:'Mifos Pay'
36-
application-label-es:'Mifos Pay'
37-
application-label-es-US:'Mifos Pay'
38-
application-label-et:'Mifos Pay'
39-
application-label-eu:'Mifos Pay'
40-
application-label-fa:'Mifos Pay'
41-
application-label-fi:'Mifos Pay'
42-
application-label-fr:'Mifos Pay'
43-
application-label-fr-CA:'Mifos Pay'
44-
application-label-gl:'Mifos Pay'
45-
application-label-gu:'Mifos Pay'
46-
application-label-hi:'Mifos Pay'
47-
application-label-hr:'Mifos Pay'
48-
application-label-hu:'Mifos Pay'
49-
application-label-hy:'Mifos Pay'
50-
application-label-in:'Mifos Pay'
51-
application-label-is:'Mifos Pay'
52-
application-label-it:'Mifos Pay'
53-
application-label-iw:'Mifos Pay'
54-
application-label-ja:'Mifos Pay'
55-
application-label-ka:'Mifos Pay'
56-
application-label-kk:'Mifos Pay'
57-
application-label-km:'Mifos Pay'
58-
application-label-kn:'Mifos Pay'
59-
application-label-ko:'Mifos Pay'
60-
application-label-ky:'Mifos Pay'
61-
application-label-lo:'Mifos Pay'
62-
application-label-lt:'Mifos Pay'
63-
application-label-lv:'Mifos Pay'
64-
application-label-mk:'Mifos Pay'
65-
application-label-ml:'Mifos Pay'
66-
application-label-mn:'Mifos Pay'
67-
application-label-mr:'Mifos Pay'
68-
application-label-ms:'Mifos Pay'
69-
application-label-my:'Mifos Pay'
70-
application-label-nb:'Mifos Pay'
71-
application-label-ne:'Mifos Pay'
72-
application-label-nl:'Mifos Pay'
73-
application-label-or:'Mifos Pay'
74-
application-label-pa:'Mifos Pay'
75-
application-label-pl:'Mifos Pay'
76-
application-label-pt:'Mifos Pay'
77-
application-label-pt-BR:'Mifos Pay'
78-
application-label-pt-PT:'Mifos Pay'
79-
application-label-ro:'Mifos Pay'
80-
application-label-ru:'Mifos Pay'
81-
application-label-si:'Mifos Pay'
82-
application-label-sk:'Mifos Pay'
83-
application-label-sl:'Mifos Pay'
84-
application-label-sq:'Mifos Pay'
85-
application-label-sr:'Mifos Pay'
86-
application-label-sr-Latn:'Mifos Pay'
87-
application-label-sv:'Mifos Pay'
88-
application-label-sw:'Mifos Pay'
89-
application-label-ta:'Mifos Pay'
90-
application-label-te:'Mifos Pay'
91-
application-label-th:'Mifos Pay'
92-
application-label-tl:'Mifos Pay'
93-
application-label-tr:'Mifos Pay'
94-
application-label-uk:'Mifos Pay'
95-
application-label-ur:'Mifos Pay'
96-
application-label-uz:'Mifos Pay'
97-
application-label-vi:'Mifos Pay'
98-
application-label-zh-CN:'Mifos Pay'
99-
application-label-zh-HK:'Mifos Pay'
100-
application-label-zh-TW:'Mifos Pay'
101-
application-label-zu:'Mifos Pay'
6+
uses-permission: name='cmp.android.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
7+
application-label:'AndroidApp'
8+
application-label-af:'AndroidApp'
9+
application-label-am:'AndroidApp'
10+
application-label-ar:'AndroidApp'
11+
application-label-as:'AndroidApp'
12+
application-label-az:'AndroidApp'
13+
application-label-be:'AndroidApp'
14+
application-label-bg:'AndroidApp'
15+
application-label-bn:'AndroidApp'
16+
application-label-bs:'AndroidApp'
17+
application-label-ca:'AndroidApp'
18+
application-label-cs:'AndroidApp'
19+
application-label-da:'AndroidApp'
20+
application-label-de:'AndroidApp'
21+
application-label-el:'AndroidApp'
22+
application-label-en-AU:'AndroidApp'
23+
application-label-en-CA:'AndroidApp'
24+
application-label-en-GB:'AndroidApp'
25+
application-label-en-IN:'AndroidApp'
26+
application-label-en-XC:'AndroidApp'
27+
application-label-es:'AndroidApp'
28+
application-label-es-US:'AndroidApp'
29+
application-label-et:'AndroidApp'
30+
application-label-eu:'AndroidApp'
31+
application-label-fa:'AndroidApp'
32+
application-label-fi:'AndroidApp'
33+
application-label-fr:'AndroidApp'
34+
application-label-fr-CA:'AndroidApp'
35+
application-label-gl:'AndroidApp'
36+
application-label-gu:'AndroidApp'
37+
application-label-hi:'AndroidApp'
38+
application-label-hr:'AndroidApp'
39+
application-label-hu:'AndroidApp'
40+
application-label-hy:'AndroidApp'
41+
application-label-in:'AndroidApp'
42+
application-label-is:'AndroidApp'
43+
application-label-it:'AndroidApp'
44+
application-label-iw:'AndroidApp'
45+
application-label-ja:'AndroidApp'
46+
application-label-ka:'AndroidApp'
47+
application-label-kk:'AndroidApp'
48+
application-label-km:'AndroidApp'
49+
application-label-kn:'AndroidApp'
50+
application-label-ko:'AndroidApp'
51+
application-label-ky:'AndroidApp'
52+
application-label-lo:'AndroidApp'
53+
application-label-lt:'AndroidApp'
54+
application-label-lv:'AndroidApp'
55+
application-label-mk:'AndroidApp'
56+
application-label-ml:'AndroidApp'
57+
application-label-mn:'AndroidApp'
58+
application-label-mr:'AndroidApp'
59+
application-label-ms:'AndroidApp'
60+
application-label-my:'AndroidApp'
61+
application-label-nb:'AndroidApp'
62+
application-label-ne:'AndroidApp'
63+
application-label-nl:'AndroidApp'
64+
application-label-or:'AndroidApp'
65+
application-label-pa:'AndroidApp'
66+
application-label-pl:'AndroidApp'
67+
application-label-pt:'AndroidApp'
68+
application-label-pt-BR:'AndroidApp'
69+
application-label-pt-PT:'AndroidApp'
70+
application-label-ro:'AndroidApp'
71+
application-label-ru:'AndroidApp'
72+
application-label-si:'AndroidApp'
73+
application-label-sk:'AndroidApp'
74+
application-label-sl:'AndroidApp'
75+
application-label-sq:'AndroidApp'
76+
application-label-sr:'AndroidApp'
77+
application-label-sr-Latn:'AndroidApp'
78+
application-label-sv:'AndroidApp'
79+
application-label-sw:'AndroidApp'
80+
application-label-ta:'AndroidApp'
81+
application-label-te:'AndroidApp'
82+
application-label-th:'AndroidApp'
83+
application-label-tl:'AndroidApp'
84+
application-label-tr:'AndroidApp'
85+
application-label-uk:'AndroidApp'
86+
application-label-ur:'AndroidApp'
87+
application-label-uz:'AndroidApp'
88+
application-label-vi:'AndroidApp'
89+
application-label-zh-CN:'AndroidApp'
90+
application-label-zh-HK:'AndroidApp'
91+
application-label-zh-TW:'AndroidApp'
92+
application-label-zu:'AndroidApp'
10293
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
10394
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
10495
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
10596
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
10697
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
10798
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
108-
application: label='Mifos Pay' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
109-
launchable-activity: name='org.mifospay.MainActivity' label='' icon=''
110-
property: name='android.adservices.AD_SERVICES_CONFIG' resource='res/xml/ga_ad_services_config.xml'
99+
application: label='AndroidApp' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
100+
launchable-activity: name='cmp.android.app.MainActivity' label='' icon=''
111101
uses-library-not-required:'androidx.window.extensions'
112102
uses-library-not-required:'androidx.window.sidecar'
113-
uses-library-not-required:'android.ext.adservices'
114103
feature-group: label=''
115-
uses-feature: name='android.hardware.camera'
116-
uses-feature: name='android.hardware.camera.autofocus'
104+
uses-feature-not-required: name='android.hardware.camera'
117105
uses-feature: name='android.hardware.faketouch'
118106
uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
119-
uses-feature: name='android.hardware.screen.portrait'
120-
uses-implied-feature: name='android.hardware.screen.portrait' reason='one or more activities have specified a portrait orientation'
121107
main
122-
other-activities
123108
other-receivers
124-
other-services
125109
supports-screens: 'small' 'normal' 'large' 'xlarge'
126110
supports-any-density: 'true'
127111
locales: '--_--' 'af' 'am' 'ar' 'as' 'az' 'be' 'bg' 'bn' 'bs' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-CA' 'en-GB' 'en-IN' 'en-XC' 'es' 'es-US' 'et' 'eu' 'fa' 'fi' 'fr' 'fr-CA' 'gl' 'gu' 'hi' 'hr' 'hu' 'hy' 'in' 'is' 'it' 'iw' 'ja' 'ka' 'kk' 'km' 'kn' 'ko' 'ky' 'lo' 'lt' 'lv' 'mk' 'ml' 'mn' 'mr' 'ms' 'my' 'nb' 'ne' 'nl' 'or' 'pa' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si' 'sk' 'sl' 'sq' 'sr' 'sr-Latn' 'sv' 'sw' 'ta' 'te' 'th' 'tl' 'tr' 'uk' 'ur' 'uz' 'vi' 'zh-CN' 'zh-HK' 'zh-TW' 'zu'

core-base/datastore/build.gradle.kts

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright 2025 Mifos Initiative
3+
*
4+
* This Source Code Form is subject to the terms of the Mozilla Public
5+
* License, v. 2.0. If a copy of the MPL was not distributed with this
6+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
7+
*
8+
* See https://github.com/openMF/kmp-project-template/blob/main/LICENSE
9+
*/
10+
plugins {
11+
alias(libs.plugins.kmp.library.convention)
12+
id("kotlinx-serialization")
13+
}
14+
15+
android {
16+
namespace = "org.mifos.corebase.datastore"
17+
}
18+
19+
kotlin {
20+
sourceSets {
21+
commonMain.dependencies {
22+
implementation(libs.multiplatform.settings)
23+
implementation(libs.multiplatform.settings.serialization)
24+
implementation(libs.multiplatform.settings.coroutines)
25+
implementation(libs.kotlinx.coroutines.core)
26+
implementation(projects.core.common)
27+
implementation(libs.kotlinx.serialization.json)
28+
}
29+
30+
commonTest.dependencies {
31+
implementation(libs.multiplatform.settings.test)
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)