mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Fix workouts list refresh when workout is modified
This commit is contained in:
+1
@@ -117,6 +117,7 @@ class WorkoutDetailsActivity : AbstractGBActivity() {
|
||||
|
||||
companion object {
|
||||
const val EXTRA_WORKOUT_ID = "workout_id"
|
||||
const val RESULT_WORKOUT_CHANGED = 2
|
||||
|
||||
fun createSingleWorkoutIntent(
|
||||
context: Context,
|
||||
|
||||
+9
@@ -566,6 +566,7 @@ class WorkoutDetailsFragment : Fragment(), MenuProvider {
|
||||
currentWorkout?.let {
|
||||
workoutEditor.editWorkoutName(it, object : WorkoutEditor.Callback {
|
||||
override fun onWorkoutUpdated() {
|
||||
notifyWorkoutChanged()
|
||||
updateWorkoutHeader(workout.summary)
|
||||
}
|
||||
})
|
||||
@@ -577,6 +578,7 @@ class WorkoutDetailsFragment : Fragment(), MenuProvider {
|
||||
currentWorkout?.let {
|
||||
workoutEditor.editGpsTrack(it, object : WorkoutEditor.Callback {
|
||||
override fun onWorkoutUpdated() {
|
||||
notifyWorkoutChanged()
|
||||
// Reload the entire workout data so that we can refresh the charts
|
||||
loadWorkoutData()
|
||||
}
|
||||
@@ -594,6 +596,13 @@ class WorkoutDetailsFragment : Fragment(), MenuProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private fun notifyWorkoutChanged() {
|
||||
val resultIntent = Intent().apply {
|
||||
putExtra(ARG_WORKOUT_ID, workoutId)
|
||||
}
|
||||
requireActivity().setResult(WorkoutDetailsActivity.RESULT_WORKOUT_CHANGED, resultIntent)
|
||||
}
|
||||
|
||||
private fun updateMenuItems(menu: Menu) {
|
||||
val workout = currentWorkout ?: return
|
||||
|
||||
|
||||
+9
-4
@@ -101,9 +101,9 @@ class WorkoutListActivity : AbstractListActivity<BaseActivitySummary>() {
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, resultData)
|
||||
resultData?.extras?.let { bundle ->
|
||||
when (requestCode) {
|
||||
ACTIVITY_FILTER -> {
|
||||
when (requestCode) {
|
||||
ACTIVITY_FILTER -> {
|
||||
resultData?.extras?.let { bundle ->
|
||||
activityFilter = bundle.getInt("activityFilter", 0)
|
||||
dateFromFilter = bundle.getLong("dateFromFilter", 0)
|
||||
dateToFilter = bundle.getLong("dateToFilter", 0)
|
||||
@@ -113,7 +113,12 @@ class WorkoutListActivity : AbstractListActivity<BaseActivitySummary>() {
|
||||
itemsFilter = bundle.getSerializable("itemsFilter") as? List<Long>
|
||||
refresh()
|
||||
}
|
||||
ACTIVITY_DETAIL -> refresh()
|
||||
}
|
||||
ACTIVITY_DETAIL -> {
|
||||
if (resultCode == WorkoutDetailsActivity.RESULT_WORKOUT_CHANGED) {
|
||||
// FIXME we could try to only update the workouts that changed
|
||||
refresh()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user