mirror of
https://github.com/dzeiocom/OpenHealth.git
synced 2025-04-23 03:12:14 +00:00
misc: Cleanup adapters
This commit is contained in:
parent
1f4ecc06ad
commit
b7909df867
@ -2,6 +2,7 @@ package com.dzeio.openhealth.adapters
|
|||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import com.dzeio.openhealth.R
|
||||||
import com.dzeio.openhealth.core.BaseAdapter
|
import com.dzeio.openhealth.core.BaseAdapter
|
||||||
import com.dzeio.openhealth.core.BaseViewHolder
|
import com.dzeio.openhealth.core.BaseViewHolder
|
||||||
import com.dzeio.openhealth.data.food.Food
|
import com.dzeio.openhealth.data.food.Food
|
||||||
@ -22,9 +23,20 @@ class FoodAdapter : BaseAdapter<Food, ItemFoodBinding>() {
|
|||||||
item: Food,
|
item: Food,
|
||||||
position: Int
|
position: Int
|
||||||
) {
|
) {
|
||||||
|
// Download remote picture
|
||||||
DownloadImageTask(holder.binding.productImage).execute(item.image)
|
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 {
|
holder.binding.edit.setOnClickListener {
|
||||||
onItemClick?.invoke(item)
|
onItemClick?.invoke(item)
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package com.dzeio.openhealth.adapters
|
|||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import com.dzeio.openhealth.R
|
||||||
import com.dzeio.openhealth.core.BaseAdapter
|
import com.dzeio.openhealth.core.BaseAdapter
|
||||||
import com.dzeio.openhealth.core.BaseViewHolder
|
import com.dzeio.openhealth.core.BaseViewHolder
|
||||||
import com.dzeio.openhealth.data.step.Step
|
import com.dzeio.openhealth.data.step.Step
|
||||||
@ -19,8 +20,16 @@ class StepsAdapter() : BaseAdapter<Step, LayoutItemListBinding>() {
|
|||||||
item: Step,
|
item: Step,
|
||||||
position: Int
|
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()
|
holder.binding.datetime.text = item.formatTimestamp()
|
||||||
|
|
||||||
|
// set the callback
|
||||||
holder.binding.edit.setOnClickListener {
|
holder.binding.edit.setOnClickListener {
|
||||||
onItemClick?.invoke(item)
|
onItemClick?.invoke(item)
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,14 @@ import com.dzeio.openhealth.core.BaseAdapter
|
|||||||
import com.dzeio.openhealth.core.BaseViewHolder
|
import com.dzeio.openhealth.core.BaseViewHolder
|
||||||
import com.dzeio.openhealth.data.water.Water
|
import com.dzeio.openhealth.data.water.Water
|
||||||
import com.dzeio.openhealth.databinding.LayoutItemListBinding
|
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
|
override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> LayoutItemListBinding
|
||||||
get() = LayoutItemListBinding::inflate
|
get() = LayoutItemListBinding::inflate
|
||||||
@ -19,8 +25,14 @@ class WaterAdapter() : BaseAdapter<Water, LayoutItemListBinding>() {
|
|||||||
item: Water,
|
item: Water,
|
||||||
position: Int
|
position: Int
|
||||||
) {
|
) {
|
||||||
holder.binding.value.text = "${item.value}ml"
|
// set the wate intake text
|
||||||
holder.binding.datetime.text = "${item.formatTimestamp()}"
|
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 {
|
holder.binding.edit.setOnClickListener {
|
||||||
onItemClick?.invoke(item)
|
onItemClick?.invoke(item)
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,9 @@ import com.dzeio.openhealth.units.Units
|
|||||||
|
|
||||||
class WeightAdapter : BaseAdapter<Weight, LayoutItemListBinding>() {
|
class WeightAdapter : BaseAdapter<Weight, LayoutItemListBinding>() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The unit the adapter will be using
|
||||||
|
*/
|
||||||
var unit: Units.Mass = Units.Mass.KILOGRAM
|
var unit: Units.Mass = Units.Mass.KILOGRAM
|
||||||
|
|
||||||
override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> LayoutItemListBinding
|
override val bindingInflater: (LayoutInflater, ViewGroup?, Boolean) -> LayoutItemListBinding
|
||||||
@ -22,12 +25,14 @@ class WeightAdapter : BaseAdapter<Weight, LayoutItemListBinding>() {
|
|||||||
item: Weight,
|
item: Weight,
|
||||||
position: Int
|
position: Int
|
||||||
) {
|
) {
|
||||||
|
// set the weight text
|
||||||
|
|
||||||
|
|
||||||
holder.binding.value.text =
|
holder.binding.value.text =
|
||||||
holder.itemView.context.getString(unit.unit, unit.formatToString(item.weight))
|
holder.itemView.context.getString(unit.unit, unit.formatToString(item.weight))
|
||||||
|
|
||||||
|
// set the datetime
|
||||||
holder.binding.datetime.text = item.formatTimestamp()
|
holder.binding.datetime.text = item.formatTimestamp()
|
||||||
|
|
||||||
|
// set the callback
|
||||||
holder.binding.edit.setOnClickListener {
|
holder.binding.edit.setOnClickListener {
|
||||||
onItemClick?.invoke(item)
|
onItemClick?.invoke(item)
|
||||||
}
|
}
|
||||||
|
@ -15,22 +15,22 @@ import com.dzeio.openhealth.R
|
|||||||
import com.dzeio.openhealth.core.BaseFullscreenDialog
|
import com.dzeio.openhealth.core.BaseFullscreenDialog
|
||||||
import com.dzeio.openhealth.data.weight.Weight
|
import com.dzeio.openhealth.data.weight.Weight
|
||||||
import com.dzeio.openhealth.databinding.DialogEditWeightBinding
|
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.datepicker.MaterialDatePicker
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.timepicker.MaterialTimePicker
|
import com.google.android.material.timepicker.MaterialTimePicker
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import java.util.Date
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class EditWeightDialog :
|
class EditWeightDialog :
|
||||||
BaseFullscreenDialog<EditWeightDialogViewModel, DialogEditWeightBinding>(HomeViewModel::class.java) {
|
BaseFullscreenDialog<EditWeightDialogViewModel, DialogEditWeightBinding>(EditWeightDialogViewModel::class.java) {
|
||||||
|
|
||||||
override val bindingInflater: (LayoutInflater) -> DialogEditWeightBinding =
|
override val bindingInflater: (LayoutInflater) -> DialogEditWeightBinding =
|
||||||
DialogEditWeightBinding::inflate
|
DialogEditWeightBinding::inflate
|
||||||
|
|
||||||
override val isFullscreenLayout = true
|
override val isFullscreenLayout = true
|
||||||
|
|
||||||
val args: EditWeightDialogArgs by navArgs()
|
private val args: EditWeightDialogArgs by navArgs()
|
||||||
|
|
||||||
lateinit var weight: Weight
|
lateinit var weight: Weight
|
||||||
|
|
||||||
|
@ -10,12 +10,12 @@ import com.dzeio.openhealth.data.weight.Weight
|
|||||||
import com.dzeio.openhealth.data.weight.WeightRepository
|
import com.dzeio.openhealth.data.weight.WeightRepository
|
||||||
import com.dzeio.openhealth.units.Units
|
import com.dzeio.openhealth.units.Units
|
||||||
import com.dzeio.openhealth.utils.Configuration
|
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.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@HiltViewModel
|
||||||
class EditWeightDialogViewModel @Inject internal constructor(
|
class EditWeightDialogViewModel @Inject internal constructor(
|
||||||
private val weightRepository: WeightRepository,
|
private val weightRepository: WeightRepository,
|
||||||
config: Configuration
|
config: Configuration
|
||||||
|
@ -78,6 +78,10 @@ object Units {
|
|||||||
R.string.unit_volume_ounce_unit
|
R.string.unit_volume_ounce_unit
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fun formatToString(value: Int): String {
|
||||||
|
return String.format("%d", value * modifier)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun find(value: String): Volume {
|
fun find(value: String): Volume {
|
||||||
return Volume.values().find {
|
return Volume.values().find {
|
||||||
|
@ -53,5 +53,6 @@
|
|||||||
<string name="quit">Quitter</string>
|
<string name="quit">Quitter</string>
|
||||||
<string name="steps_taken">Pas pris</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="error_reporter_crash">Erreur lors de la géneration d\'un rapport d\'erreur</string>
|
||||||
|
<string name="steps_count">%1$d pas</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -65,4 +65,6 @@
|
|||||||
<string name="quit">Quit</string>
|
<string name="quit">Quit</string>
|
||||||
<string name="steps_taken">Steps taken</string>
|
<string name="steps_taken">Steps taken</string>
|
||||||
<string name="error_reporter_crash">An error occurred while making the error report</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>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user