From b01a900fd395a934dc8ae2e3bee06e00c6201b51 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Wed, 6 Apr 2022 21:30:33 -0700 Subject: [PATCH] Fix live statistics not disappearing when track cleared. --- .../java/org/y20k/trackbook/MapFragment.kt | 15 +++++-- .../trackbook/ui/MapFragmentLayoutHolder.kt | 45 +++++++++++-------- 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/y20k/trackbook/MapFragment.kt b/app/src/main/java/org/y20k/trackbook/MapFragment.kt index 1f8027b..5ad6433 100644 --- a/app/src/main/java/org/y20k/trackbook/MapFragment.kt +++ b/app/src/main/java/org/y20k/trackbook/MapFragment.kt @@ -90,11 +90,20 @@ class MapFragment : Fragment(), YesNoDialog.YesNoDialogListener, MapOverlayHelpe saveTrack() } layout.clearButton.setOnClickListener { - if (track.wayPoints.isNotEmpty()) { - YesNoDialog(this as YesNoDialog.YesNoDialogListener).show(context = activity as Context, type = Keys.DIALOG_DELETE_CURRENT_RECORDING, message = R.string.dialog_delete_current_recording_message, yesButton = R.string.dialog_delete_current_recording_button_discard) - } else { + if (track.wayPoints.isEmpty()) + { + // This might seem useless since it's already empty, but there are other UI updates + // that occur as part of cleartrack so we may as well take advantage of those. trackerService.clearTrack() } + else { + YesNoDialog(this as YesNoDialog.YesNoDialogListener).show( + context=activity as Context, + type = Keys.DIALOG_DELETE_CURRENT_RECORDING, + message = R.string.dialog_delete_current_recording_message, + yesButton = R.string.dialog_delete_current_recording_button_discard + ) + } } return layout.rootView diff --git a/app/src/main/java/org/y20k/trackbook/ui/MapFragmentLayoutHolder.kt b/app/src/main/java/org/y20k/trackbook/ui/MapFragmentLayoutHolder.kt index 5adec08..4936de6 100644 --- a/app/src/main/java/org/y20k/trackbook/ui/MapFragmentLayoutHolder.kt +++ b/app/src/main/java/org/y20k/trackbook/ui/MapFragmentLayoutHolder.kt @@ -201,30 +201,39 @@ data class MapFragmentLayoutHolder(private var context: Context, private var mar } } - /* Update live statics */ fun updateLiveStatics(distance: Float, duration: Long, trackingState: Int) { // toggle visibility - val trackingActive: Boolean = trackingState != Keys.STATE_TRACKING_NOT_STARTED - liveStatisticsDistanceView.isVisible = trackingActive - liveStatisticsDurationView.isVisible = trackingActive - // update distance and duration (and add outline) - val distanceString: String = LengthUnitHelper.convertDistanceToString(distance, useImperial) - liveStatisticsDistanceView.text = distanceString - liveStatisticsDistanceOutlineView.text = distanceString - liveStatisticsDistanceOutlineView.paint.strokeWidth = 5f - liveStatisticsDistanceOutlineView.paint.style = Paint.Style.STROKE - val durationString: String = DateTimeHelper.convertToReadableTime(context, duration, compactFormat = true) - liveStatisticsDurationView.text = durationString - liveStatisticsDurationOutlineView.text = durationString - liveStatisticsDurationOutlineView.paint.strokeWidth = 5f - liveStatisticsDurationOutlineView.paint.style = Paint.Style.STROKE - + if (trackingState == Keys.STATE_TRACKING_NOT_STARTED) + { + liveStatisticsDistanceView.isGone = true + liveStatisticsDurationView.isGone = true + liveStatisticsDistanceOutlineView.isGone = true + liveStatisticsDurationOutlineView.isGone = true + } + else + { + liveStatisticsDistanceView.isVisible = true + liveStatisticsDurationView.isVisible = true + liveStatisticsDistanceOutlineView.isVisible = true + liveStatisticsDurationOutlineView.isVisible = true + // update distance and duration (and add outline) + val distanceString: String = LengthUnitHelper.convertDistanceToString(distance, useImperial) + liveStatisticsDistanceView.text = distanceString + liveStatisticsDistanceOutlineView.text = distanceString + liveStatisticsDistanceOutlineView.paint.strokeWidth = 5f + liveStatisticsDistanceOutlineView.paint.style = Paint.Style.STROKE + val durationString: String = DateTimeHelper.convertToReadableTime(context, duration, compactFormat = true) + liveStatisticsDurationView.text = durationString + liveStatisticsDurationOutlineView.text = durationString + liveStatisticsDurationOutlineView.paint.strokeWidth = 5f + liveStatisticsDurationOutlineView.paint.style = Paint.Style.STROKE + } } - /* Toggles state of main button and additional buttons (save & resume) */ - fun updateMainButton(trackingState: Int) { + fun updateMainButton(trackingState: Int) + { when (trackingState) { Keys.STATE_TRACKING_NOT_STARTED -> { mainButton.setIconResource(R.drawable.ic_fiber_manual_record_inactive_24dp)