diff --git a/code/src/Fitbot/.idea/misc.xml b/code/src/Fitbot/.idea/misc.xml index ca880a9..44c9792 100644 --- a/code/src/Fitbot/.idea/misc.xml +++ b/code/src/Fitbot/.idea/misc.xml @@ -22,6 +22,7 @@ + diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/EndScreenActivity.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/EndScreenActivity.java index f2185de..1c36be4 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/EndScreenActivity.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/EndScreenActivity.java @@ -13,6 +13,8 @@ public class EndScreenActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_end_screen); + NavigationManager.hideSystemUI(this); + NavigationManager.setupButtonNavigation(this, R.id.homeButtonEndScreen, MainActivity.class); NavigationManager.setupButtonNavigation(this, R.id.startButtonEndScreen, FitnessActivity.class); } diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java index 7282278..4dc2472 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java @@ -2,11 +2,14 @@ package com.example.fitbot.ui.activities; import android.app.Dialog; import android.content.Context; +import android.content.res.ColorStateList; +import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.util.Log; +import android.widget.ProgressBar; import android.widget.TextView; import android.view.View; import android.view.WindowManager; @@ -56,7 +59,7 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall private static final float SENSOR_SAMPLE_RATE = 10.0f; private static final int EXERCISE_COUNT = 5; - private static int EXERCISE_REP = 10; + private static int EXERCISE_REP = 1; private static final float EXERCISE_SPEED_MULTIPLIER = 1.0f; @Override @@ -70,6 +73,13 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall this.exerciseShortDescriptionTextView = findViewById(R.id.textViewFitnessShortDescription); //this.exerciseDescriptionTextView = findViewById(R.id.textViewDialogDescription); + // Set the repetition count for the exercise + EXERCISE_REP = 1; + + // Set color of loading circle + ProgressBar loadingCircle = findViewById(R.id.loadingCircle); + loadingCircle.setIndeterminateTintList(ColorStateList.valueOf(Color.RED)); + // Navigation Buttons NavigationManager.setupButtonNavigation(this, R.id.homeButtonFitness, MainActivity.class); NavigationManager.setupButtonNavigation(this, R.id.skipButtonFitness, MainActivity.class); //Needs to skip exercises once those are implemented @@ -129,7 +139,7 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall public void fetchExerciseAsync(Exercise.ExerciseFetchHandler onSuccessfulFetch, Exercise.ExerciseFetchHandler onFailedFetch) { // For some stupid reason we cannot perform network operations on the main thread. // therefore we'll have to do it like this... - (new Thread(() -> { + new Thread(() -> { Exercise exercise = ExerciseManager.fetchExerciseFromDatabase(); if (exercise == null) { onFailedFetch.handle(null); @@ -145,19 +155,28 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall VideoView videoView = findViewById(R.id.videoView); playVideo(videoView, this); - // Set a listener to repeat the video - while (EXERCISE_REP > 1) { - videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { - @Override - public void onCompletion(MediaPlayer mp) { + // When the video has started playing remove the loading circle + videoView.setOnInfoListener((mp, what, extra) -> { + if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) { + ProgressBar loadingCircle = findViewById(R.id.loadingCircle); + loadingCircle.setVisibility(View.GONE); + return true; + } + return false; + }); + + videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { + @Override + public void onCompletion(MediaPlayer mp) { + if (EXERCISE_REP < EXERCISE_COUNT) { videoView.start(); // start the video again + EXERCISE_REP++; } - }); - EXERCISE_REP--; - } + } + }); }); } - })).start(); + }).start(); } /** @@ -166,7 +185,7 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall * @param videoView The VideoView to play the video in * @param context The context to use */ - public static void playVideo(VideoView videoView, Context context) { + public void playVideo(VideoView videoView, Context context) { // Set up the video player if (videoView != null) { videoView.setVideoPath(exerciseVideoUrl); diff --git a/code/src/Fitbot/app/src/main/res/drawable/border_background.xml b/code/src/Fitbot/app/src/main/res/drawable/border_background.xml index 7ea69e6..3d0d3c1 100644 --- a/code/src/Fitbot/app/src/main/res/drawable/border_background.xml +++ b/code/src/Fitbot/app/src/main/res/drawable/border_background.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/code/src/Fitbot/app/src/main/res/drawable/border_background_2.xml b/code/src/Fitbot/app/src/main/res/drawable/border_background_2.xml index 0fb955b..408d16b 100644 --- a/code/src/Fitbot/app/src/main/res/drawable/border_background_2.xml +++ b/code/src/Fitbot/app/src/main/res/drawable/border_background_2.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml b/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml index 35aa21a..d8a48fd 100644 --- a/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml +++ b/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml @@ -12,7 +12,7 @@ android:layout_height="450dp" android:layout_marginStart="80dp" android:layout_marginTop="24dp" - android:background="@drawable/border_background_2" + android:background="@drawable/border_background" android:orientation="vertical" android:padding="16dp" app:layout_constraintStart_toStartOf="parent" @@ -24,7 +24,7 @@ android:layout_gravity="center" android:layout_marginTop="20dp" android:layout_marginBottom="40dp" - android:background="@drawable/border_background" + android:background="@drawable/border_background_3" android:orientation="vertical" android:paddingVertical="15dp" android:paddingHorizontal="20dp" @@ -40,11 +40,11 @@ - + + + + + + + +