mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-19 08:45:27 +02:00
Data module refactor
This commit is contained in:
parent
59de376f61
commit
1620444123
@ -112,7 +112,7 @@ dependencies {
|
|||||||
implementation(project(mapOf("path" to ":feature:unitslist")))
|
implementation(project(mapOf("path" to ":feature:unitslist")))
|
||||||
implementation(project(mapOf("path" to ":feature:tools")))
|
implementation(project(mapOf("path" to ":feature:tools")))
|
||||||
implementation(project(mapOf("path" to ":feature:epoch")))
|
implementation(project(mapOf("path" to ":feature:epoch")))
|
||||||
implementation(project(mapOf("path" to ":data")))
|
implementation(project(mapOf("path" to ":data:units")))
|
||||||
implementation(project(mapOf("path" to ":core:base")))
|
implementation(project(mapOf("path" to ":data:userprefs")))
|
||||||
implementation(project(mapOf("path" to ":core:ui")))
|
implementation(project(mapOf("path" to ":core:ui")))
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ class UnittoLibraryFeaturePlugin : Plugin<Project> {
|
|||||||
dependencies {
|
dependencies {
|
||||||
"implementation"(libs.findLibrary("androidx.navigation").get())
|
"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:base")))
|
||||||
"implementation"(project(mapOf("path" to ":core:ui")))
|
"implementation"(project(mapOf("path" to ":core:ui")))
|
||||||
}
|
}
|
||||||
|
0
data/.gitignore → data/epoch/.gitignore
vendored
0
data/.gitignore → data/epoch/.gitignore
vendored
26
data/epoch/build.gradle.kts
Normal file
26
data/epoch/build.gradle.kts
Normal file
@ -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 <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("unitto.library")
|
||||||
|
id("unitto.android.hilt")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.sadellie.unitto.data.epoch"
|
||||||
|
}
|
0
data/epoch/consumer-rules.pro
Normal file
0
data/epoch/consumer-rules.pro
Normal file
21
data/epoch/proguard-rules.pro
vendored
Normal file
21
data/epoch/proguard-rules.pro
vendored
Normal file
@ -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
|
@ -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 <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
1
data/licenses/.gitignore
vendored
Normal file
1
data/licenses/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/build
|
26
data/licenses/build.gradle.kts
Normal file
26
data/licenses/build.gradle.kts
Normal file
@ -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 <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("unitto.library")
|
||||||
|
id("unitto.android.hilt")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.sadellie.unitto.data.licenses"
|
||||||
|
}
|
0
data/licenses/consumer-rules.pro
Normal file
0
data/licenses/consumer-rules.pro
Normal file
22
data/licenses/src/main/AndroidManifest.xml
Normal file
22
data/licenses/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<manifest>
|
||||||
|
|
||||||
|
</manifest>
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Unitto is a unit converter for Android
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -16,7 +16,7 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sadellie.unitto.data
|
package com.sadellie.unitto.data.licenses
|
||||||
|
|
||||||
data class AppLibrary(
|
data class AppLibrary(
|
||||||
val name: String,
|
val name: String,
|
1
data/unitgroups/.gitignore
vendored
Normal file
1
data/unitgroups/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/build
|
33
data/unitgroups/build.gradle.kts
Normal file
33
data/unitgroups/build.gradle.kts
Normal file
@ -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 <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
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")))
|
||||||
|
}
|
0
data/unitgroups/consumer-rules.pro
Normal file
0
data/unitgroups/consumer-rules.pro
Normal file
22
data/unitgroups/src/main/AndroidManifest.xml
Normal file
22
data/unitgroups/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<manifest>
|
||||||
|
|
||||||
|
</manifest>
|
@ -16,10 +16,9 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sadellie.unitto.data.units
|
package com.sadellie.unitto.data.unitgroups
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import com.sadellie.unitto.data.R
|
|
||||||
|
|
||||||
val ALL_UNIT_GROUPS: List<UnitGroup> by lazy {
|
val ALL_UNIT_GROUPS: List<UnitGroup> by lazy {
|
||||||
UnitGroup.values().toList()
|
UnitGroup.values().toList()
|
@ -16,7 +16,7 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sadellie.unitto.data.units
|
package com.sadellie.unitto.data.unitgroups
|
||||||
|
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.sync.Mutex
|
import kotlinx.coroutines.sync.Mutex
|
1
data/units/.gitignore
vendored
Normal file
1
data/units/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/build
|
@ -22,7 +22,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.sadellie.unitto.data"
|
namespace = "com.sadellie.unitto.data.units"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@ -40,5 +40,6 @@ dependencies {
|
|||||||
implementation(libs.org.burnoutcrew.composereorderable)
|
implementation(libs.org.burnoutcrew.composereorderable)
|
||||||
implementation(libs.com.github.sadellie.themmo)
|
implementation(libs.com.github.sadellie.themmo)
|
||||||
|
|
||||||
|
implementation(project(mapOf("path" to ":data:unitgroups")))
|
||||||
implementation(project(mapOf("path" to ":core:base")))
|
implementation(project(mapOf("path" to ":core:base")))
|
||||||
}
|
}
|
22
data/units/src/main/AndroidManifest.xml
Normal file
22
data/units/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<manifest>
|
||||||
|
|
||||||
|
</manifest>
|
@ -20,6 +20,7 @@ package com.sadellie.unitto.data.units
|
|||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import com.sadellie.unitto.data.lev
|
import com.sadellie.unitto.data.lev
|
||||||
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
|
||||||
/**
|
/**
|
@ -20,6 +20,7 @@ package com.sadellie.unitto.data.units
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.sadellie.unitto.core.base.MAX_PRECISION
|
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.accelerationCollection
|
||||||
import com.sadellie.unitto.data.units.collections.angleCollection
|
import com.sadellie.unitto.data.units.collections.angleCollection
|
||||||
import com.sadellie.unitto.data.units.collections.areaCollection
|
import com.sadellie.unitto.data.units.collections.areaCollection
|
@ -22,6 +22,7 @@ import androidx.annotation.StringRes
|
|||||||
import com.sadellie.unitto.core.base.MAX_PRECISION
|
import com.sadellie.unitto.core.base.MAX_PRECISION
|
||||||
import com.sadellie.unitto.data.setMinimumRequiredScale
|
import com.sadellie.unitto.data.setMinimumRequiredScale
|
||||||
import com.sadellie.unitto.data.trimZeros
|
import com.sadellie.unitto.data.trimZeros
|
||||||
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
|
||||||
/**
|
/**
|
@ -19,6 +19,7 @@
|
|||||||
package com.sadellie.unitto.data.units
|
package com.sadellie.unitto.data.units
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
|
||||||
class NumberBaseUnit(
|
class NumberBaseUnit(
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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
|
import java.math.BigDecimal
|
||||||
|
|
||||||
internal val accelerationCollection: List<AbstractUnit> by lazy {
|
internal val accelerationCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val angleCollection: List<AbstractUnit> by lazy {
|
internal val angleCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val areaCollection: List<AbstractUnit> by lazy {
|
internal val areaCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val currencyCollection: List<AbstractUnit> by lazy {
|
internal val currencyCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val dataCollection: List<AbstractUnit> by lazy {
|
internal val dataCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val dataTransferCollection: List<AbstractUnit> by lazy {
|
internal val dataTransferCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val energyCollection: List<AbstractUnit> by lazy {
|
internal val energyCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val fluxCollection: List<AbstractUnit> by lazy {
|
internal val fluxCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val lengthCollection: List<AbstractUnit> by lazy {
|
internal val lengthCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val massCollection: List<AbstractUnit> by lazy {
|
internal val massCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
import com.sadellie.unitto.data.units.MyUnitIDS
|
||||||
import com.sadellie.unitto.data.units.NumberBaseUnit
|
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<AbstractUnit> by lazy {
|
internal val numberBaseCollection: List<AbstractUnit> by lazy {
|
||||||
listOf(
|
listOf(
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val powerCollection: List<AbstractUnit> by lazy {
|
internal val powerCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val pressureCollection: List<AbstractUnit> by lazy {
|
internal val pressureCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val speedCollection: List<AbstractUnit> by lazy {
|
internal val speedCollection: List<AbstractUnit> by lazy {
|
@ -19,12 +19,12 @@
|
|||||||
package com.sadellie.unitto.data.units.collections
|
package com.sadellie.unitto.data.units.collections
|
||||||
|
|
||||||
import com.sadellie.unitto.core.base.MAX_PRECISION
|
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.setMinimumRequiredScale
|
||||||
import com.sadellie.unitto.data.trimZeros
|
import com.sadellie.unitto.data.trimZeros
|
||||||
import com.sadellie.unitto.data.units.AbstractUnit
|
import com.sadellie.unitto.data.units.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
import java.math.RoundingMode
|
import java.math.RoundingMode
|
||||||
|
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val timeCollection: List<AbstractUnit> by lazy {
|
internal val timeCollection: List<AbstractUnit> by lazy {
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units.collections
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
import com.sadellie.unitto.data.units.MyUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
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.BigDecimal
|
||||||
|
|
||||||
internal val volumeCollection: List<AbstractUnit> by lazy {
|
internal val volumeCollection: List<AbstractUnit> by lazy {
|
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.units
|
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.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -19,6 +19,7 @@
|
|||||||
package com.sadellie.unitto.data.units
|
package com.sadellie.unitto.data.units
|
||||||
|
|
||||||
|
|
||||||
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
@ -16,12 +16,9 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sadellie.unitto.data
|
package com.sadellie.unitto.data.units
|
||||||
|
|
||||||
import com.sadellie.unitto.data.units.AbstractUnit
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import com.sadellie.unitto.data.units.MyUnit
|
|
||||||
import com.sadellie.unitto.data.units.UnitGroup
|
|
||||||
import com.sadellie.unitto.data.units.sortByLev
|
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
@ -16,8 +16,9 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
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.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -16,8 +16,9 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
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.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
1
data/userprefs/.gitignore
vendored
Normal file
1
data/userprefs/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/build
|
35
data/userprefs/build.gradle.kts
Normal file
35
data/userprefs/build.gradle.kts
Normal file
@ -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 <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
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")))
|
||||||
|
}
|
0
data/userprefs/consumer-rules.pro
Normal file
0
data/userprefs/consumer-rules.pro
Normal file
22
data/userprefs/src/main/AndroidManifest.xml
Normal file
22
data/userprefs/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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 <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<manifest>
|
||||||
|
|
||||||
|
</manifest>
|
@ -16,7 +16,7 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sadellie.unitto.data.preferences
|
package com.sadellie.unitto.data.userprefs
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.datastore.core.DataStore
|
import androidx.datastore.core.DataStore
|
@ -16,7 +16,7 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sadellie.unitto.data.preferences
|
package com.sadellie.unitto.data.userprefs
|
||||||
|
|
||||||
import androidx.datastore.core.DataStore
|
import androidx.datastore.core.DataStore
|
||||||
import androidx.datastore.preferences.core.Preferences
|
import androidx.datastore.preferences.core.Preferences
|
||||||
@ -27,15 +27,15 @@ import androidx.datastore.preferences.core.intPreferencesKey
|
|||||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||||
import com.sadellie.unitto.core.base.OutputFormat
|
import com.sadellie.unitto.core.base.OutputFormat
|
||||||
import com.sadellie.unitto.core.base.Separator
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
import com.sadellie.unitto.data.units.MyUnitIDS
|
||||||
import com.sadellie.unitto.data.units.UnitGroup
|
|
||||||
import io.github.sadellie.themmo.ThemingMode
|
import io.github.sadellie.themmo.ThemingMode
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.catch
|
import kotlinx.coroutines.flow.catch
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import okio.IOException
|
import java.io.IOException
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,8 +69,7 @@ data class UserPreferences(
|
|||||||
/**
|
/**
|
||||||
* Repository that works with DataStore
|
* Repository that works with DataStore
|
||||||
*/
|
*/
|
||||||
class
|
class UserPreferencesRepository @Inject constructor(private val dataStore: DataStore<Preferences>) {
|
||||||
UserPreferencesRepository @Inject constructor(private val dataStore: DataStore<Preferences>) {
|
|
||||||
/**
|
/**
|
||||||
* Keys for DataStore
|
* Keys for DataStore
|
||||||
*/
|
*/
|
@ -40,4 +40,8 @@ dependencies {
|
|||||||
implementation(libs.com.github.sadellie.themmo)
|
implementation(libs.com.github.sadellie.themmo)
|
||||||
implementation(libs.com.squareup.moshi)
|
implementation(libs.com.squareup.moshi)
|
||||||
implementation(libs.com.squareup.retrofit2)
|
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")))
|
||||||
}
|
}
|
||||||
|
@ -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.KEY_SQRT
|
||||||
import com.sadellie.unitto.core.base.OPERATORS
|
import com.sadellie.unitto.core.base.OPERATORS
|
||||||
import com.sadellie.unitto.data.combine
|
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.setMinimumRequiredScale
|
||||||
import com.sadellie.unitto.data.toStringWith
|
import com.sadellie.unitto.data.toStringWith
|
||||||
import com.sadellie.unitto.data.trimZeros
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.AllUnitsRepository
|
import com.sadellie.unitto.data.units.AllUnitsRepository
|
||||||
import com.sadellie.unitto.data.units.MyUnitIDS
|
import com.sadellie.unitto.data.units.MyUnitIDS
|
||||||
import com.sadellie.unitto.data.units.NumberBaseUnit
|
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.MyBasedUnit
|
||||||
import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository
|
import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository
|
||||||
import com.sadellie.unitto.data.units.remote.CurrencyApi
|
import com.sadellie.unitto.data.units.remote.CurrencyApi
|
||||||
@ -79,7 +77,7 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class MainViewModel @Inject constructor(
|
class MainViewModel @Inject constructor(
|
||||||
private val userPrefsRepository: UserPreferencesRepository,
|
private val userPrefsRepository: com.sadellie.unitto.data.userprefs.UserPreferencesRepository,
|
||||||
private val basedUnitRepository: MyBasedUnitsRepository,
|
private val basedUnitRepository: MyBasedUnitsRepository,
|
||||||
private val allUnitsRepository: AllUnitsRepository
|
private val allUnitsRepository: AllUnitsRepository
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
@ -87,7 +85,7 @@ class MainViewModel @Inject constructor(
|
|||||||
val userPrefs = userPrefsRepository.userPreferencesFlow.stateIn(
|
val userPrefs = userPrefsRepository.userPreferencesFlow.stateIn(
|
||||||
viewModelScope,
|
viewModelScope,
|
||||||
SharingStarted.WhileSubscribed(5000),
|
SharingStarted.WhileSubscribed(5000),
|
||||||
UserPreferences()
|
com.sadellie.unitto.data.userprefs.UserPreferences()
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -43,7 +43,7 @@ import androidx.compose.ui.unit.dp
|
|||||||
import com.sadellie.unitto.core.ui.Formatter
|
import com.sadellie.unitto.core.ui.Formatter
|
||||||
import com.sadellie.unitto.core.ui.R
|
import com.sadellie.unitto.core.ui.R
|
||||||
import com.sadellie.unitto.data.units.AbstractUnit
|
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
|
import com.sadellie.unitto.feature.converter.ConverterMode
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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_PLUS
|
||||||
import com.sadellie.unitto.core.base.KEY_RIGHT_BRACKET
|
import com.sadellie.unitto.core.base.KEY_RIGHT_BRACKET
|
||||||
import com.sadellie.unitto.core.base.KEY_SQRT
|
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.AllUnitsRepository
|
||||||
import com.sadellie.unitto.data.units.database.MyBasedUnitDatabase
|
import com.sadellie.unitto.data.units.database.MyBasedUnitDatabase
|
||||||
import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository
|
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 junit.framework.TestCase.assertEquals
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.flow.collect
|
import kotlinx.coroutines.flow.collect
|
||||||
@ -79,7 +79,8 @@ class MainViewModelTest {
|
|||||||
fun setUp() {
|
fun setUp() {
|
||||||
viewModel = MainViewModel(
|
viewModel = MainViewModel(
|
||||||
userPrefsRepository = UserPreferencesRepository(
|
userPrefsRepository = UserPreferencesRepository(
|
||||||
DataStoreModule().provideUserPreferencesDataStore(
|
DataStoreModule()
|
||||||
|
.provideUserPreferencesDataStore(
|
||||||
RuntimeEnvironment.getApplication()
|
RuntimeEnvironment.getApplication()
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -26,3 +26,7 @@ plugins {
|
|||||||
android {
|
android {
|
||||||
namespace = "com.sadellie.unitto.feature.epoch"
|
namespace = "com.sadellie.unitto.feature.epoch"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(mapOf("path" to ":data:epoch")))
|
||||||
|
}
|
@ -20,6 +20,7 @@ package com.sadellie.unitto.feature.epoch
|
|||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
|
import com.sadellie.unitto.data.epoch.EpochDateConverter
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.SharingStarted
|
import kotlinx.coroutines.flow.SharingStarted
|
||||||
@ -27,8 +28,6 @@ import kotlinx.coroutines.flow.StateFlow
|
|||||||
import kotlinx.coroutines.flow.combine
|
import kotlinx.coroutines.flow.combine
|
||||||
import kotlinx.coroutines.flow.stateIn
|
import kotlinx.coroutines.flow.stateIn
|
||||||
import kotlinx.coroutines.flow.update
|
import kotlinx.coroutines.flow.update
|
||||||
import java.math.BigDecimal
|
|
||||||
import java.util.*
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
data class EpochUIState(
|
data class EpochUIState(
|
||||||
@ -49,13 +48,13 @@ class EpochViewModel @Inject constructor() : ViewModel() {
|
|||||||
if (fromDateToUnix) {
|
if (fromDateToUnix) {
|
||||||
EpochUIState(
|
EpochUIState(
|
||||||
dateField = input,
|
dateField = input,
|
||||||
unixField = convertDateToUnix(input),
|
unixField = EpochDateConverter.convertDateToUnix(input),
|
||||||
dateToUnix = fromDateToUnix
|
dateToUnix = fromDateToUnix
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
EpochUIState(
|
EpochUIState(
|
||||||
unixField = input,
|
unixField = input,
|
||||||
dateField = convertUnixToDate(input),
|
dateField = EpochDateConverter.convertUnixToDate(input),
|
||||||
dateToUnix = fromDateToUnix
|
dateToUnix = fromDateToUnix
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -76,57 +75,4 @@ class EpochViewModel @Inject constructor() : ViewModel() {
|
|||||||
clearSymbols()
|
clearSymbols()
|
||||||
!it
|
!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
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -30,4 +30,8 @@ android {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.com.github.sadellie.themmo)
|
implementation(libs.com.github.sadellie.themmo)
|
||||||
implementation(libs.org.burnoutcrew.composereorderable)
|
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")))
|
||||||
}
|
}
|
||||||
|
@ -21,10 +21,9 @@ package com.sadellie.unitto.feature.settings
|
|||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.sadellie.unitto.core.ui.Formatter
|
import com.sadellie.unitto.core.ui.Formatter
|
||||||
import com.sadellie.unitto.data.preferences.UserPreferences
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import com.sadellie.unitto.data.preferences.UserPreferencesRepository
|
import com.sadellie.unitto.data.unitgroups.UnitGroupsRepository
|
||||||
import com.sadellie.unitto.data.units.UnitGroup
|
import com.sadellie.unitto.data.userprefs.UserPreferencesRepository
|
||||||
import com.sadellie.unitto.data.units.UnitGroupsRepository
|
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import io.github.sadellie.themmo.ThemingMode
|
import io.github.sadellie.themmo.ThemingMode
|
||||||
import kotlinx.coroutines.flow.SharingStarted
|
import kotlinx.coroutines.flow.SharingStarted
|
||||||
@ -42,7 +41,9 @@ class SettingsViewModel @Inject constructor(
|
|||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
var userPrefs = userPrefsRepository.userPreferencesFlow
|
var userPrefs = userPrefsRepository.userPreferencesFlow
|
||||||
.onEach { Formatter.setSeparator(it.separator) }
|
.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 shownUnitGroups = unitGroupsRepository.shownUnitGroups
|
||||||
val hiddenUnitGroups = unitGroupsRepository.hiddenUnitGroups
|
val hiddenUnitGroups = unitGroupsRepository.hiddenUnitGroups
|
||||||
|
|
||||||
|
@ -36,10 +36,10 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
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.common.UnittoLargeTopAppBar
|
||||||
import com.sadellie.unitto.core.ui.openLink
|
import com.sadellie.unitto.core.ui.openLink
|
||||||
import com.sadellie.unitto.data.ALL_LIBRARIES
|
import com.sadellie.unitto.data.licenses.ALL_LIBRARIES
|
||||||
import com.sadellie.unitto.core.ui.R
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Screen with used third party libraries
|
* Screen with used third party libraries
|
||||||
|
@ -26,3 +26,8 @@ plugins {
|
|||||||
android {
|
android {
|
||||||
namespace = "com.sadellie.unitto.feature.unitslist"
|
namespace = "com.sadellie.unitto.feature.unitslist"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(mapOf("path" to ":data:units")))
|
||||||
|
implementation(project(mapOf("path" to ":data:unitgroups")))
|
||||||
|
}
|
@ -33,9 +33,9 @@ import androidx.compose.ui.platform.LocalFocusManager
|
|||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.sadellie.unitto.core.ui.Formatter
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.NumberBaseUnit
|
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.SearchBar
|
||||||
import com.sadellie.unitto.feature.unitslist.components.SearchPlaceholder
|
import com.sadellie.unitto.feature.unitslist.components.SearchPlaceholder
|
||||||
import com.sadellie.unitto.feature.unitslist.components.UnitGroupHeader
|
import com.sadellie.unitto.feature.unitslist.components.UnitGroupHeader
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.feature.unitslist
|
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.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.UnitGroup
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Second (unit list) screen UI state.
|
* Second (unit list) screen UI state.
|
||||||
|
@ -21,10 +21,9 @@ package com.sadellie.unitto.feature.unitslist
|
|||||||
import android.app.Application
|
import android.app.Application
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import com.sadellie.unitto.data.units.AbstractUnit
|
import com.sadellie.unitto.data.units.AbstractUnit
|
||||||
import com.sadellie.unitto.data.units.AllUnitsRepository
|
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.MyBasedUnit
|
||||||
import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository
|
import com.sadellie.unitto.data.units.database.MyBasedUnitsRepository
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
@ -43,7 +42,7 @@ class SecondViewModel @Inject constructor(
|
|||||||
private val basedUnitRepository: MyBasedUnitsRepository,
|
private val basedUnitRepository: MyBasedUnitsRepository,
|
||||||
private val allUnitsRepository: AllUnitsRepository,
|
private val allUnitsRepository: AllUnitsRepository,
|
||||||
private val mContext: Application,
|
private val mContext: Application,
|
||||||
unitGroupsRepository: UnitGroupsRepository,
|
unitGroupsRepository: com.sadellie.unitto.data.unitgroups.UnitGroupsRepository,
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val _favoritesOnly = MutableStateFlow(false)
|
private val _favoritesOnly = MutableStateFlow(false)
|
||||||
|
@ -46,8 +46,8 @@ import androidx.compose.ui.draw.clip
|
|||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.sadellie.unitto.data.units.ALL_UNIT_GROUPS
|
import com.sadellie.unitto.data.unitgroups.ALL_UNIT_GROUPS
|
||||||
import com.sadellie.unitto.data.units.UnitGroup
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
import com.sadellie.unitto.feature.unitslist.R
|
import com.sadellie.unitto.feature.unitslist.R
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,7 +24,7 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.sadellie.unitto.core.ui.common.Header
|
import com.sadellie.unitto.core.ui.common.Header
|
||||||
import com.sadellie.unitto.data.units.UnitGroup
|
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun UnitGroupHeader(modifier: Modifier, unitGroup: UnitGroup) {
|
internal fun UnitGroupHeader(modifier: Modifier, unitGroup: UnitGroup) {
|
||||||
|
@ -17,7 +17,7 @@ dependencyResolutionManagement {
|
|||||||
}
|
}
|
||||||
rootProject.name = "Unitto"
|
rootProject.name = "Unitto"
|
||||||
include(":app")
|
include(":app")
|
||||||
include(":data")
|
include(":data:units")
|
||||||
include(":core:base")
|
include(":core:base")
|
||||||
include(":core:ui")
|
include(":core:ui")
|
||||||
include(":feature:converter")
|
include(":feature:converter")
|
||||||
@ -25,3 +25,7 @@ include(":feature:unitslist")
|
|||||||
include(":feature:settings")
|
include(":feature:settings")
|
||||||
include(":feature:tools")
|
include(":feature:tools")
|
||||||
include(":feature:epoch")
|
include(":feature:epoch")
|
||||||
|
include(":data:userprefs")
|
||||||
|
include(":data:unitgroups")
|
||||||
|
include(":data:licenses")
|
||||||
|
include(":data:epoch")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user