Fixed back button command.
authorAndrzej Krawczyk <a.krawczyk@samsung.com>
Thu, 29 Jul 2021 13:21:20 +0000 (15:21 +0200)
committerPiotr Czaja <p.czaja@samsung.com>
Tue, 14 Sep 2021 11:01:34 +0000 (13:01 +0200)
Fitness/ViewModels/ExercisingViewModel.cs

index c8f49529b21e1b51175ba9e4fd242bac19bbf7b0..bd137d384355ab45a71b00e727475b4a1abdd995 100644 (file)
@@ -25,6 +25,7 @@ namespace Fitness.ViewModels
         private int repetitions;
         private Landmark[,] poseLandmarks;
         private bool isSummaryVisible;
+        private ICommand summaryBackCommand;
         private ICommand summaryOkCommand;
         private string summaryTitle;
         private bool isLoading;
@@ -45,13 +46,23 @@ namespace Fitness.ViewModels
                 HoldTimeThreshold = 1200,
             };
             SquatService.ExerciseStateUpdated += SquatService_ExerciseStateUpdated;
-            SummaryBackCommand = new Command(ExecuteCloseSummary);
         }
 
         /// <summary>
         /// Gets a <see cref="ICommand"/> of SummaryView back button.
         /// </summary>
-        public ICommand SummaryBackCommand { get; private set; }
+        public ICommand SummaryBackCommand
+        {
+            get => summaryBackCommand;
+            private set
+            {
+                if (value != summaryBackCommand)
+                {
+                    summaryBackCommand = value;
+                    RaisePropertyChanged();
+                }
+            }
+        }
 
         /// <summary>
         /// Gets a <see cref="ICommand"/> of SummaryView ok button.
@@ -268,6 +279,11 @@ namespace Fitness.ViewModels
             if (State == WorkoutState.Playing)
             {
                 State = WorkoutState.Paused;
+                SummaryBackCommand = new Command(ExecuteCloseSummaryAndPlay);
+            }
+            else
+            {
+                SummaryBackCommand = new Command(ExecuteCloseSummary);
             }
 
             SummaryOkCommand = new Command(() => { ExecuteChangeWorkout(offset); });
@@ -275,9 +291,14 @@ namespace Fitness.ViewModels
             IsSummaryVisible = true;
         }
 
-        private void ExecuteCloseSummary()
+        private void ExecuteCloseSummaryAndPlay()
         {
             State = WorkoutState.Playing;
+            ExecuteCloseSummary();
+        }
+
+        private void ExecuteCloseSummary()
+        {
             IsSummaryVisible = false;
         }
 
@@ -339,6 +360,7 @@ namespace Fitness.ViewModels
 
         private void ConfirmTryAgain()
         {
+            SummaryBackCommand = new Command(ExecuteCloseSummary);
             SummaryOkCommand = new Command(() => { ExecuteChangeWorkout(); });
             SummaryTitle = GetSummaryTitle(SummaryType.TryAgain);
             IsSummaryVisible = true;
@@ -346,6 +368,7 @@ namespace Fitness.ViewModels
 
         private void ConfirmEndWorkout()
         {
+            SummaryBackCommand = new Command(ExecuteCloseSummary);
             SummaryOkCommand = new Command(Services.NavigationService.Instance.PopToRoot);
             SummaryTitle = GetSummaryTitle(SummaryType.EndWorkout);
             IsSummaryVisible = true;