diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 521dce53f89f..31227f9be2fa 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -3,8 +3,6 @@ name: Android CI on: push: branches: [ "master" ] - pull_request: - branches: [ "master" ] jobs: build: diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java index b154f72bb809..07d3b166edd8 100644 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java @@ -43,6 +43,9 @@ public void runOpMode() { task.finish(); tasks.remove(taskId, task); taskLinks.remove(taskId); + taskLinks.entrySet().stream() + .filter(e -> e.getValue() == taskId) + .forEach(e -> tasks.get(e).init()); continue; } Integer linkedTaskId = taskLinks.get(taskId); @@ -56,6 +59,7 @@ public void runOpMode() { } public int registerTask(Task task) { + task.init(); return registerTask(task, -1); } @@ -70,7 +74,6 @@ public int registerTask(Task task) { * @return the taskId of the registered task. */ public int registerTask(Task task, int linkedTaskId) { - task.init(); int taskId = findMinFreeTaskId(); tasks.put(taskId, task); taskLinks.put(taskId, linkedTaskId); diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/task/Task.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/task/Task.java index 2ced8b70b134..6776ae6a1b33 100644 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/task/Task.java +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/task/Task.java @@ -16,7 +16,7 @@ public interface Task { boolean hasNext(); /** - * This method is called when the task is registered in the TaskOpMode. + * This method is called once when the task starts looping in the TaskOpMode. */ default void init() { }