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 { dependencies {
// Dzeio Charts // Dzeio Charts
implementation("com.dzeio:charts:fe20f90654") implementation("com.dzeio:charts:0.1.6")
// Dzeio Crash Handler // Dzeio Crash Handler
implementation("com.dzeio:crashhandler:1.0.1") implementation("com.dzeio:crashhandler:1.0.1")
// Core dependencies // Core dependencies
implementation("androidx.core:core-ktx:1.9.0") 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("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.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.5.1") implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.5.1")
implementation("androidx.lifecycle:lifecycle-viewmodel-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") implementation("androidx.paging:paging-runtime-ktx:3.1.1")
// Services // 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") implementation("androidx.core:core-ktx:1.9.0")
// Tests // Tests

View File

@ -12,7 +12,7 @@ import androidx.navigation.fragment.findNavController
import com.dzeio.openhealth.R import com.dzeio.openhealth.R
import com.dzeio.openhealth.core.BaseFragment import com.dzeio.openhealth.core.BaseFragment
import com.dzeio.openhealth.databinding.FragmentBrowseBinding 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 com.google.android.material.card.MaterialCardView
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -59,14 +59,14 @@ class BrowseFragment :
// since Android Q We need additionnal permissions // since Android Q We need additionnal permissions
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// check for activity permission // check for activity permission
val activityPermission = PermissionsManager.hasPermission( val activityPermission = PermissionsUtils.hasPermission(
requireContext(), requireContext(),
Manifest.permission.ACTIVITY_RECOGNITION Manifest.permission.ACTIVITY_RECOGNITION
) )
// check for notification permission // check for notification permission
val notificationPermission = val notificationPermission =
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && PermissionsManager.hasPermission( Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && PermissionsUtils.hasPermission(
requireContext(), requireContext(),
Manifest.permission.POST_NOTIFICATIONS Manifest.permission.POST_NOTIFICATIONS
) )
@ -109,11 +109,9 @@ class BrowseFragment :
// display the current user's weight // display the current user's weight
viewModel.weight.observe(viewLifecycleOwner) { viewModel.weight.observe(viewLifecycleOwner) {
binding.weightText.setText( binding.weightText.text = String.format(
String.format( resources.getString(R.string.weight_current),
resources.getString(R.string.weight_current), String.format(resources.getString(R.string.unit_mass_kilogram_unit), it)
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.data.weight.Weight
import com.dzeio.openhealth.databinding.FragmentListWeightBinding import com.dzeio.openhealth.databinding.FragmentListWeightBinding
import com.dzeio.openhealth.units.Units 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 com.google.android.material.color.MaterialColors
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import java.text.DateFormat import java.text.DateFormat
@ -103,7 +103,7 @@ class ListWeightFragment :
Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_SCAN,
Manifest.permission.ACCESS_FINE_LOCATION Manifest.permission.ACCESS_FINE_LOCATION
) )
val hasPermission = PermissionsManager.hasPermission(requireContext(), permissions) val hasPermission = PermissionsUtils.hasPermission(requireContext(), permissions)
if (!hasPermission) { if (!hasPermission) {
button = binding.bluetoothButton button = binding.bluetoothButton
activityResult.launch(permissions) activityResult.launch(permissions)
@ -130,6 +130,19 @@ class ListWeightFragment :
this.adapter = adapter 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 -> viewModel.weights.observe(viewLifecycleOwner) { list ->
if (list != null) { if (list != null) {
val unit = viewModel.massUnit.value ?: Units.Mass.KILOGRAM val unit = viewModel.massUnit.value ?: Units.Mass.KILOGRAM
@ -231,13 +244,6 @@ class ListWeightFragment :
} }
serie.entries = entries 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()) { if (list.isEmpty()) {
chart.xAxis.x = 0.0 chart.xAxis.x = 0.0
} else { } else {

View File

@ -5,7 +5,7 @@ import android.graphics.Paint
import android.graphics.RectF 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 { object DrawUtils {

View File

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

View File

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