mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-18 16:25: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: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")))
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ class UnittoLibraryFeaturePlugin : Plugin<Project> {
|
||||
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")))
|
||||
}
|
||||
|
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
|
||||
* 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 <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.sadellie.unitto.data
|
||||
package com.sadellie.unitto.data.licenses
|
||||
|
||||
data class AppLibrary(
|
||||
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/>.
|
||||
*/
|
||||
|
||||
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<UnitGroup> by lazy {
|
||||
UnitGroup.values().toList()
|
@ -16,7 +16,7 @@
|
||||
* 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.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 {
|
||||
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")))
|
||||
}
|
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 com.sadellie.unitto.data.lev
|
||||
import com.sadellie.unitto.data.unitgroups.UnitGroup
|
||||
import java.math.BigDecimal
|
||||
|
||||
/**
|
@ -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
|
@ -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
|
||||
|
||||
/**
|
@ -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(
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
||||
listOf(
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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
|
||||
|
@ -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<AbstractUnit> by lazy {
|
@ -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<AbstractUnit> by lazy {
|
@ -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
|
||||
|
@ -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
|
@ -16,12 +16,9 @@
|
||||
* 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.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
|
@ -16,8 +16,9 @@
|
||||
* 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.Test
|
||||
|
@ -16,8 +16,9 @@
|
||||
* 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.Test
|
||||
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/>.
|
||||
*/
|
||||
|
||||
package com.sadellie.unitto.data.preferences
|
||||
package com.sadellie.unitto.data.userprefs
|
||||
|
||||
import android.content.Context
|
||||
import androidx.datastore.core.DataStore
|
@ -16,7 +16,7 @@
|
||||
* 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.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<Preferences>) {
|
||||
class UserPreferencesRepository @Inject constructor(private val dataStore: DataStore<Preferences>) {
|
||||
/**
|
||||
* Keys for DataStore
|
||||
*/
|
@ -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")))
|
||||
}
|
||||
|
@ -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()
|
||||
)
|
||||
|
||||
/**
|
||||
|
@ -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
|
||||
|
||||
/**
|
||||
|
@ -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()
|
||||
|
@ -26,3 +26,7 @@ plugins {
|
||||
android {
|
||||
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.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
|
||||
}
|
||||
}
|
||||
|
@ -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")))
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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")))
|
||||
}
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
/**
|
||||
|
@ -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) {
|
||||
|
@ -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")
|
||||
|
Loading…
x
Reference in New Issue
Block a user