diff --git a/app/src/main/java/ru/aleksandr/dccppthrottle/Utility.kt b/app/src/main/java/ru/aleksandr/dccppthrottle/Utility.kt new file mode 100644 index 0000000..268d102 --- /dev/null +++ b/app/src/main/java/ru/aleksandr/dccppthrottle/Utility.kt @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2023. Aleksandr.ru + * @link http://aleksandr.ru + * + * If you're using this code, please keep above information. + */ + +package ru.aleksandr.dccppthrottle + +object Utility { + // https://stackoverflow.com/a/929107 + fun remap(value: Float, oldMin: Float, oldMax: Float, newMin: Float, newMax: Float) : Float { + val oldRange = (oldMax - oldMin) + val newRange = (newMax - newMin) + return (((value - oldMin) * newRange) / oldRange) + newMin + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/aleksandr/dccppthrottle/ui/cab/LocoCabFragment.kt b/app/src/main/java/ru/aleksandr/dccppthrottle/ui/cab/LocoCabFragment.kt index 02f21c9..db4b104 100644 --- a/app/src/main/java/ru/aleksandr/dccppthrottle/ui/cab/LocoCabFragment.kt +++ b/app/src/main/java/ru/aleksandr/dccppthrottle/ui/cab/LocoCabFragment.kt @@ -15,6 +15,7 @@ import android.widget.* import androidx.fragment.app.Fragment import ru.aleksandr.dccppthrottle.cs.CommandStation import ru.aleksandr.dccppthrottle.R +import ru.aleksandr.dccppthrottle.Utility.remap import ru.aleksandr.dccppthrottle.store.LocomotivesStore import kotlin.math.ceil import kotlin.math.roundToInt @@ -141,13 +142,6 @@ class LocoCabFragment : Fragment() { } } - // https://stackoverflow.com/a/929107 - private fun remap(value: Float, oldMin: Float, oldMax: Float, newMin: Float, newMax: Float) : Float { - val oldRange = (oldMax - oldMin) - val newRange = (newMax - newMin) - return (((value - oldMin) * newRange) / oldRange) + newMin - } - companion object { const val ARG_SLOT = "slot" diff --git a/app/src/main/java/ru/aleksandr/dccppthrottle/ui/locomotives/LocoRecyclerViewAdapter.kt b/app/src/main/java/ru/aleksandr/dccppthrottle/ui/locomotives/LocoRecyclerViewAdapter.kt index 82ac99a..08a7945 100644 --- a/app/src/main/java/ru/aleksandr/dccppthrottle/ui/locomotives/LocoRecyclerViewAdapter.kt +++ b/app/src/main/java/ru/aleksandr/dccppthrottle/ui/locomotives/LocoRecyclerViewAdapter.kt @@ -19,9 +19,11 @@ import androidx.fragment.app.FragmentManager import ru.aleksandr.dccppthrottle.cs.CommandStation import ru.aleksandr.dccppthrottle.LocoCabActivity import ru.aleksandr.dccppthrottle.R +import ru.aleksandr.dccppthrottle.Utility.remap import ru.aleksandr.dccppthrottle.dialogs.LocomotiveDialog import ru.aleksandr.dccppthrottle.store.LocomotivesStore import ru.aleksandr.dccppthrottle.store.LocomotivesStore.LocomotiveState +import kotlin.math.roundToInt import ru.aleksandr.dccppthrottle.databinding.FragmentLocoListItemBinding as FragmentLocoBinding class LocoRecyclerViewAdapter( @@ -61,8 +63,16 @@ class LocoRecyclerViewAdapter( holder.slot.text = "" } holder.title.text = item.toString() - holder.progress.progress = item.speed holder.address.text = holder.itemView.context.getString(R.string.dcc_addr, item.address) + holder.progress.progress = + if (item.speed == 0) 0 + else remap( + item.speed.toFloat(), + item.minSpeed.toFloat(), + item.maxSpeed.toFloat(), + 1F, + 100F + ).roundToInt() if (item.speed > 0) { if (item.reverse) { diff --git a/app/version.properties b/app/version.properties index a6d3fa4..d5d43d7 100644 --- a/app/version.properties +++ b/app/version.properties @@ -1,2 +1,2 @@ -#Sun May 07 13:41:47 MSK 2023 -VERSION_CODE=891 +#Sun May 07 14:32:08 MSK 2023 +VERSION_CODE=894