diff --git a/data/local/build.gradle.kts b/data/local/build.gradle.kts index c2d09438a..33a8f3143 100644 --- a/data/local/build.gradle.kts +++ b/data/local/build.gradle.kts @@ -26,6 +26,7 @@ dependencies { api(libs.androidx.room.runtime) implementation(libs.androidx.room.ktx) ksp(libs.androidx.room.compiler) + implementation(libs.kotlinx.datetime) androidTestImplementation(libs.test.junitext) androidTestImplementation(libs.test.runner) diff --git a/data/local/src/main/java/com/escodro/local/mapper/TaskMapper.kt b/data/local/src/main/java/com/escodro/local/mapper/TaskMapper.kt index 73d075efc..50df13eae 100644 --- a/data/local/src/main/java/com/escodro/local/mapper/TaskMapper.kt +++ b/data/local/src/main/java/com/escodro/local/mapper/TaskMapper.kt @@ -1,5 +1,7 @@ package com.escodro.local.mapper +import com.escodro.core.extension.toCalendar +import com.escodro.core.extension.toLocalDateTime import com.escodro.local.model.Task as LocalTask import com.escodro.repository.model.Task as RepoTask @@ -22,9 +24,9 @@ internal class TaskMapper(private val alarmIntervalMapper: AlarmIntervalMapper) title = repoTask.title, description = repoTask.description, categoryId = repoTask.categoryId, - dueDate = repoTask.dueDate, - creationDate = repoTask.creationDate, - completedDate = repoTask.completedDate, + dueDate = repoTask.dueDate?.toCalendar(), + creationDate = repoTask.creationDate?.toCalendar(), + completedDate = repoTask.completedDate?.toCalendar(), isRepeating = repoTask.isRepeating, alarmInterval = repoTask.alarmInterval?.let { alarmIntervalMapper.toLocal(it) }, ) @@ -43,9 +45,9 @@ internal class TaskMapper(private val alarmIntervalMapper: AlarmIntervalMapper) title = localTask.title, description = localTask.description, categoryId = localTask.categoryId, - dueDate = localTask.dueDate, - creationDate = localTask.creationDate, - completedDate = localTask.completedDate, + dueDate = localTask.dueDate?.toLocalDateTime(), + creationDate = localTask.creationDate?.toLocalDateTime(), + completedDate = localTask.completedDate?.toLocalDateTime(), isRepeating = localTask.isRepeating, alarmInterval = localTask.alarmInterval?.let { alarmIntervalMapper.toRepo(it) }, ) diff --git a/data/repository/.gitignore b/data/repository/.gitignore deleted file mode 100644 index 796b96d1c..000000000 --- a/data/repository/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/data/repository/build.gradle.kts b/data/repository/build.gradle.kts index d5907c2fa..3c4b4695f 100644 --- a/data/repository/build.gradle.kts +++ b/data/repository/build.gradle.kts @@ -1,16 +1,53 @@ plugins { - id("com.escodro.android-library") // TODO revert to Kotlin-only + kotlin("multiplatform") + id("com.android.library") + id("com.escodro.kotlin-quality") } -dependencies { - implementation(projects.domain) - implementation(projects.libraries.core) +@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class) +kotlin { + targetHierarchy.default() - implementation(libs.koin.core) - implementation(libs.kotlinx.coroutines.core) - implementation(libs.kotlinx.datetime) + android { + compilations.all { + kotlinOptions { + jvmTarget = "1.8" + } + } + } + + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { + it.binaries.framework { + baseName = "repository" + } + } + + sourceSets { + val commonMain by getting { + dependencies { + implementation(projects.domain) + + implementation(libs.koin.core) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.kotlinx.datetime) + } + } + val commonTest by getting { + dependencies { + implementation(kotlin("test")) + } + } + } } android { namespace = "com.escodro.repository" + compileSdk = Integer.parseInt(libs.versions.android.sdk.compile.get()) + defaultConfig { + minSdk = Integer.parseInt(libs.versions.android.sdk.min.get()) + } } diff --git a/data/repository/consumer-rules.pro b/data/repository/consumer-rules.pro deleted file mode 100644 index e69de29bb..000000000 diff --git a/data/repository/proguard-rules.pro b/data/repository/proguard-rules.pro deleted file mode 100644 index a0bc4ea99..000000000 --- a/data/repository/proguard-rules.pro +++ /dev/null @@ -1,26 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile - --keepclassmembers enum * { - public static **[] values(); - public static ** valueOf(java.lang.String); -} diff --git a/data/repository/src/main/java/com/escodro/repository/CategoryRepositoryImpl.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/CategoryRepositoryImpl.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/CategoryRepositoryImpl.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/CategoryRepositoryImpl.kt diff --git a/data/repository/src/main/java/com/escodro/repository/PreferencesRepositoryImpl.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/PreferencesRepositoryImpl.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/PreferencesRepositoryImpl.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/PreferencesRepositoryImpl.kt diff --git a/data/repository/src/main/java/com/escodro/repository/SearchRepositoryImpl.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/SearchRepositoryImpl.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/SearchRepositoryImpl.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/SearchRepositoryImpl.kt diff --git a/data/repository/src/main/java/com/escodro/repository/TaskRepositoryImpl.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/TaskRepositoryImpl.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/TaskRepositoryImpl.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/TaskRepositoryImpl.kt diff --git a/data/repository/src/main/java/com/escodro/repository/TaskWithCategoryRepositoryImpl.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/TaskWithCategoryRepositoryImpl.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/TaskWithCategoryRepositoryImpl.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/TaskWithCategoryRepositoryImpl.kt diff --git a/data/repository/src/main/java/com/escodro/repository/datasource/CategoryDataSource.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/CategoryDataSource.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/datasource/CategoryDataSource.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/CategoryDataSource.kt diff --git a/data/repository/src/main/java/com/escodro/repository/datasource/PreferencesDataSource.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/PreferencesDataSource.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/datasource/PreferencesDataSource.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/PreferencesDataSource.kt diff --git a/data/repository/src/main/java/com/escodro/repository/datasource/SearchDataSource.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/SearchDataSource.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/datasource/SearchDataSource.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/SearchDataSource.kt diff --git a/data/repository/src/main/java/com/escodro/repository/datasource/TaskDataSource.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/TaskDataSource.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/datasource/TaskDataSource.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/TaskDataSource.kt diff --git a/data/repository/src/main/java/com/escodro/repository/datasource/TaskWithCategoryDataSource.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/TaskWithCategoryDataSource.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/datasource/TaskWithCategoryDataSource.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/TaskWithCategoryDataSource.kt diff --git a/data/repository/src/main/java/com/escodro/repository/di/RepositoryModule.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/di/RepositoryModule.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/di/RepositoryModule.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/di/RepositoryModule.kt diff --git a/data/repository/src/main/java/com/escodro/repository/mapper/AlarmIntervalMapper.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/AlarmIntervalMapper.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/mapper/AlarmIntervalMapper.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/AlarmIntervalMapper.kt diff --git a/data/repository/src/main/java/com/escodro/repository/mapper/AppThemeOptionsMapper.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/AppThemeOptionsMapper.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/mapper/AppThemeOptionsMapper.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/AppThemeOptionsMapper.kt diff --git a/data/repository/src/main/java/com/escodro/repository/mapper/CategoryMapper.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/CategoryMapper.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/mapper/CategoryMapper.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/CategoryMapper.kt diff --git a/data/repository/src/main/java/com/escodro/repository/mapper/TaskMapper.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/TaskMapper.kt similarity index 78% rename from data/repository/src/main/java/com/escodro/repository/mapper/TaskMapper.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/TaskMapper.kt index d0f22b20c..9e00f56a3 100644 --- a/data/repository/src/main/java/com/escodro/repository/mapper/TaskMapper.kt +++ b/data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/TaskMapper.kt @@ -1,7 +1,5 @@ package com.escodro.repository.mapper -import com.escodro.core.extension.toCalendar -import com.escodro.core.extension.toLocalDateTime import com.escodro.domain.model.Task as DomainTask import com.escodro.repository.model.Task as RepoTask @@ -24,9 +22,9 @@ internal class TaskMapper(private val alarmIntervalMapper: AlarmIntervalMapper) title = repoTask.title, description = repoTask.description, categoryId = repoTask.categoryId, - dueDate = repoTask.dueDate?.toLocalDateTime(), - creationDate = repoTask.creationDate?.toLocalDateTime(), - completedDate = repoTask.completedDate?.toLocalDateTime(), + dueDate = repoTask.dueDate, + creationDate = repoTask.creationDate, + completedDate = repoTask.completedDate, isRepeating = repoTask.isRepeating, alarmInterval = repoTask.alarmInterval?.let { alarmIntervalMapper.toDomain(it) }, ) @@ -55,9 +53,9 @@ internal class TaskMapper(private val alarmIntervalMapper: AlarmIntervalMapper) title = domainTask.title, description = domainTask.description, categoryId = domainTask.categoryId, - dueDate = domainTask.dueDate?.toCalendar(), - creationDate = domainTask.creationDate?.toCalendar(), - completedDate = domainTask.completedDate?.toCalendar(), + dueDate = domainTask.dueDate, + creationDate = domainTask.creationDate, + completedDate = domainTask.completedDate, isRepeating = domainTask.isRepeating, alarmInterval = domainTask.alarmInterval?.let { alarmIntervalMapper.toRepo(it) }, ) diff --git a/data/repository/src/main/java/com/escodro/repository/mapper/TaskWithCategoryMapper.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/TaskWithCategoryMapper.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/mapper/TaskWithCategoryMapper.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/mapper/TaskWithCategoryMapper.kt diff --git a/data/repository/src/main/java/com/escodro/repository/model/AlarmInterval.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/model/AlarmInterval.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/model/AlarmInterval.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/model/AlarmInterval.kt diff --git a/data/repository/src/main/java/com/escodro/repository/model/AppThemeOptions.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/model/AppThemeOptions.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/model/AppThemeOptions.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/model/AppThemeOptions.kt diff --git a/data/repository/src/main/java/com/escodro/repository/model/Category.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/model/Category.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/model/Category.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/model/Category.kt diff --git a/data/repository/src/main/java/com/escodro/repository/model/Task.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/model/Task.kt similarity index 83% rename from data/repository/src/main/java/com/escodro/repository/model/Task.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/model/Task.kt index 26069506f..5f4d6ecf2 100644 --- a/data/repository/src/main/java/com/escodro/repository/model/Task.kt +++ b/data/repository/src/commonMain/kotlin/com/escodro/repository/model/Task.kt @@ -1,6 +1,6 @@ package com.escodro.repository.model -import java.util.Calendar +import kotlinx.datetime.LocalDateTime /** * Data class to represent a Task. @@ -22,9 +22,9 @@ data class Task( val title: String, val description: String?, val categoryId: Long? = null, - val dueDate: Calendar? = null, - val creationDate: Calendar? = null, - val completedDate: Calendar? = null, + val dueDate: LocalDateTime? = null, + val creationDate: LocalDateTime? = null, + val completedDate: LocalDateTime? = null, val isRepeating: Boolean = false, val alarmInterval: AlarmInterval? = null, ) diff --git a/data/repository/src/main/java/com/escodro/repository/model/TaskWithCategory.kt b/data/repository/src/commonMain/kotlin/com/escodro/repository/model/TaskWithCategory.kt similarity index 100% rename from data/repository/src/main/java/com/escodro/repository/model/TaskWithCategory.kt rename to data/repository/src/commonMain/kotlin/com/escodro/repository/model/TaskWithCategory.kt diff --git a/data/repository/src/main/AndroidManifest.xml b/data/repository/src/main/AndroidManifest.xml deleted file mode 100644 index cc947c567..000000000 --- a/data/repository/src/main/AndroidManifest.xml +++ /dev/null @@ -1 +0,0 @@ -