From 1620444123b7cacfe4a959a9f3b4741ad0e9aa4b Mon Sep 17 00:00:00 2001 From: Sad Ellie Date: Thu, 2 Feb 2023 18:51:36 +0400 Subject: [PATCH] Data module refactor --- app/build.gradle.kts | 4 +- .../main/java/UnittoLibraryFeaturePlugin.kt | 1 - data/{ => epoch}/.gitignore | 0 data/epoch/build.gradle.kts | 26 +++++++ data/epoch/consumer-rules.pro | 0 data/epoch/proguard-rules.pro | 21 +++++ data/{ => epoch}/src/main/AndroidManifest.xml | 0 .../unitto/data/epoch/EpochDateConverter.kt | 77 +++++++++++++++++++ data/licenses/.gitignore | 1 + data/licenses/build.gradle.kts | 26 +++++++ data/licenses/consumer-rules.pro | 0 data/licenses/src/main/AndroidManifest.xml | 22 ++++++ .../sadellie/unitto/data/licenses}/Library.kt | 4 +- data/unitgroups/.gitignore | 1 + data/unitgroups/build.gradle.kts | 33 ++++++++ data/unitgroups/consumer-rules.pro | 0 data/unitgroups/src/main/AndroidManifest.xml | 22 ++++++ .../unitto/data/unitgroups}/UnitGroup.kt | 3 +- .../data/unitgroups}/UnitGroupsRepository.kt | 2 +- data/units/.gitignore | 1 + data/{ => units}/build.gradle.kts | 3 +- data/{ => units}/consumer-rules.pro | 0 data/units/src/main/AndroidManifest.xml | 22 ++++++ .../unitto/data/units/AbstractUnit.kt | 1 + .../unitto/data/units/AllUnitsRepository.kt | 1 + .../unitto/data/units}/BigDecimalUtils.kt | 0 .../sadellie/unitto/data/units}/FlowUtils.kt | 0 .../com/sadellie/unitto/data/units/MyUnit.kt | 1 + .../sadellie/unitto/data/units/MyUnitIDS.kt | 0 .../unitto/data/units/NumberBaseUnit.kt | 1 + .../unitto/data/units}/StringUtils.kt | 0 .../data/units/collections/Acceleration.kt | 4 +- .../unitto/data/units/collections/Angle.kt | 4 +- .../unitto/data/units/collections/Area.kt | 4 +- .../unitto/data/units/collections/Currency.kt | 4 +- .../unitto/data/units/collections/Data.kt | 4 +- .../data/units/collections/DataTransfer.kt | 4 +- .../unitto/data/units/collections/Energy.kt | 4 +- .../unitto/data/units/collections/Flux.kt | 4 +- .../unitto/data/units/collections/Length.kt | 4 +- .../unitto/data/units/collections/Mass.kt | 4 +- .../data/units/collections/NumberBase.kt | 4 +- .../unitto/data/units/collections/Power.kt | 4 +- .../unitto/data/units/collections/Pressure.kt | 4 +- .../unitto/data/units/collections/Speed.kt | 4 +- .../data/units/collections/Temperature.kt | 4 +- .../unitto/data/units/collections/Time.kt | 4 +- .../unitto/data/units/collections/Volume.kt | 4 +- .../units/database/BasedUnitDatabaseModule.kt | 0 .../unitto/data/units/database/MyBasedUnit.kt | 0 .../data/units/database/MyBasedUnitDao.kt | 0 .../units/database/MyBasedUnitDatabase.kt | 0 .../units/database/MyBasedUnitsRepository.kt | 0 .../data/units/remote/CurrencyApiService.kt | 0 .../data/units/remote/CurrencyUnitResponse.kt | 0 .../data/units/AllUnitsRepositoryTest.kt | 2 + .../unitto/data/units/AllUnitsTest.kt | 1 + .../units}/LevenshteinFilterAndSortTest.kt | 7 +- .../unitto/data/units}/LevenshteinTest.kt | 3 +- .../data/units}/MinimumRequiredScaleTest.kt | 3 +- data/userprefs/.gitignore | 1 + data/userprefs/build.gradle.kts | 35 +++++++++ data/userprefs/consumer-rules.pro | 0 data/userprefs/src/main/AndroidManifest.xml | 22 ++++++ .../unitto/data/userprefs}/DataStoreModule.kt | 2 +- .../unitto/data/userprefs}/UserPreferences.kt | 11 ++- feature/converter/build.gradle.kts | 4 + .../unitto/feature/converter/MainViewModel.kt | 8 +- .../feature/converter/components/TopScreen.kt | 2 +- .../feature/converter/MainViewModelTest.kt | 11 +-- feature/epoch/build.gradle.kts | 4 + .../unitto/feature/epoch/EpochViewModel.kt | 60 +-------------- feature/settings/build.gradle.kts | 4 + .../feature/settings/SettingsViewModel.kt | 11 +-- .../settings/ThirdPartyLicensesScreen.kt | 4 +- feature/unitslist/build.gradle.kts | 5 ++ .../feature/unitslist/RightSideScreen.kt | 2 +- .../feature/unitslist/SecondScreenUIState.kt | 2 +- .../feature/unitslist/SecondViewModel.kt | 5 +- .../feature/unitslist/components/ChipsRow.kt | 4 +- .../unitslist/components/UnitGroupHeader.kt | 2 +- settings.gradle.kts | 6 +- 82 files changed, 421 insertions(+), 141 deletions(-) rename data/{ => epoch}/.gitignore (100%) create mode 100644 data/epoch/build.gradle.kts create mode 100644 data/epoch/consumer-rules.pro create mode 100644 data/epoch/proguard-rules.pro rename data/{ => epoch}/src/main/AndroidManifest.xml (100%) create mode 100644 data/epoch/src/main/java/com/sadellie/unitto/data/epoch/EpochDateConverter.kt create mode 100644 data/licenses/.gitignore create mode 100644 data/licenses/build.gradle.kts create mode 100644 data/licenses/consumer-rules.pro create mode 100644 data/licenses/src/main/AndroidManifest.xml rename data/{src/main/java/com/sadellie/unitto/data => licenses/src/main/java/com/sadellie/unitto/data/licenses}/Library.kt (98%) create mode 100644 data/unitgroups/.gitignore create mode 100644 data/unitgroups/build.gradle.kts create mode 100644 data/unitgroups/consumer-rules.pro create mode 100644 data/unitgroups/src/main/AndroidManifest.xml rename data/{src/main/java/com/sadellie/unitto/data/units => unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups}/UnitGroup.kt (95%) rename data/{src/main/java/com/sadellie/unitto/data/units => unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups}/UnitGroupsRepository.kt (98%) create mode 100644 data/units/.gitignore rename data/{ => units}/build.gradle.kts (92%) rename data/{ => units}/consumer-rules.pro (100%) create mode 100644 data/units/src/main/AndroidManifest.xml rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/AbstractUnit.kt (99%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/AllUnitsRepository.kt (99%) rename data/{src/main/java/com/sadellie/unitto/data => units/src/main/java/com/sadellie/unitto/data/units}/BigDecimalUtils.kt (100%) rename data/{src/main/java/com/sadellie/unitto/data => units/src/main/java/com/sadellie/unitto/data/units}/FlowUtils.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/MyUnit.kt (97%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/MyUnitIDS.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/NumberBaseUnit.kt (96%) rename data/{src/main/java/com/sadellie/unitto/data => units/src/main/java/com/sadellie/unitto/data/units}/StringUtils.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Acceleration.kt (98%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Angle.kt (95%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Area.kt (97%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Currency.kt (99%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Data.kt (97%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/DataTransfer.kt (97%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Energy.kt (97%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Flux.kt (95%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Length.kt (98%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Mass.kt (97%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/NumberBase.kt (96%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Power.kt (95%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Pressure.kt (98%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Speed.kt (98%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Temperature.kt (98%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Time.kt (96%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/collections/Volume.kt (98%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/database/BasedUnitDatabaseModule.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnit.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDao.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDatabase.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitsRepository.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyApiService.kt (100%) rename data/{ => units}/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyUnitResponse.kt (100%) rename data/{ => units}/src/test/java/com/sadellie/unitto/data/units/AllUnitsRepositoryTest.kt (97%) rename data/{ => units}/src/test/java/com/sadellie/unitto/data/units/AllUnitsTest.kt (99%) rename data/{src/test/java/com/sadellie/unitto/data => units/src/test/java/com/sadellie/unitto/data/units}/LevenshteinFilterAndSortTest.kt (92%) rename data/{src/test/java/com/sadellie/unitto/data => units/src/test/java/com/sadellie/unitto/data/units}/LevenshteinTest.kt (95%) rename data/{src/test/java/com/sadellie/unitto/data => units/src/test/java/com/sadellie/unitto/data/units}/MinimumRequiredScaleTest.kt (94%) create mode 100644 data/userprefs/.gitignore create mode 100644 data/userprefs/build.gradle.kts create mode 100644 data/userprefs/consumer-rules.pro create mode 100644 data/userprefs/src/main/AndroidManifest.xml rename data/{src/main/java/com/sadellie/unitto/data/preferences => userprefs/src/main/java/com/sadellie/unitto/data/userprefs}/DataStoreModule.kt (97%) rename data/{src/main/java/com/sadellie/unitto/data/preferences => userprefs/src/main/java/com/sadellie/unitto/data/userprefs}/UserPreferences.kt (97%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2fc187eb..8a7e2aea 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -112,7 +112,7 @@ dependencies { implementation(project(mapOf("path" to ":feature:unitslist"))) implementation(project(mapOf("path" to ":feature:tools"))) implementation(project(mapOf("path" to ":feature:epoch"))) - implementation(project(mapOf("path" to ":data"))) - implementation(project(mapOf("path" to ":core:base"))) + implementation(project(mapOf("path" to ":data:units"))) + implementation(project(mapOf("path" to ":data:userprefs"))) implementation(project(mapOf("path" to ":core:ui"))) } diff --git a/build-logic/convention/src/main/java/UnittoLibraryFeaturePlugin.kt b/build-logic/convention/src/main/java/UnittoLibraryFeaturePlugin.kt index dbcd8efd..49b4e58d 100644 --- a/build-logic/convention/src/main/java/UnittoLibraryFeaturePlugin.kt +++ b/build-logic/convention/src/main/java/UnittoLibraryFeaturePlugin.kt @@ -29,7 +29,6 @@ class UnittoLibraryFeaturePlugin : Plugin { dependencies { "implementation"(libs.findLibrary("androidx.navigation").get()) - "implementation"(project(mapOf("path" to ":data"))) "implementation"(project(mapOf("path" to ":core:base"))) "implementation"(project(mapOf("path" to ":core:ui"))) } diff --git a/data/.gitignore b/data/epoch/.gitignore similarity index 100% rename from data/.gitignore rename to data/epoch/.gitignore diff --git a/data/epoch/build.gradle.kts b/data/epoch/build.gradle.kts new file mode 100644 index 00000000..e90d319c --- /dev/null +++ b/data/epoch/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Unitto is a unit converter for Android + * Copyright (c) 2023 Elshan Agaev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +plugins { + id("unitto.library") + id("unitto.android.hilt") +} + +android { + namespace = "com.sadellie.unitto.data.epoch" +} diff --git a/data/epoch/consumer-rules.pro b/data/epoch/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/data/epoch/proguard-rules.pro b/data/epoch/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/data/epoch/proguard-rules.pro @@ -0,0 +1,21 @@ +# 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 \ No newline at end of file diff --git a/data/src/main/AndroidManifest.xml b/data/epoch/src/main/AndroidManifest.xml similarity index 100% rename from data/src/main/AndroidManifest.xml rename to data/epoch/src/main/AndroidManifest.xml diff --git a/data/epoch/src/main/java/com/sadellie/unitto/data/epoch/EpochDateConverter.kt b/data/epoch/src/main/java/com/sadellie/unitto/data/epoch/EpochDateConverter.kt new file mode 100644 index 00000000..e949ea3c --- /dev/null +++ b/data/epoch/src/main/java/com/sadellie/unitto/data/epoch/EpochDateConverter.kt @@ -0,0 +1,77 @@ +/* + * Unitto is a unit converter for Android + * Copyright (c) 2023 Elshan Agaev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sadellie.unitto.data.epoch + +import java.math.BigDecimal +import java.util.* + +object EpochDateConverter { + fun convertDateToUnix(date: String): String { + // Here we add some zeros, so that input is 14 symbols long + val inputWithPadding = date.padEnd(14, '0') + + // Now we break input that is 14 symbols into pieces + val hour = inputWithPadding.substring(0, 2) + val minute = inputWithPadding.substring(2, 4) + val second = inputWithPadding.substring(4, 6) + val day = inputWithPadding.substring(6, 8) + val month = inputWithPadding.substring(8, 10) + val year = inputWithPadding.substring(10, 14) + + val cal = Calendar.getInstance() + cal.set( + year.toIntOrNull() ?: 1970, + (month.toIntOrNull() ?: 1) - 1, + day.toIntOrNull() ?: 0, + hour.toIntOrNull() ?: 0, + minute.toIntOrNull() ?: 0, + second.toIntOrNull() ?: 0, + ) + return (cal.timeInMillis / 1000).toString() + } + + fun convertUnixToDate(unix: String): String { + var date = "" + val cal2 = Calendar.getInstance() + cal2.clear() + cal2.isLenient = true + + // This lets us bypass calendars limits (it uses Int, we want BigDecimal) + try { + val unixBg = BigDecimal(unix.ifEmpty { "0" }) + val division = unixBg.divideAndRemainder(BigDecimal(Int.MAX_VALUE)) + val intTimes = division.component1() + val rem = division.component2() + repeat(intTimes.intValueExact()) { + cal2.add(Calendar.SECOND, Int.MAX_VALUE) + } + cal2.add(Calendar.SECOND, rem.intValueExact()) + } catch (e: NumberFormatException) { + return "" + } + date += cal2.get(Calendar.HOUR_OF_DAY).toString().padStart(2, '0') + date += cal2.get(Calendar.MINUTE).toString().padStart(2, '0') + date += cal2.get(Calendar.SECOND).toString().padStart(2, '0') + date += cal2.get(Calendar.DAY_OF_MONTH).toString().padStart(2, '0') + date += (cal2.get(Calendar.MONTH) + 1).toString().padStart(2, '0') + // Year is 4 symbols long + date += cal2.get(Calendar.YEAR).toString().padStart(4, '0') + return date + } +} \ No newline at end of file diff --git a/data/licenses/.gitignore b/data/licenses/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/data/licenses/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/data/licenses/build.gradle.kts b/data/licenses/build.gradle.kts new file mode 100644 index 00000000..23709fac --- /dev/null +++ b/data/licenses/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Unitto is a unit converter for Android + * Copyright (c) 2023 Elshan Agaev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +plugins { + id("unitto.library") + id("unitto.android.hilt") +} + +android { + namespace = "com.sadellie.unitto.data.licenses" +} diff --git a/data/licenses/consumer-rules.pro b/data/licenses/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/data/licenses/src/main/AndroidManifest.xml b/data/licenses/src/main/AndroidManifest.xml new file mode 100644 index 00000000..7bdbce91 --- /dev/null +++ b/data/licenses/src/main/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/data/src/main/java/com/sadellie/unitto/data/Library.kt b/data/licenses/src/main/java/com/sadellie/unitto/data/licenses/Library.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/Library.kt rename to data/licenses/src/main/java/com/sadellie/unitto/data/licenses/Library.kt index 17fb9a95..188759fe 100644 --- a/data/src/main/java/com/sadellie/unitto/data/Library.kt +++ b/data/licenses/src/main/java/com/sadellie/unitto/data/licenses/Library.kt @@ -1,6 +1,6 @@ /* * Unitto is a unit converter for Android - * Copyright (c) 2022-2022 Elshan Agaev + * Copyright (c) 2022-2023 Elshan Agaev * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data +package com.sadellie.unitto.data.licenses data class AppLibrary( val name: String, diff --git a/data/unitgroups/.gitignore b/data/unitgroups/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/data/unitgroups/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/data/unitgroups/build.gradle.kts b/data/unitgroups/build.gradle.kts new file mode 100644 index 00000000..7e6ac72c --- /dev/null +++ b/data/unitgroups/build.gradle.kts @@ -0,0 +1,33 @@ +/* + * Unitto is a unit converter for Android + * Copyright (c) 2023 Elshan Agaev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +plugins { + id("unitto.library") + id("unitto.android.hilt") +} + +android { + namespace = "com.sadellie.unitto.data.unitgroups" +} + +dependencies { + testImplementation(libs.junit) + implementation(libs.org.burnoutcrew.composereorderable) + + implementation(project(mapOf("path" to ":core:base"))) +} diff --git a/data/unitgroups/consumer-rules.pro b/data/unitgroups/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/data/unitgroups/src/main/AndroidManifest.xml b/data/unitgroups/src/main/AndroidManifest.xml new file mode 100644 index 00000000..7bdbce91 --- /dev/null +++ b/data/unitgroups/src/main/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/data/src/main/java/com/sadellie/unitto/data/units/UnitGroup.kt b/data/unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups/UnitGroup.kt similarity index 95% rename from data/src/main/java/com/sadellie/unitto/data/units/UnitGroup.kt rename to data/unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups/UnitGroup.kt index 2ab0b8cc..8dc4c911 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/UnitGroup.kt +++ b/data/unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups/UnitGroup.kt @@ -16,10 +16,9 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data.units +package com.sadellie.unitto.data.unitgroups import androidx.annotation.StringRes -import com.sadellie.unitto.data.R val ALL_UNIT_GROUPS: List by lazy { UnitGroup.values().toList() diff --git a/data/src/main/java/com/sadellie/unitto/data/units/UnitGroupsRepository.kt b/data/unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups/UnitGroupsRepository.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/units/UnitGroupsRepository.kt rename to data/unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups/UnitGroupsRepository.kt index d9d4e536..c6caf9cb 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/UnitGroupsRepository.kt +++ b/data/unitgroups/src/main/java/com/sadellie/unitto/data/unitgroups/UnitGroupsRepository.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data.units +package com.sadellie.unitto.data.unitgroups import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.sync.Mutex diff --git a/data/units/.gitignore b/data/units/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/data/units/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/data/build.gradle.kts b/data/units/build.gradle.kts similarity index 92% rename from data/build.gradle.kts rename to data/units/build.gradle.kts index 0ccaba1b..462466c8 100644 --- a/data/build.gradle.kts +++ b/data/units/build.gradle.kts @@ -22,7 +22,7 @@ plugins { } android { - namespace = "com.sadellie.unitto.data" + namespace = "com.sadellie.unitto.data.units" } dependencies { @@ -40,5 +40,6 @@ dependencies { implementation(libs.org.burnoutcrew.composereorderable) implementation(libs.com.github.sadellie.themmo) + implementation(project(mapOf("path" to ":data:unitgroups"))) implementation(project(mapOf("path" to ":core:base"))) } diff --git a/data/consumer-rules.pro b/data/units/consumer-rules.pro similarity index 100% rename from data/consumer-rules.pro rename to data/units/consumer-rules.pro diff --git a/data/units/src/main/AndroidManifest.xml b/data/units/src/main/AndroidManifest.xml new file mode 100644 index 00000000..7bdbce91 --- /dev/null +++ b/data/units/src/main/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/data/src/main/java/com/sadellie/unitto/data/units/AbstractUnit.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/AbstractUnit.kt similarity index 99% rename from data/src/main/java/com/sadellie/unitto/data/units/AbstractUnit.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/AbstractUnit.kt index 216819d1..32853e5f 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/AbstractUnit.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/AbstractUnit.kt @@ -20,6 +20,7 @@ package com.sadellie.unitto.data.units import androidx.annotation.StringRes import com.sadellie.unitto.data.lev +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal /** diff --git a/data/src/main/java/com/sadellie/unitto/data/units/AllUnitsRepository.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/AllUnitsRepository.kt similarity index 99% rename from data/src/main/java/com/sadellie/unitto/data/units/AllUnitsRepository.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/AllUnitsRepository.kt index ced9f7c7..6177f232 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/AllUnitsRepository.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/AllUnitsRepository.kt @@ -20,6 +20,7 @@ package com.sadellie.unitto.data.units import android.content.Context import com.sadellie.unitto.core.base.MAX_PRECISION +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.data.units.collections.accelerationCollection import com.sadellie.unitto.data.units.collections.angleCollection import com.sadellie.unitto.data.units.collections.areaCollection diff --git a/data/src/main/java/com/sadellie/unitto/data/BigDecimalUtils.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/BigDecimalUtils.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/BigDecimalUtils.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/BigDecimalUtils.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/FlowUtils.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/FlowUtils.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/FlowUtils.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/FlowUtils.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/MyUnit.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/MyUnit.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/units/MyUnit.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/MyUnit.kt index e0f47433..6fee94f7 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/MyUnit.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/MyUnit.kt @@ -22,6 +22,7 @@ import androidx.annotation.StringRes import com.sadellie.unitto.core.base.MAX_PRECISION import com.sadellie.unitto.data.setMinimumRequiredScale import com.sadellie.unitto.data.trimZeros +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal /** diff --git a/data/src/main/java/com/sadellie/unitto/data/units/MyUnitIDS.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/MyUnitIDS.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/MyUnitIDS.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/MyUnitIDS.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/NumberBaseUnit.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/NumberBaseUnit.kt similarity index 96% rename from data/src/main/java/com/sadellie/unitto/data/units/NumberBaseUnit.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/NumberBaseUnit.kt index 58e718c7..b1aae8c3 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/NumberBaseUnit.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/NumberBaseUnit.kt @@ -19,6 +19,7 @@ package com.sadellie.unitto.data.units import androidx.annotation.StringRes +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal class NumberBaseUnit( diff --git a/data/src/main/java/com/sadellie/unitto/data/StringUtils.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/StringUtils.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/StringUtils.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/StringUtils.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Acceleration.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Acceleration.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Acceleration.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Acceleration.kt index bc02b231..9c549b35 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Acceleration.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Acceleration.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.units.R +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val accelerationCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Angle.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Angle.kt similarity index 95% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Angle.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Angle.kt index 3a85d7ce..3cc5de8c 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Angle.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Angle.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val angleCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Area.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Area.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Area.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Area.kt index 75a1e44c..e831ebdb 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Area.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Area.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val areaCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Currency.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Currency.kt similarity index 99% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Currency.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Currency.kt index 0cee7ec7..eb6f8fa5 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Currency.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Currency.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val currencyCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Data.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Data.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Data.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Data.kt index be06fae9..b3f45448 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Data.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Data.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val dataCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/DataTransfer.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/DataTransfer.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/DataTransfer.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/DataTransfer.kt index 97e1de90..a98b3ff3 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/DataTransfer.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/DataTransfer.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val dataTransferCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Energy.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Energy.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Energy.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Energy.kt index e6ebcc6e..92609b00 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Energy.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Energy.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val energyCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Flux.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Flux.kt similarity index 95% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Flux.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Flux.kt index 16aa5004..db5b2906 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Flux.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Flux.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val fluxCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Length.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Length.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Length.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Length.kt index 93d92f06..fdc99991 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Length.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Length.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val lengthCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Mass.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Mass.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Mass.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Mass.kt index cc810da0..cf2a8e53 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Mass.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Mass.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val massCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/NumberBase.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/NumberBase.kt similarity index 96% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/NumberBase.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/NumberBase.kt index be7d19c7..18722c6c 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/NumberBase.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/NumberBase.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnitIDS import com.sadellie.unitto.data.units.NumberBaseUnit -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup internal val numberBaseCollection: List by lazy { listOf( diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Power.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Power.kt similarity index 95% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Power.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Power.kt index 204cee0b..1159cd8a 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Power.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Power.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val powerCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Pressure.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Pressure.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Pressure.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Pressure.kt index f6baf009..170deb59 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Pressure.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Pressure.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val pressureCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Speed.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Speed.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Speed.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Speed.kt index 51944520..b1cf832d 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Speed.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Speed.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val speedCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Temperature.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Temperature.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Temperature.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Temperature.kt index 402536db..26b2cde5 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Temperature.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Temperature.kt @@ -19,12 +19,12 @@ package com.sadellie.unitto.data.units.collections import com.sadellie.unitto.core.base.MAX_PRECISION -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.setMinimumRequiredScale import com.sadellie.unitto.data.trimZeros import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal import java.math.RoundingMode diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Time.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Time.kt similarity index 96% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Time.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Time.kt index 1b09879f..b4bcb9f3 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Time.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Time.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val timeCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/collections/Volume.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Volume.kt similarity index 98% rename from data/src/main/java/com/sadellie/unitto/data/units/collections/Volume.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/collections/Volume.kt index 5dbcd212..b6bacc01 100644 --- a/data/src/main/java/com/sadellie/unitto/data/units/collections/Volume.kt +++ b/data/units/src/main/java/com/sadellie/unitto/data/units/collections/Volume.kt @@ -18,11 +18,11 @@ package com.sadellie.unitto.data.units.collections -import com.sadellie.unitto.data.R +import com.sadellie.unitto.data.units.R import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import java.math.BigDecimal internal val volumeCollection: List by lazy { diff --git a/data/src/main/java/com/sadellie/unitto/data/units/database/BasedUnitDatabaseModule.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/database/BasedUnitDatabaseModule.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/database/BasedUnitDatabaseModule.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/database/BasedUnitDatabaseModule.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnit.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnit.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnit.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnit.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDao.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDao.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDao.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDao.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDatabase.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDatabase.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDatabase.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitDatabase.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitsRepository.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitsRepository.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitsRepository.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/database/MyBasedUnitsRepository.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyApiService.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyApiService.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyApiService.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyApiService.kt diff --git a/data/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyUnitResponse.kt b/data/units/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyUnitResponse.kt similarity index 100% rename from data/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyUnitResponse.kt rename to data/units/src/main/java/com/sadellie/unitto/data/units/remote/CurrencyUnitResponse.kt diff --git a/data/src/test/java/com/sadellie/unitto/data/units/AllUnitsRepositoryTest.kt b/data/units/src/test/java/com/sadellie/unitto/data/units/AllUnitsRepositoryTest.kt similarity index 97% rename from data/src/test/java/com/sadellie/unitto/data/units/AllUnitsRepositoryTest.kt rename to data/units/src/test/java/com/sadellie/unitto/data/units/AllUnitsRepositoryTest.kt index 9406689f..07798380 100644 --- a/data/src/test/java/com/sadellie/unitto/data/units/AllUnitsRepositoryTest.kt +++ b/data/units/src/test/java/com/sadellie/unitto/data/units/AllUnitsRepositoryTest.kt @@ -18,6 +18,8 @@ package com.sadellie.unitto.data.units +import com.sadellie.unitto.data.unitgroups.ALL_UNIT_GROUPS +import com.sadellie.unitto.data.unitgroups.UnitGroup import org.junit.Assert.assertEquals import org.junit.Test diff --git a/data/src/test/java/com/sadellie/unitto/data/units/AllUnitsTest.kt b/data/units/src/test/java/com/sadellie/unitto/data/units/AllUnitsTest.kt similarity index 99% rename from data/src/test/java/com/sadellie/unitto/data/units/AllUnitsTest.kt rename to data/units/src/test/java/com/sadellie/unitto/data/units/AllUnitsTest.kt index 660f5ee1..c5e8a6d5 100644 --- a/data/src/test/java/com/sadellie/unitto/data/units/AllUnitsTest.kt +++ b/data/units/src/test/java/com/sadellie/unitto/data/units/AllUnitsTest.kt @@ -19,6 +19,7 @@ package com.sadellie.unitto.data.units +import com.sadellie.unitto.data.unitgroups.UnitGroup import org.junit.After import org.junit.Assert.assertEquals import org.junit.Test diff --git a/data/src/test/java/com/sadellie/unitto/data/LevenshteinFilterAndSortTest.kt b/data/units/src/test/java/com/sadellie/unitto/data/units/LevenshteinFilterAndSortTest.kt similarity index 92% rename from data/src/test/java/com/sadellie/unitto/data/LevenshteinFilterAndSortTest.kt rename to data/units/src/test/java/com/sadellie/unitto/data/units/LevenshteinFilterAndSortTest.kt index 12ad415d..7a4d3444 100644 --- a/data/src/test/java/com/sadellie/unitto/data/LevenshteinFilterAndSortTest.kt +++ b/data/units/src/test/java/com/sadellie/unitto/data/units/LevenshteinFilterAndSortTest.kt @@ -16,12 +16,9 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data +package com.sadellie.unitto.data.units -import com.sadellie.unitto.data.units.AbstractUnit -import com.sadellie.unitto.data.units.MyUnit -import com.sadellie.unitto.data.units.UnitGroup -import com.sadellie.unitto.data.units.sortByLev +import com.sadellie.unitto.data.unitgroups.UnitGroup import org.junit.Assert.assertEquals import org.junit.Test import java.math.BigDecimal diff --git a/data/src/test/java/com/sadellie/unitto/data/LevenshteinTest.kt b/data/units/src/test/java/com/sadellie/unitto/data/units/LevenshteinTest.kt similarity index 95% rename from data/src/test/java/com/sadellie/unitto/data/LevenshteinTest.kt rename to data/units/src/test/java/com/sadellie/unitto/data/units/LevenshteinTest.kt index 5ad2a3d1..1187e70b 100644 --- a/data/src/test/java/com/sadellie/unitto/data/LevenshteinTest.kt +++ b/data/units/src/test/java/com/sadellie/unitto/data/units/LevenshteinTest.kt @@ -16,8 +16,9 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data +package com.sadellie.unitto.data.units +import com.sadellie.unitto.data.lev import org.junit.Assert.assertEquals import org.junit.Test diff --git a/data/src/test/java/com/sadellie/unitto/data/MinimumRequiredScaleTest.kt b/data/units/src/test/java/com/sadellie/unitto/data/units/MinimumRequiredScaleTest.kt similarity index 94% rename from data/src/test/java/com/sadellie/unitto/data/MinimumRequiredScaleTest.kt rename to data/units/src/test/java/com/sadellie/unitto/data/units/MinimumRequiredScaleTest.kt index 31137c79..cd4899d1 100644 --- a/data/src/test/java/com/sadellie/unitto/data/MinimumRequiredScaleTest.kt +++ b/data/units/src/test/java/com/sadellie/unitto/data/units/MinimumRequiredScaleTest.kt @@ -16,8 +16,9 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data +package com.sadellie.unitto.data.units +import com.sadellie.unitto.data.setMinimumRequiredScale import org.junit.Assert.assertEquals import org.junit.Test import java.math.BigDecimal diff --git a/data/userprefs/.gitignore b/data/userprefs/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/data/userprefs/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/data/userprefs/build.gradle.kts b/data/userprefs/build.gradle.kts new file mode 100644 index 00000000..f6cc1b0f --- /dev/null +++ b/data/userprefs/build.gradle.kts @@ -0,0 +1,35 @@ +/* + * Unitto is a unit converter for Android + * Copyright (c) 2023 Elshan Agaev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +plugins { + id("unitto.library") + id("unitto.android.hilt") +} + +android { + namespace = "com.sadellie.unitto.data.userprefs" +} + +dependencies { + implementation(libs.androidx.datastore) + implementation(libs.com.github.sadellie.themmo) + + implementation(project(mapOf("path" to ":data:units"))) + implementation(project(mapOf("path" to ":data:unitgroups"))) + implementation(project(mapOf("path" to ":core:base"))) +} diff --git a/data/userprefs/consumer-rules.pro b/data/userprefs/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/data/userprefs/src/main/AndroidManifest.xml b/data/userprefs/src/main/AndroidManifest.xml new file mode 100644 index 00000000..7bdbce91 --- /dev/null +++ b/data/userprefs/src/main/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/data/src/main/java/com/sadellie/unitto/data/preferences/DataStoreModule.kt b/data/userprefs/src/main/java/com/sadellie/unitto/data/userprefs/DataStoreModule.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/preferences/DataStoreModule.kt rename to data/userprefs/src/main/java/com/sadellie/unitto/data/userprefs/DataStoreModule.kt index f7c27a6d..2740a70e 100644 --- a/data/src/main/java/com/sadellie/unitto/data/preferences/DataStoreModule.kt +++ b/data/userprefs/src/main/java/com/sadellie/unitto/data/userprefs/DataStoreModule.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data.preferences +package com.sadellie.unitto.data.userprefs import android.content.Context import androidx.datastore.core.DataStore diff --git a/data/src/main/java/com/sadellie/unitto/data/preferences/UserPreferences.kt b/data/userprefs/src/main/java/com/sadellie/unitto/data/userprefs/UserPreferences.kt similarity index 97% rename from data/src/main/java/com/sadellie/unitto/data/preferences/UserPreferences.kt rename to data/userprefs/src/main/java/com/sadellie/unitto/data/userprefs/UserPreferences.kt index b7705176..5f2e3a93 100644 --- a/data/src/main/java/com/sadellie/unitto/data/preferences/UserPreferences.kt +++ b/data/userprefs/src/main/java/com/sadellie/unitto/data/userprefs/UserPreferences.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package com.sadellie.unitto.data.preferences +package com.sadellie.unitto.data.userprefs import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences @@ -27,15 +27,15 @@ import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey import com.sadellie.unitto.core.base.OutputFormat import com.sadellie.unitto.core.base.Separator -import com.sadellie.unitto.data.units.ALL_UNIT_GROUPS +import com.sadellie.unitto.data.unitgroups.ALL_UNIT_GROUPS +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.MyUnitIDS -import com.sadellie.unitto.data.units.UnitGroup import io.github.sadellie.themmo.ThemingMode import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.map -import okio.IOException +import java.io.IOException import javax.inject.Inject /** @@ -69,8 +69,7 @@ data class UserPreferences( /** * Repository that works with DataStore */ -class -UserPreferencesRepository @Inject constructor(private val dataStore: DataStore) { +class UserPreferencesRepository @Inject constructor(private val dataStore: DataStore) { /** * Keys for DataStore */ diff --git a/feature/converter/build.gradle.kts b/feature/converter/build.gradle.kts index d852f7a1..8b9de5c5 100644 --- a/feature/converter/build.gradle.kts +++ b/feature/converter/build.gradle.kts @@ -40,4 +40,8 @@ dependencies { implementation(libs.com.github.sadellie.themmo) implementation(libs.com.squareup.moshi) implementation(libs.com.squareup.retrofit2) + + implementation(project(mapOf("path" to ":data:userprefs"))) + implementation(project(mapOf("path" to ":data:unitgroups"))) + implementation(project(mapOf("path" to ":data:units"))) } diff --git a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/MainViewModel.kt b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/MainViewModel.kt index 98344903..36bb405a 100644 --- a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/MainViewModel.kt +++ b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/MainViewModel.kt @@ -44,16 +44,14 @@ import com.sadellie.unitto.core.base.KEY_RIGHT_BRACKET import com.sadellie.unitto.core.base.KEY_SQRT import com.sadellie.unitto.core.base.OPERATORS import com.sadellie.unitto.data.combine -import com.sadellie.unitto.data.preferences.UserPreferences -import com.sadellie.unitto.data.preferences.UserPreferencesRepository import com.sadellie.unitto.data.setMinimumRequiredScale import com.sadellie.unitto.data.toStringWith import com.sadellie.unitto.data.trimZeros +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.AllUnitsRepository import com.sadellie.unitto.data.units.MyUnitIDS import com.sadellie.unitto.data.units.NumberBaseUnit -import com.sadellie.unitto.data.units.UnitGroup import com.sadellie.unitto.data.units.database.MyBasedUnit import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository import com.sadellie.unitto.data.units.remote.CurrencyApi @@ -79,7 +77,7 @@ import javax.inject.Inject @HiltViewModel class MainViewModel @Inject constructor( - private val userPrefsRepository: UserPreferencesRepository, + private val userPrefsRepository: com.sadellie.unitto.data.userprefs.UserPreferencesRepository, private val basedUnitRepository: MyBasedUnitsRepository, private val allUnitsRepository: AllUnitsRepository ) : ViewModel() { @@ -87,7 +85,7 @@ class MainViewModel @Inject constructor( val userPrefs = userPrefsRepository.userPreferencesFlow.stateIn( viewModelScope, SharingStarted.WhileSubscribed(5000), - UserPreferences() + com.sadellie.unitto.data.userprefs.UserPreferences() ) /** diff --git a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/TopScreen.kt b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/TopScreen.kt index fae0d311..17aa1a01 100644 --- a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/TopScreen.kt +++ b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/components/TopScreen.kt @@ -43,7 +43,7 @@ import androidx.compose.ui.unit.dp import com.sadellie.unitto.core.ui.Formatter import com.sadellie.unitto.core.ui.R import com.sadellie.unitto.data.units.AbstractUnit -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.feature.converter.ConverterMode /** diff --git a/feature/converter/src/test/java/com/sadellie/unitto/feature/converter/MainViewModelTest.kt b/feature/converter/src/test/java/com/sadellie/unitto/feature/converter/MainViewModelTest.kt index bc6cd469..4020e2a7 100644 --- a/feature/converter/src/test/java/com/sadellie/unitto/feature/converter/MainViewModelTest.kt +++ b/feature/converter/src/test/java/com/sadellie/unitto/feature/converter/MainViewModelTest.kt @@ -39,11 +39,11 @@ import com.sadellie.unitto.core.base.KEY_MULTIPLY import com.sadellie.unitto.core.base.KEY_PLUS import com.sadellie.unitto.core.base.KEY_RIGHT_BRACKET import com.sadellie.unitto.core.base.KEY_SQRT -import com.sadellie.unitto.data.preferences.DataStoreModule -import com.sadellie.unitto.data.preferences.UserPreferencesRepository import com.sadellie.unitto.data.units.AllUnitsRepository import com.sadellie.unitto.data.units.database.MyBasedUnitDatabase import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository +import com.sadellie.unitto.data.userprefs.DataStoreModule +import com.sadellie.unitto.data.userprefs.UserPreferencesRepository import junit.framework.TestCase.assertEquals import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.collect @@ -79,9 +79,10 @@ class MainViewModelTest { fun setUp() { viewModel = MainViewModel( userPrefsRepository = UserPreferencesRepository( - DataStoreModule().provideUserPreferencesDataStore( - RuntimeEnvironment.getApplication() - ) + DataStoreModule() + .provideUserPreferencesDataStore( + RuntimeEnvironment.getApplication() + ) ), basedUnitRepository = MyBasedUnitsRepository( database.myBasedUnitDao() diff --git a/feature/epoch/build.gradle.kts b/feature/epoch/build.gradle.kts index 3a07fd1f..97b943f0 100644 --- a/feature/epoch/build.gradle.kts +++ b/feature/epoch/build.gradle.kts @@ -26,3 +26,7 @@ plugins { android { namespace = "com.sadellie.unitto.feature.epoch" } + +dependencies { + implementation(project(mapOf("path" to ":data:epoch"))) +} \ No newline at end of file diff --git a/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/EpochViewModel.kt b/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/EpochViewModel.kt index 4f010d16..48a15248 100644 --- a/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/EpochViewModel.kt +++ b/feature/epoch/src/main/java/com/sadellie/unitto/feature/epoch/EpochViewModel.kt @@ -20,6 +20,7 @@ package com.sadellie.unitto.feature.epoch import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.sadellie.unitto.data.epoch.EpochDateConverter import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted @@ -27,8 +28,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.update -import java.math.BigDecimal -import java.util.* import javax.inject.Inject data class EpochUIState( @@ -49,13 +48,13 @@ class EpochViewModel @Inject constructor() : ViewModel() { if (fromDateToUnix) { EpochUIState( dateField = input, - unixField = convertDateToUnix(input), + unixField = EpochDateConverter.convertDateToUnix(input), dateToUnix = fromDateToUnix ) } else { EpochUIState( unixField = input, - dateField = convertUnixToDate(input), + dateField = EpochDateConverter.convertUnixToDate(input), dateToUnix = fromDateToUnix ) } @@ -76,57 +75,4 @@ class EpochViewModel @Inject constructor() : ViewModel() { clearSymbols() !it } - - private fun convertDateToUnix(date: String): String { - // Here we add some zeros, so that input is 14 symbols long - val inputWithPadding = date.padEnd(14, '0') - - // Now we break input that is 14 symbols into pieces - val hour = inputWithPadding.substring(0, 2) - val minute = inputWithPadding.substring(2, 4) - val second = inputWithPadding.substring(4, 6) - val day = inputWithPadding.substring(6, 8) - val month = inputWithPadding.substring(8, 10) - val year = inputWithPadding.substring(10, 14) - - val cal = Calendar.getInstance() - cal.set( - year.toIntOrNull() ?: 1970, - (month.toIntOrNull() ?: 1) - 1, - day.toIntOrNull() ?: 0, - hour.toIntOrNull() ?: 0, - minute.toIntOrNull() ?: 0, - second.toIntOrNull() ?: 0, - ) - return (cal.timeInMillis / 1000).toString() - } - - private fun convertUnixToDate(unix: String): String { - var date = "" - val cal2 = Calendar.getInstance() - cal2.clear() - cal2.isLenient = true - - // This lets us bypass calendars limits (it uses Int, we want BigDecimal) - try { - val unixBg = BigDecimal(unix) - val division = unixBg.divideAndRemainder(BigDecimal(Int.MAX_VALUE)) - val intTimes = division.component1() - val rem = division.component2() - repeat(intTimes.intValueExact()) { - cal2.add(Calendar.SECOND, Int.MAX_VALUE) - } - cal2.add(Calendar.SECOND, rem.intValueExact()) - } catch (e: NumberFormatException) { - return "" - } - date += cal2.get(Calendar.HOUR_OF_DAY).toString().padStart(2, '0') - date += cal2.get(Calendar.MINUTE).toString().padStart(2, '0') - date += cal2.get(Calendar.SECOND).toString().padStart(2, '0') - date += cal2.get(Calendar.DAY_OF_MONTH).toString().padStart(2, '0') - date += (cal2.get(Calendar.MONTH) + 1).toString().padStart(2, '0') - // Year is 4 symbols long - date += cal2.get(Calendar.YEAR).toString().padStart(4, '0') - return date - } } diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts index 91ba5d6a..4f314b17 100644 --- a/feature/settings/build.gradle.kts +++ b/feature/settings/build.gradle.kts @@ -30,4 +30,8 @@ android { dependencies { implementation(libs.com.github.sadellie.themmo) implementation(libs.org.burnoutcrew.composereorderable) + + implementation(project(mapOf("path" to ":data:userprefs"))) + implementation(project(mapOf("path" to ":data:licenses"))) + implementation(project(mapOf("path" to ":data:unitgroups"))) } diff --git a/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/SettingsViewModel.kt b/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/SettingsViewModel.kt index 38ba5f40..7454d637 100644 --- a/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/SettingsViewModel.kt +++ b/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/SettingsViewModel.kt @@ -21,10 +21,9 @@ package com.sadellie.unitto.feature.settings import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.sadellie.unitto.core.ui.Formatter -import com.sadellie.unitto.data.preferences.UserPreferences -import com.sadellie.unitto.data.preferences.UserPreferencesRepository -import com.sadellie.unitto.data.units.UnitGroup -import com.sadellie.unitto.data.units.UnitGroupsRepository +import com.sadellie.unitto.data.unitgroups.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroupsRepository +import com.sadellie.unitto.data.userprefs.UserPreferencesRepository import dagger.hilt.android.lifecycle.HiltViewModel import io.github.sadellie.themmo.ThemingMode import kotlinx.coroutines.flow.SharingStarted @@ -42,7 +41,9 @@ class SettingsViewModel @Inject constructor( ) : ViewModel() { var userPrefs = userPrefsRepository.userPreferencesFlow .onEach { Formatter.setSeparator(it.separator) } - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), UserPreferences()) + .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), + com.sadellie.unitto.data.userprefs.UserPreferences() + ) val shownUnitGroups = unitGroupsRepository.shownUnitGroups val hiddenUnitGroups = unitGroupsRepository.hiddenUnitGroups diff --git a/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/ThirdPartyLicensesScreen.kt b/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/ThirdPartyLicensesScreen.kt index aa8f6da5..5dd1cfb8 100644 --- a/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/ThirdPartyLicensesScreen.kt +++ b/feature/settings/src/main/java/com/sadellie/unitto/feature/settings/ThirdPartyLicensesScreen.kt @@ -36,10 +36,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import com.sadellie.unitto.core.ui.R import com.sadellie.unitto.core.ui.common.UnittoLargeTopAppBar import com.sadellie.unitto.core.ui.openLink -import com.sadellie.unitto.data.ALL_LIBRARIES -import com.sadellie.unitto.core.ui.R +import com.sadellie.unitto.data.licenses.ALL_LIBRARIES /** * Screen with used third party libraries diff --git a/feature/unitslist/build.gradle.kts b/feature/unitslist/build.gradle.kts index 2deb02cd..614af3cf 100644 --- a/feature/unitslist/build.gradle.kts +++ b/feature/unitslist/build.gradle.kts @@ -26,3 +26,8 @@ plugins { android { namespace = "com.sadellie.unitto.feature.unitslist" } + +dependencies { + implementation(project(mapOf("path" to ":data:units"))) + implementation(project(mapOf("path" to ":data:unitgroups"))) +} \ No newline at end of file diff --git a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt index d91418c1..4135b907 100644 --- a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt +++ b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/RightSideScreen.kt @@ -33,9 +33,9 @@ import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.res.stringResource import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.sadellie.unitto.core.ui.Formatter +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.NumberBaseUnit -import com.sadellie.unitto.data.units.UnitGroup import com.sadellie.unitto.feature.unitslist.components.SearchBar import com.sadellie.unitto.feature.unitslist.components.SearchPlaceholder import com.sadellie.unitto.feature.unitslist.components.UnitGroupHeader diff --git a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondScreenUIState.kt b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondScreenUIState.kt index 1d19543f..2507c84d 100644 --- a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondScreenUIState.kt +++ b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondScreenUIState.kt @@ -18,8 +18,8 @@ package com.sadellie.unitto.feature.unitslist +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.data.units.AbstractUnit -import com.sadellie.unitto.data.units.UnitGroup /** * Second (unit list) screen UI state. diff --git a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondViewModel.kt b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondViewModel.kt index 09f12dfc..c378752f 100644 --- a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondViewModel.kt +++ b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/SecondViewModel.kt @@ -21,10 +21,9 @@ package com.sadellie.unitto.feature.unitslist import android.app.Application import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.data.units.AbstractUnit import com.sadellie.unitto.data.units.AllUnitsRepository -import com.sadellie.unitto.data.units.UnitGroup -import com.sadellie.unitto.data.units.UnitGroupsRepository import com.sadellie.unitto.data.units.database.MyBasedUnit import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository import dagger.hilt.android.lifecycle.HiltViewModel @@ -43,7 +42,7 @@ class SecondViewModel @Inject constructor( private val basedUnitRepository: MyBasedUnitsRepository, private val allUnitsRepository: AllUnitsRepository, private val mContext: Application, - unitGroupsRepository: UnitGroupsRepository, + unitGroupsRepository: com.sadellie.unitto.data.unitgroups.UnitGroupsRepository, ) : ViewModel() { private val _favoritesOnly = MutableStateFlow(false) diff --git a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/ChipsRow.kt b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/ChipsRow.kt index 23113845..0ede0865 100644 --- a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/ChipsRow.kt +++ b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/ChipsRow.kt @@ -46,8 +46,8 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.sadellie.unitto.data.units.ALL_UNIT_GROUPS -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.ALL_UNIT_GROUPS +import com.sadellie.unitto.data.unitgroups.UnitGroup import com.sadellie.unitto.feature.unitslist.R /** diff --git a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/UnitGroupHeader.kt b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/UnitGroupHeader.kt index 09c28f4e..7914e201 100644 --- a/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/UnitGroupHeader.kt +++ b/feature/unitslist/src/main/java/com/sadellie/unitto/feature/unitslist/components/UnitGroupHeader.kt @@ -24,7 +24,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.sadellie.unitto.core.ui.common.Header -import com.sadellie.unitto.data.units.UnitGroup +import com.sadellie.unitto.data.unitgroups.UnitGroup @Composable internal fun UnitGroupHeader(modifier: Modifier, unitGroup: UnitGroup) { diff --git a/settings.gradle.kts b/settings.gradle.kts index 54780195..5b05d959 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,7 +17,7 @@ dependencyResolutionManagement { } rootProject.name = "Unitto" include(":app") -include(":data") +include(":data:units") include(":core:base") include(":core:ui") include(":feature:converter") @@ -25,3 +25,7 @@ include(":feature:unitslist") include(":feature:settings") include(":feature:tools") include(":feature:epoch") +include(":data:userprefs") +include(":data:unitgroups") +include(":data:licenses") +include(":data:epoch")