From b8d2d14d68f7254b6f92d6ea9b343be31bc62dc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n?= Date: Wed, 15 Jul 2020 21:26:50 +0200 Subject: [PATCH] Preferred rate is used for aggregated stats. Fixes #321. Lambda expression for Observer. --- .../opentracks/AggregatedStatisticsActivity.java | 13 +++++-------- .../adapters/AggregatedStatisticsAdapter.java | 11 +++++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/AggregatedStatisticsActivity.java b/src/main/java/de/dennisguse/opentracks/AggregatedStatisticsActivity.java index 50650cbc5..849e8817d 100644 --- a/src/main/java/de/dennisguse/opentracks/AggregatedStatisticsActivity.java +++ b/src/main/java/de/dennisguse/opentracks/AggregatedStatisticsActivity.java @@ -23,15 +23,12 @@ public class AggregatedStatisticsActivity extends AbstractActivity { listView.setEmptyView(findViewById(R.id.aggregated_stats_empty_view)); final AggregatedStatisticsModel viewModel = new ViewModelProvider(this).get(AggregatedStatisticsModel.class); - viewModel.getAggregatedStats().observe(this, new Observer() { - @Override - public void onChanged(AggregatedStatistics aggregatedStatistics) { - if (aggregatedStatistics != null) { - adapter = new AggregatedStatisticsAdapter(getApplicationContext(), aggregatedStatistics); - listView.setAdapter(adapter); - } - adapter.notifyDataSetChanged(); + viewModel.getAggregatedStats().observe(this, aggregatedStatistics -> { + if (aggregatedStatistics != null) { + adapter = new AggregatedStatisticsAdapter(getApplicationContext(), aggregatedStatistics); + listView.setAdapter(adapter); } + adapter.notifyDataSetChanged(); }); } diff --git a/src/main/java/de/dennisguse/opentracks/adapters/AggregatedStatisticsAdapter.java b/src/main/java/de/dennisguse/opentracks/adapters/AggregatedStatisticsAdapter.java index a400c1141..05edd1f74 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/AggregatedStatisticsAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/adapters/AggregatedStatisticsAdapter.java @@ -83,12 +83,15 @@ public class AggregatedStatisticsAdapter extends BaseAdapter { protected TextView distanceUnit; protected TextView time; protected boolean metricsUnits; + protected boolean reportSpeed; public ViewHolder() { metricsUnits = PreferencesUtils.isMetricUnits(context); } public void setValues(View view, int iconDrawable, String name, AggregatedStatistics.AggregatedStatistic aggregatedStats) { + reportSpeed = PreferencesUtils.isReportSpeed(context, name); + sportIcon = view.findViewById(R.id.aggregated_stats_sport_icon); typeLabel = view.findViewById(R.id.aggregated_stats_type_label); numTracks = view.findViewById(R.id.aggregated_stats_num_tracks); @@ -128,14 +131,14 @@ public class AggregatedStatisticsAdapter extends BaseAdapter { maxSpeedLabel = view.findViewById(R.id.aggregated_stats_max_rate_label); { - Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getAverageMovingSpeed(), metricsUnits, true); + Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getAverageMovingSpeed(), metricsUnits, reportSpeed); avgSpeed.setText(parts.first); avgSpeedUnit.setText(parts.second); avgSpeedLabel.setText(context.getString(R.string.stats_average_moving_speed)); } { - Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getMaxSpeed(), metricsUnits, true); + Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getMaxSpeed(), metricsUnits, reportSpeed); maxSpeed.setText(parts.first); maxSpeedUnit.setText(parts.second); maxSpeedLabel.setText(context.getString(R.string.stats_max_speed)); @@ -164,14 +167,14 @@ public class AggregatedStatisticsAdapter extends BaseAdapter { maxPaceLabel = view.findViewById(R.id.aggregated_stats_max_rate_label); { - Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getAverageMovingSpeed(), metricsUnits, false); + Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getAverageMovingSpeed(), metricsUnits, reportSpeed); avgPace.setText(parts.first); avgPaceUnit.setText(parts.second); avgPaceLabel.setText(R.string.stats_average_moving_pace); } { - Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getMaxSpeed(), metricsUnits, false); + Pair parts = StringUtils.getSpeedParts(context, aggregatedStats.getTrackStatistics().getMaxSpeed(), metricsUnits, reportSpeed); maxPace.setText(parts.first); maxPaceUnit.setText(parts.second); maxPaceLabel.setText(R.string.stats_fastest_pace);