1
0
mirror of https://github.com/dzeiocom/OpenHealth.git synced 2025-04-22 19:02:16 +00:00

misc: Cleanup adapters

This commit is contained in:
Florian Bouillon 2023-01-07 23:05:22 +01:00
parent 1f4ecc06ad
commit b7909df867
Signed by: Florian Bouillon
GPG Key ID: BEEAF3722D0EBF64
9 changed files with 59 additions and 14 deletions

View File

@ -2,6 +2,7 @@ package com.dzeio.openhealth.adapters
import android.view.LayoutInflater
import android.view.ViewGroup
import com.dzeio.openhealth.R
import com.dzeio.openhealth.core.BaseAdapter
import com.dzeio.openhealth.core.BaseViewHolder
import com.dzeio.openhealth.data.food.Food
@ -22,9 +23,20 @@ class FoodAdapter : BaseAdapter<Food, ItemFoodBinding>() {
item: Food,
position: Int
) {
// Download remote picture
DownloadImageTask(holder.binding.productImage).execute(item.image)
holder.binding.foodName.text = "${item.name}"
holder.binding.foodDescription.text = "${item.quantity.roundToInt()}${item.serving.replace(Regex("\\d+"), "")} (${(item.energy / 100 * item.quantity).roundToInt()} kcal)"
// set the food name
holder.binding.foodName.text = item.name
// set the food description
holder.binding.foodDescription.text = holder.itemView.context.getString(
R.string.food_description,
item.quantity.roundToInt().toString() + item.serving.replace(Regex("\\d+"), ""),
(item.energy / 100 * item.quantity)
)
// set the callback
holder.binding.edit.setOnClickListener {
onItemClick?.invoke(item)
}

View File

@ -2,6 +2,7 @@ package com.dzeio.openhealth.adapters
import android.view.LayoutInflater
import android.view.ViewGroup
import com.dzeio.openhealth.R
import com.dzeio.openhealth.core.BaseAdapter
import com.dzeio.openhealth.core.BaseViewHolder
import com.dzeio.openhealth.data.step.Step
@ -19,8 +20,16 @@ class StepsAdapter() : BaseAdapter<Step, LayoutItemListBinding>() {
item: Step,
position: Int
) {
holder.binding.value.text = "${item.value} steps"
// set the number of steps taken
holder.binding.value.text = holder.itemView.context.getString(
R.string.steps_count,
item.value
)
// set the datetime
holder.binding.datetime.text = item.formatTimestamp()
// set the callback
holder.binding.edit.setOnClickListener {
onItemClick?.invoke(item)
}

View File

@ -6,8 +6,14 @@ import com.dzeio.openhealth.core.BaseAdapter
import com.dzeio.openhealth.core.BaseViewHolder
import com.dzeio.openhealth.data.water.Water
import com.dzeio.openhealth.databinding.LayoutItemListBinding
import com.dzeio.openhealth.units.Units
class WaterAdapter() : BaseAdapter<Water, LayoutItemListBinding>() {
class WaterAdapter : BaseAdapter<Water, LayoutItemListBinding>() {
/**
* The unit the adapter will be using
*/
var unit: Units.Volume = Units.Volume.MILLILITER
override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> LayoutItemListBinding
get() = LayoutItemListBinding::inflate
@ -19,8 +25,14 @@ class WaterAdapter() : BaseAdapter<Water, LayoutItemListBinding>() {
item: Water,
position: Int
) {
holder.binding.value.text = "${item.value}ml"
holder.binding.datetime.text = "${item.formatTimestamp()}"
// set the wate intake text
holder.binding.value.text =
holder.itemView.context.getString(unit.unit, unit.formatToString(item.value))
// set the datetime
holder.binding.datetime.text = item.formatTimestamp()
// set the callback
holder.binding.edit.setOnClickListener {
onItemClick?.invoke(item)
}

View File

@ -10,6 +10,9 @@ import com.dzeio.openhealth.units.Units
class WeightAdapter : BaseAdapter<Weight, LayoutItemListBinding>() {
/**
* The unit the adapter will be using
*/
var unit: Units.Mass = Units.Mass.KILOGRAM
override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> LayoutItemListBinding
@ -22,12 +25,14 @@ class WeightAdapter : BaseAdapter<Weight, LayoutItemListBinding>() {
item: Weight,
position: Int
) {
// set the weight text
holder.binding.value.text =
holder.itemView.context.getString(unit.unit, unit.formatToString(item.weight))
// set the datetime
holder.binding.datetime.text = item.formatTimestamp()
// set the callback
holder.binding.edit.setOnClickListener {
onItemClick?.invoke(item)
}

View File

@ -15,22 +15,22 @@ import com.dzeio.openhealth.R
import com.dzeio.openhealth.core.BaseFullscreenDialog
import com.dzeio.openhealth.data.weight.Weight
import com.dzeio.openhealth.databinding.DialogEditWeightBinding
import com.dzeio.openhealth.ui.home.HomeViewModel
import com.google.android.material.datepicker.MaterialDatePicker
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.timepicker.MaterialTimePicker
import dagger.hilt.android.AndroidEntryPoint
import java.util.Date
@AndroidEntryPoint
class EditWeightDialog :
BaseFullscreenDialog<EditWeightDialogViewModel, DialogEditWeightBinding>(HomeViewModel::class.java) {
BaseFullscreenDialog<EditWeightDialogViewModel, DialogEditWeightBinding>(EditWeightDialogViewModel::class.java) {
override val bindingInflater: (LayoutInflater) -> DialogEditWeightBinding =
DialogEditWeightBinding::inflate
override val isFullscreenLayout = true
val args: EditWeightDialogArgs by navArgs()
private val args: EditWeightDialogArgs by navArgs()
lateinit var weight: Weight

View File

@ -10,12 +10,12 @@ import com.dzeio.openhealth.data.weight.Weight
import com.dzeio.openhealth.data.weight.WeightRepository
import com.dzeio.openhealth.units.Units
import com.dzeio.openhealth.utils.Configuration
import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import javax.inject.Inject
@AndroidEntryPoint
@HiltViewModel
class EditWeightDialogViewModel @Inject internal constructor(
private val weightRepository: WeightRepository,
config: Configuration

View File

@ -78,6 +78,10 @@ object Units {
R.string.unit_volume_ounce_unit
);
fun formatToString(value: Int): String {
return String.format("%d", value * modifier)
}
companion object {
fun find(value: String): Volume {
return Volume.values().find {

View File

@ -53,5 +53,6 @@
<string name="quit">Quitter</string>
<string name="steps_taken">Pas pris</string>
<string name="error_reporter_crash">Erreur lors de la géneration d\'un rapport d\'erreur</string>
<string name="steps_count">%1$d pas</string>
</resources>

View File

@ -65,4 +65,6 @@
<string name="quit">Quit</string>
<string name="steps_taken">Steps taken</string>
<string name="error_reporter_crash">An error occurred while making the error report</string>
<string name="food_description" translatable="false">%1$s (%2$.0f kcal)</string>
<string name="steps_count">%1$d steps</string>
</resources>