Fixed thread issues

This commit is contained in:
Luca Warmenhoven
2024-06-05 15:07:13 +02:00
parent 612d411c3f
commit 3ed4db39c0
2 changed files with 9 additions and 4 deletions

View File

@@ -145,7 +145,8 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall
int randomMessageIndex = (int) Math.floor(Math.random() * EXERCISE_NOT_FOUND_MESSAGES.length); int randomMessageIndex = (int) Math.floor(Math.random() * EXERCISE_NOT_FOUND_MESSAGES.length);
Pepper.say(EXERCISE_NOT_FOUND_MESSAGES[randomMessageIndex]); Pepper.say(EXERCISE_NOT_FOUND_MESSAGES[randomMessageIndex]);
Pepper.say(EXERCISE_NOT_FOUND_SEEK_HELP_MESSAGE); Pepper.say(EXERCISE_NOT_FOUND_SEEK_HELP_MESSAGE);
NavigationManager.navigateToActivity(this, EndScreenActivity.class); // Run on main thread to prevent crashes (wack)
this.runOnUiThread(() -> NavigationManager.navigateToActivity(this, EndScreenActivity.class));
}); });
} }
@@ -160,7 +161,10 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall
new Thread(() -> { new Thread(() -> {
Exercise exercise = ExerciseManager.fetchExerciseFromDatabase(); Exercise exercise = ExerciseManager.fetchExerciseFromDatabase();
if (exercise == null) { if (exercise == null) {
runOnUiThread(() -> onFailedFetch.handle(null)); onFailedFetch.handle(null);
// Main thread stuff
runOnUiThread(() -> NavigationManager.navigateToActivity(this, MainActivity.class));
} else { } else {
onSuccessfulFetch.handle(exercise); onSuccessfulFetch.handle(exercise);
runOnUiThread(() -> { runOnUiThread(() -> {

View File

@@ -132,7 +132,9 @@ public class InputProcessor {
*/ */
private void nextExercise(Exercise exercise) { private void nextExercise(Exercise exercise) {
if (this.exercisesRemaining-- <= 0) { if (this.exercisesRemaining-- <= 0) {
NavigationManager.navigateToActivity(this.parentActivity, EndScreenActivity.class);
// Move to end screen on main activity
this.parentActivity.runOnUiThread(() -> NavigationManager.navigateToActivity(this.parentActivity, EndScreenActivity.class));
return; return;
} }
@@ -234,7 +236,6 @@ public class InputProcessor {
this.parentActivity.fetchExerciseAsync(this::nextExercise, (nil) -> { this.parentActivity.fetchExerciseAsync(this::nextExercise, (nil) -> {
Log.i("MotionProcessor", "Failed to fetch exercise data."); Log.i("MotionProcessor", "Failed to fetch exercise data.");
NavigationManager.navigateToActivity(this.parentActivity, MainActivity.class);
}); });
} }