From 291dc32fe5050f35b3d877dcfddb0fb69f9dcca4 Mon Sep 17 00:00:00 2001 From: Savanni D'Gerinel Date: Fri, 9 Feb 2024 08:22:12 -0500 Subject: [PATCH] Show summaries of all time-distance workouts --- fitnesstrax/app/src/components/day.rs | 17 ++++++++++------- fitnesstrax/app/src/components/time_distance.rs | 16 +++++++++++++--- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/fitnesstrax/app/src/components/day.rs b/fitnesstrax/app/src/components/day.rs index 289f1a5..3068945 100644 --- a/fitnesstrax/app/src/components/day.rs +++ b/fitnesstrax/app/src/components/day.rs @@ -24,7 +24,7 @@ use crate::{ view_models::DayDetailViewModel, }; use emseries::{Record, RecordId}; -use ft_core::{TimeDistanceActivity, TraxRecord}; +use ft_core::{TimeDistanceActivity, TraxRecord, TIME_DISTANCE_ACTIVITIES}; use glib::Object; use gtk::{prelude::*, subclass::prelude::*}; use std::{cell::RefCell, rc::Rc}; @@ -105,12 +105,15 @@ impl DaySummary { row.append(&label); self.append(&row); - let biking_summary = view_model.time_distance_summary(TimeDistanceActivity::BikeRide); - if let Some(label) = time_distance_summary( - DistanceFormatter::from(biking_summary.0), - DurationFormatter::from(biking_summary.1), - ) { - self.append(&label); + for activity in TIME_DISTANCE_ACTIVITIES { + let summary = view_model.time_distance_summary(activity); + if let Some(label) = time_distance_summary( + activity, + DistanceFormatter::from(summary.0), + DurationFormatter::from(summary.1), + ) { + self.append(&label); + } } } } diff --git a/fitnesstrax/app/src/components/time_distance.rs b/fitnesstrax/app/src/components/time_distance.rs index b9698f3..5c74e06 100644 --- a/fitnesstrax/app/src/components/time_distance.rs +++ b/fitnesstrax/app/src/components/time_distance.rs @@ -25,17 +25,27 @@ use gtk::{prelude::*, subclass::prelude::*}; use std::{cell::RefCell, rc::Rc}; pub fn time_distance_summary( + activity: TimeDistanceActivity, distance: DistanceFormatter, duration: DurationFormatter, ) -> Option { let text = match (*distance > si::M, *duration > si::S) { (true, true) => Some(format!( - "{} of biking in {}", + "{} of {:?} in {}", distance.format(FormatOption::Full), + activity, duration.format(FormatOption::Full) )), - (true, false) => Some(format!("{} of biking", distance.format(FormatOption::Full))), - (false, true) => Some(format!("{} of biking", duration.format(FormatOption::Full))), + (true, false) => Some(format!( + "{} of {:?}", + distance.format(FormatOption::Full), + activity + )), + (false, true) => Some(format!( + "{} of {:?}", + duration.format(FormatOption::Full), + activity + )), (false, false) => None, };