From 40b86b624a64fc1c06c632802773b07858c4d669 Mon Sep 17 00:00:00 2001 From: Eternity0 Date: Tue, 17 Sep 2024 14:57:37 +0800 Subject: [PATCH 1/4] Fix: call task.init() in a right timing --- .../main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java | 4 +++- .../main/java/org/firstinspires/ftc/teamcode/task/Task.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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..b2203474eaf5 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); @@ -70,7 +73,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() { } From e7d4314db8a6055d37093f805c775f961edefd5a Mon Sep 17 00:00:00 2001 From: Eternity0 Date: Tue, 17 Sep 2024 14:57:37 +0800 Subject: [PATCH 2/4] Fix: call task.init() method at a right timing --- .../main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java | 4 +++- .../main/java/org/firstinspires/ftc/teamcode/task/Task.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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..b2203474eaf5 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); @@ -70,7 +73,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() { } From 6de00a36fa1c07d0ac2d95c2c99be503613a7e72 Mon Sep 17 00:00:00 2001 From: LeCh2td <85344760+LeChocolatChaud@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:43:18 +0800 Subject: [PATCH 3/4] Update android.yml --- .github/workflows/android.yml | 2 -- 1 file changed, 2 deletions(-) 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: From 2cf83632e7e9c9a0c4b3a6aad1dc90187e80326c Mon Sep 17 00:00:00 2001 From: Eternity0 Date: Tue, 17 Sep 2024 15:58:30 +0800 Subject: [PATCH 4/4] Fix: tasks with no link will not init --- .../src/main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java | 1 + 1 file changed, 1 insertion(+) 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 b2203474eaf5..07d3b166edd8 100644 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TaskOpMode.java @@ -59,6 +59,7 @@ public void runOpMode() { } public int registerTask(Task task) { + task.init(); return registerTask(task, -1); }