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

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

This commit is contained in:
Florian Bouillon 2023-02-26 16:09:44 +01:00 committed by GitHub
parent bcf8004497
commit 08f09cf06d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 29 additions and 25 deletions

View File

@ -169,16 +169,16 @@ kapt {
dependencies {
// Dzeio Charts
implementation("com.dzeio:charts:fe20f90654")
implementation("com.dzeio:charts:0.1.6")
// Dzeio Crash Handler
implementation("com.dzeio:crashhandler:1.0.1")
// Core dependencies
implementation("androidx.core:core-ktx:1.9.0")
implementation("androidx.appcompat:appcompat:1.7.0-alpha01")
implementation("androidx.appcompat:appcompat:1.7.0-alpha02")
implementation("javax.inject:javax.inject:1")
implementation("com.google.android.material:material:1.9.0-alpha01")
implementation("com.google.android.material:material:1.9.0-alpha02")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.5.1")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1")
@ -201,7 +201,7 @@ dependencies {
implementation("androidx.paging:paging-runtime-ktx:3.1.1")
// Services
implementation("androidx.work:work-runtime-ktx:2.7.1")
implementation("androidx.work:work-runtime-ktx:2.8.0")
implementation("androidx.core:core-ktx:1.9.0")
// Tests

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
}