1
0
mirror of https://github.com/dzeiocom/OpenHealth.git synced 2025-08-02 22:41:59 +00:00

fix: goal weight not being correctly updated (#150)

This commit is contained in:
2023-02-26 16:09:44 +01:00
committed by GitHub
parent bcf8004497
commit 08f09cf06d
6 changed files with 29 additions and 25 deletions

View File

@@ -12,7 +12,7 @@ import androidx.navigation.fragment.findNavController
import com.dzeio.openhealth.R
import com.dzeio.openhealth.core.BaseFragment
import com.dzeio.openhealth.databinding.FragmentBrowseBinding
import com.dzeio.openhealth.utils.PermissionsManager
import com.dzeio.openhealth.utils.PermissionsUtils
import com.google.android.material.card.MaterialCardView
import dagger.hilt.android.AndroidEntryPoint
@@ -59,14 +59,14 @@ class BrowseFragment :
// since Android Q We need additionnal permissions
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// check for activity permission
val activityPermission = PermissionsManager.hasPermission(
val activityPermission = PermissionsUtils.hasPermission(
requireContext(),
Manifest.permission.ACTIVITY_RECOGNITION
)
// check for notification permission
val notificationPermission =
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && PermissionsManager.hasPermission(
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && PermissionsUtils.hasPermission(
requireContext(),
Manifest.permission.POST_NOTIFICATIONS
)
@@ -109,11 +109,9 @@ class BrowseFragment :
// display the current user's weight
viewModel.weight.observe(viewLifecycleOwner) {
binding.weightText.setText(
String.format(
resources.getString(R.string.weight_current),
String.format(resources.getString(R.string.unit_mass_kilogram_unit), it)
)
binding.weightText.text = String.format(
resources.getString(R.string.weight_current),
String.format(resources.getString(R.string.unit_mass_kilogram_unit), it)
)
}
}

View File

@@ -26,7 +26,7 @@ import com.dzeio.openhealth.core.BaseFragment
import com.dzeio.openhealth.data.weight.Weight
import com.dzeio.openhealth.databinding.FragmentListWeightBinding
import com.dzeio.openhealth.units.Units
import com.dzeio.openhealth.utils.PermissionsManager
import com.dzeio.openhealth.utils.PermissionsUtils
import com.google.android.material.color.MaterialColors
import dagger.hilt.android.AndroidEntryPoint
import java.text.DateFormat
@@ -103,7 +103,7 @@ class ListWeightFragment :
Manifest.permission.BLUETOOTH_SCAN,
Manifest.permission.ACCESS_FINE_LOCATION
)
val hasPermission = PermissionsManager.hasPermission(requireContext(), permissions)
val hasPermission = PermissionsUtils.hasPermission(requireContext(), permissions)
if (!hasPermission) {
button = binding.bluetoothButton
activityResult.launch(permissions)
@@ -130,6 +130,19 @@ class ListWeightFragment :
this.adapter = adapter
}
viewModel.goalWeight.observe(viewLifecycleOwner) {
binding.chart.yAxis.apply {
clearLines()
if (it != null) {
addLine(
it,
Line(true, Paint(linePaint).apply { strokeWidth = 4f })
)
}
binding.chart.refresh()
}
}
viewModel.weights.observe(viewLifecycleOwner) { list ->
if (list != null) {
val unit = viewModel.massUnit.value ?: Units.Mass.KILOGRAM
@@ -231,13 +244,6 @@ class ListWeightFragment :
}
serie.entries = entries
if (viewModel.goalWeight.value != null) {
chart.yAxis.addLine(
viewModel.goalWeight.value!!,
Line(true, Paint(chart.yAxis.linePaint).apply { strokeWidth = 4f })
)
}
if (list.isEmpty()) {
chart.xAxis.x = 0.0
} else {

View File

@@ -5,7 +5,7 @@ import android.graphics.Paint
import android.graphics.RectF
/**
* Utils class to draw more complexe elements on a canvas
* Utils class to draw more complex elements on a canvas
*/
object DrawUtils {

View File

@@ -8,7 +8,7 @@ import androidx.core.content.ContextCompat
/**
* Simple Utils class to check for permissions in multiple android environments
*/
object PermissionsManager {
object PermissionsUtils {
/**
* Allow to check for one permission

View File

@@ -18,8 +18,8 @@ object ServiceUtils {
*/
fun <T> startService(context: Context, service: Class<T>) {
val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
for (runninService in activityManager.getRunningServices(Integer.MAX_VALUE)) {
if (service.name.equals(runninService.service.className)) {
for (runningService in activityManager.getRunningServices(Integer.MAX_VALUE)) {
if (service.name.equals(runningService.service.className)) {
Log.w(Application.TAG, "Service already existing, not starting again")
return
}