diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 1e66c54..cf1e00e 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,19 +4,15 @@ diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 5f68ff0..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index ba43f69..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,7 +1,6 @@ - \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleMain.cinteropLibraries b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleMain.cinteropLibraries index ea34d7d..72d5eba 100644 --- a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleMain.cinteropLibraries +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleMain.cinteropLibraries @@ -1,4 +1,4 @@ -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleTest.cinteropLibraries b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleTest.cinteropLibraries index ea34d7d..72d5eba 100644 --- a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleTest.cinteropLibraries +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-appleTest.cinteropLibraries @@ -1,4 +1,4 @@ -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosMain.cinteropLibraries b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosMain.cinteropLibraries index ea34d7d..72d5eba 100644 --- a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosMain.cinteropLibraries +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosMain.cinteropLibraries @@ -1,4 +1,4 @@ -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosTest.cinteropLibraries b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosTest.cinteropLibraries index ea34d7d..72d5eba 100644 --- a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosTest.cinteropLibraries +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-iosTest.cinteropLibraries @@ -1,4 +1,4 @@ -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeMain.cinteropLibraries b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeMain.cinteropLibraries index ea34d7d..72d5eba 100644 --- a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeMain.cinteropLibraries +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeMain.cinteropLibraries @@ -1,4 +1,4 @@ -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeTest.cinteropLibraries b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeTest.cinteropLibraries index ea34d7d..72d5eba 100644 --- a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeTest.cinteropLibraries +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.composeApp-nativeTest.cinteropLibraries @@ -1,4 +1,4 @@ -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib -/Users/neuradev/Documents/Development/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib +/Users/rustamibrahimov/AndroidStudioProjects/JetHabit/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib index 26e1164..fafb04b 100644 Binary files a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib and b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-bundled-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-bundled-cinterop-androidXBundledSqlite-0MuvrA.klib differ diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib index e98780c..204a748 100644 Binary files a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib and b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/androidx.sqlite-sqlite-framework-2.5.0-alpha03-nativeMain-cinterop/androidx.sqlite_sqlite-framework-cinterop-sqlite3-GE3pgw.klib differ diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib index ad1bbf7..fdf83c7 100644 Binary files a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib and b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.6.10-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-DC3XFw.klib differ diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib index f7fc97b..1d4b488 100644 Binary files a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib and b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib differ diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 47edfa7..0d49c6c 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -28,7 +28,7 @@ kotlin { } } - jvmToolchain(21) + jvmToolchain(11) androidTarget() jvm() @@ -90,6 +90,9 @@ kotlin { implementation(libs.room.sqlite) implementation(libs.room.sqlite.bundled) + + implementation(libs.kotlinx.datetime) + } androidMain.dependencies { diff --git a/composeApp/composeApp.podspec b/composeApp/composeApp.podspec index 5bf016c..8b71a6b 100644 --- a/composeApp/composeApp.podspec +++ b/composeApp/composeApp.podspec @@ -43,7 +43,7 @@ Pod::Spec.new do |spec| fi set -ev REPO_ROOT="$PODS_TARGET_SRCROOT" - "$REPO_ROOT/../../../../../../private/var/folders/wd/4r6f7n8j4_jgvw3l8z7mfzpw0000gn/T/wrap2304loc/gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \ + "$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" diff --git a/composeApp/src/androidMain/AndroidManifest.xml b/composeApp/src/androidMain/AndroidManifest.xml index 5ddef33..7ca4648 100644 --- a/composeApp/src/androidMain/AndroidManifest.xml +++ b/composeApp/src/androidMain/AndroidManifest.xml @@ -1,6 +1,7 @@ + = Build.VERSION_CODES.O) { + val channel = NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT) + notificationManager.createNotificationChannel(channel) + Notification.Builder(context, CHANNEL_ID) + } else { + Notification.Builder(context) + } + + builder.setContentTitle(title) + .setContentText(content) + .setSmallIcon(android.R.drawable.ic_dialog_info) + .setAutoCancel(true) + + notificationManager.notify(1, builder.build()) + } + + actual companion object { + private lateinit var appContext: Context + private const val CHANNEL_ID = "Habit_tracker_notifications" + private const val CHANNEL_NAME = "Habit notifications" + + actual fun create(): HabbitNotificationManager { + return HabbitNotificationManager(appContext) + } + + fun initialize(context: Context) { + appContext = context + } + } +} \ No newline at end of file diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml index adc1b15..7f9729f 100644 --- a/composeApp/src/commonMain/composeResources/values/strings.xml +++ b/composeApp/src/commonMain/composeResources/values/strings.xml @@ -85,4 +85,8 @@ Good habit Bad habit + + Well done! + You have not smoked for more than 10 days!!! + \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/feature/daily/domain/GetHabitsForTodayUseCase.kt b/composeApp/src/commonMain/kotlin/feature/daily/domain/GetHabitsForTodayUseCase.kt index ee6eb2c..bf6a253 100644 --- a/composeApp/src/commonMain/kotlin/feature/daily/domain/GetHabitsForTodayUseCase.kt +++ b/composeApp/src/commonMain/kotlin/feature/daily/domain/GetHabitsForTodayUseCase.kt @@ -11,7 +11,6 @@ class GetHabitsForTodayUseCase( private val habitDao: HabitDao, private val dailyDao: DailyDao ) { - suspend fun execute(date: LocalDate): List { val currentDay = date.dayOfWeek.ordinal @@ -21,6 +20,7 @@ class GetHabitsForTodayUseCase( date.compareTo(timestamp) == 0 && it.isChecked } .map { it.habitId } + val habits = habitDao.getAll() .filter { val habitDays = json.decodeFromString>(it.daysToCheck) @@ -30,7 +30,8 @@ class GetHabitsForTodayUseCase( DailyHabit( id = it.id, title = it.title, - isChecked = dailyEntries.contains(it.id) + isChecked = dailyEntries.contains(it.id), + startDate = it.startDate ) } diff --git a/composeApp/src/commonMain/kotlin/feature/daily/presentation/DailyViewModel.kt b/composeApp/src/commonMain/kotlin/feature/daily/presentation/DailyViewModel.kt index 6df6ce3..9512a32 100644 --- a/composeApp/src/commonMain/kotlin/feature/daily/presentation/DailyViewModel.kt +++ b/composeApp/src/commonMain/kotlin/feature/daily/presentation/DailyViewModel.kt @@ -5,15 +5,29 @@ import base.BaseViewModel import di.Inject import feature.daily.domain.GetHabitsForTodayUseCase import feature.daily.domain.SwitchHabitUseCase -import feature.daily.ui.models.DailyViewState -import kotlinx.coroutines.launch import feature.daily.ui.models.DailyAction import feature.daily.ui.models.DailyEvent +import feature.daily.ui.models.DailyViewState import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import kotlinx.datetime.* +import kotlinx.datetime.Clock +import kotlinx.datetime.DateTimeUnit +import kotlinx.datetime.Instant +import kotlinx.datetime.LocalDate +import kotlinx.datetime.TimeZone +import kotlinx.datetime.minus +import kotlinx.datetime.plus +import kotlinx.datetime.toLocalDateTime +import kotlinx.datetime.todayIn +import org.jetbrains.compose.resources.getString +import screens.daily.views.daysSinceHabitStarted import screens.daily.views.mapToHabitCardItemModel +import tech.mobiledeveloper.jethabit.resources.Res +import tech.mobiledeveloper.jethabit.resources.no_smoke_ten_days +import tech.mobiledeveloper.jethabit.resources.well_done import utils.getTitle +import utils.notifications.HabbitNotificationManager class DailyViewModel : BaseViewModel( initialState = DailyViewState() @@ -37,7 +51,10 @@ class DailyViewModel : BaseViewModel( DailyEvent.PreviousDayClicked -> performPreviousClick() DailyEvent.ReloadScreen -> fetchHabitFor(currentDate.current()) DailyEvent.ComposeAction -> viewAction = DailyAction.OpenCompose - is DailyEvent.HabitCheckClicked -> switchCheckForHabit(viewEvent.habitId, viewEvent.newValue) + is DailyEvent.HabitCheckClicked -> switchCheckForHabit( + viewEvent.habitId, + viewEvent.newValue + ) } } @@ -45,7 +62,7 @@ class DailyViewModel : BaseViewModel( val today = Clock.System.todayIn(TimeZone.currentSystemDefault()) val isToday = date.dayOfYear == today.dayOfYear && date.year == today.year val title = date.getTitle() - + viewState = viewState.copy( currentDay = title, hasNextDay = !isToday @@ -55,6 +72,15 @@ class DailyViewModel : BaseViewModel( val habits = getHabitsForTodayUseCase.execute(date) .map { it.mapToHabitCardItemModel() } + val daysSinceStarted = habits.daysSinceHabitStarted(today) + + if (daysSinceStarted != null && daysSinceStarted >= 10) { + HabbitNotificationManager.create().sendNotification( + title = getString(Res.string.well_done), + content = getString(Res.string.no_smoke_ten_days) + ) + } + withContext(Dispatchers.Main) { viewState = viewState.copy(habits = habits) } @@ -83,4 +109,5 @@ class DailyViewModel : BaseViewModel( } } -private fun Instant.current(): LocalDate = this.toLocalDateTime(TimeZone.currentSystemDefault()).date \ No newline at end of file +private fun Instant.current(): LocalDate = + this.toLocalDateTime(TimeZone.currentSystemDefault()).date \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/feature/daily/presentation/models/DailyHabit.kt b/composeApp/src/commonMain/kotlin/feature/daily/presentation/models/DailyHabit.kt index 8d421fb..d1c9aca 100644 --- a/composeApp/src/commonMain/kotlin/feature/daily/presentation/models/DailyHabit.kt +++ b/composeApp/src/commonMain/kotlin/feature/daily/presentation/models/DailyHabit.kt @@ -3,5 +3,6 @@ package feature.daily.presentation.models class DailyHabit( val id: String, val title: String, - val isChecked: Boolean + val isChecked: Boolean, + val startDate: String ) \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/feature/daily/ui/views/HabitCardItem.kt b/composeApp/src/commonMain/kotlin/feature/daily/ui/views/HabitCardItem.kt index 395bd88..7439fcc 100644 --- a/composeApp/src/commonMain/kotlin/feature/daily/ui/views/HabitCardItem.kt +++ b/composeApp/src/commonMain/kotlin/feature/daily/ui/views/HabitCardItem.kt @@ -11,21 +11,32 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import feature.daily.presentation.models.DailyHabit +import kotlinx.datetime.LocalDate +import kotlinx.datetime.daysUntil import ui.themes.JetHabitTheme data class HabitCardItemModel( val habitId: String, val title: String, - val isChecked: Boolean + val isChecked: Boolean, + val startDate: String? = null ) fun DailyHabit.mapToHabitCardItemModel(): HabitCardItemModel = HabitCardItemModel( habitId = id, title = title, - isChecked = isChecked + isChecked = isChecked, + startDate = startDate ) +fun List.daysSinceHabitStarted(currentDate: LocalDate): Int? { + val habit = find { !it.startDate.isNullOrEmpty() } + return habit?.startDate?.let { + LocalDate.parse(it).daysUntil(currentDate) + } +} + @Composable internal fun HabitCardItem( model: HabitCardItemModel, diff --git a/composeApp/src/commonMain/kotlin/screens/stats/StatisticsViewModel.kt b/composeApp/src/commonMain/kotlin/screens/stats/StatisticsViewModel.kt index 0f261ce..59e8365 100644 --- a/composeApp/src/commonMain/kotlin/screens/stats/StatisticsViewModel.kt +++ b/composeApp/src/commonMain/kotlin/screens/stats/StatisticsViewModel.kt @@ -2,22 +2,29 @@ package screens.stats import androidx.lifecycle.viewModelScope import base.BaseViewModel -import data.features.daily.DailyRepository import di.Inject +import feature.daily.domain.GetHabitsForTodayUseCase import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import kotlinx.datetime.Clock +import kotlinx.datetime.TimeZone +import kotlinx.datetime.toLocalDateTime +import org.jetbrains.compose.resources.getString +import screens.daily.views.daysSinceHabitStarted +import screens.daily.views.mapToHabitCardItemModel import screens.stats.models.StatsAction import screens.stats.models.StatsEvent import screens.stats.models.StatsViewState import screens.stats.views.StatisticCellModel +import tech.mobiledeveloper.jethabit.resources.Res +import tech.mobiledeveloper.jethabit.resources.no_smoke_ten_days class StatisticsViewModel : BaseViewModel( initialState = StatsViewState() ) { - - private val dailyRepository: DailyRepository = Inject.instance() + private val getHabitsForTodayUseCase = Inject.instance() init { loadActivities() @@ -31,44 +38,33 @@ class StatisticsViewModel : BaseViewModel { -// val medicationList = medicationRepository.fetchCurrentMedications() -// val diary = dailyRepository.fetchDiary() -// -// return medicationList.map { medication -> -// val filtered = diary.filter { entry -> -// val startDate = getValueOrNull(medication.startDate) ?: return@filter false -// val endDate = getValueOrNull(medication.endDate) ?: return@filter false -// val entryDate = DateTime.fromString(entry.date) -// -// val startComparable = startDate.compareTo(entryDate) -// val endComparable = endDate.compareTo(entryDate) -// -// startComparable == 0 && endComparable == 1 -// } -// -// val startDate = getValueOrNull(medication.startDate) -// val endDate = getValueOrNull(medication.endDate) -// val diff = startDate?.let { endDate?.minus(it)?.days } ?: 0.0 -// -// StatisticCellModel( -// title = medication.title, -// activeDayList = listOf(true, true, true, false, false), -// duration = diff.toInt().toString(), -// fact = filtered.size.toString(), -// percentage = filtered.size.toFloat() / diff.toFloat(), -// isPeriodic = false -// ) -// } + private suspend fun fetchNonSmokingStatistics(): List { + val today = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()).date + val habits = getHabitsForTodayUseCase.execute(today) + .map { it.mapToHabitCardItemModel() } + + val nonSmokingStats = mutableListOf() + val daysSinceLast = habits.daysSinceHabitStarted(today) - return emptyList() + if (daysSinceLast != null) { + val statistic = StatisticCellModel( + title = getString(Res.string.no_smoke_ten_days), + activeDayList = emptyList(), + duration = "$daysSinceLast days", + fact = daysSinceLast.toString(), + percentage = 1f, + isPeriodic = false + ) + + nonSmokingStats.add(statistic) + } + return nonSmokingStats } } \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/utils/Date + Utils.kt b/composeApp/src/commonMain/kotlin/utils/Date + Utils.kt index 9588b70..ab26551 100644 --- a/composeApp/src/commonMain/kotlin/utils/Date + Utils.kt +++ b/composeApp/src/commonMain/kotlin/utils/Date + Utils.kt @@ -1,12 +1,21 @@ package utils +import kotlinx.datetime.Clock import kotlinx.datetime.DateTimeUnit import kotlinx.datetime.LocalDate +import kotlinx.datetime.TimeZone +import kotlinx.datetime.daysUntil import kotlinx.datetime.plus +import kotlinx.datetime.todayIn import kotlinx.datetime.until fun LocalDate.daysInMonth(): Int { val start = LocalDate(year, month, 1) val end = start.plus(1, DateTimeUnit.MONTH) return start.until(end, DateTimeUnit.DAY) +} + +fun LocalDate.tenDaysPassed(): Boolean { + val today = Clock.System.todayIn(TimeZone.currentSystemDefault()) + return this.daysUntil(today) >= 10 } \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/utils/notifications/HabbitNotificationManager.kt b/composeApp/src/commonMain/kotlin/utils/notifications/HabbitNotificationManager.kt new file mode 100644 index 0000000..ca1ce29 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/utils/notifications/HabbitNotificationManager.kt @@ -0,0 +1,9 @@ +package utils.notifications + +expect class HabbitNotificationManager { + fun sendNotification(title: String, content: String) + + companion object { + fun create(): HabbitNotificationManager + } +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5576bb3..e3942d4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,6 @@ [versions] # Plugins +kotlinxDatetime = "0.6.1" plugin-android = "8.2.2" # https://developer.android.com/studio/releases/gradle-plugin plugin-compose = "1.6.10" # https://github.com/JetBrains/compose-jb @@ -22,6 +23,7 @@ androidx-activityCompose = "1.9.0" mindsdk = "24" [libraries] +kotlinx-datetime-v061 = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" } plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } plugin-android = { module = "com.android.tools.build:gradle", version.ref = "plugin-android" } plugin-compose = { module = "org.jetbrains.compose:compose-gradle-plugin", version.ref = "plugin-compose" } @@ -42,7 +44,7 @@ kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serializa kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } kotlinx-coroutines-jvm = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "coroutines" } -kotlinx-datetime = "org.jetbrains.kotlinx:kotlinx-datetime:0.6.0" +kotlinx-datetime = "org.jetbrains.kotlinx:kotlinx-datetime:0.6.1" room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }