From 0d02a6cf9cc8a95896edbb0c8c9be3fd39caffac Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 11 Sep 2021 15:19:51 +0200 Subject: [PATCH] Update cached data in RemoteRecorder so that views update faster --- .../ui/tabs/recorded/RecordLaterTab.java | 1 + .../ctbrec/ui/tasks/AbstractModelTask.java | 1 - .../java/ctbrec/recorder/RemoteRecorder.java | 19 +++++++++++-------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java index 20427e1b..ddadc02f 100644 --- a/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/recorded/RecordLaterTab.java @@ -100,6 +100,7 @@ public class RecordLaterTab extends AbstractRecordedModelsTab implements TabSele filteredModels.clear(); filter(filter.getText()); table.sort(); + table.refresh(); } private void addOrUpdateModels(List updatedModels) { diff --git a/client/src/main/java/ctbrec/ui/tasks/AbstractModelTask.java b/client/src/main/java/ctbrec/ui/tasks/AbstractModelTask.java index 2a8a6baf..6b05fc8a 100644 --- a/client/src/main/java/ctbrec/ui/tasks/AbstractModelTask.java +++ b/client/src/main/java/ctbrec/ui/tasks/AbstractModelTask.java @@ -18,7 +18,6 @@ public abstract class AbstractModelTask { public CompletableFuture executeSync(Model model) { try { - org.slf4j.LoggerFactory.getLogger(getClass()).debug("Executing concrete task for {} - suspended:{}", model, model.isSuspended()); concreteTask.accept(model); return CompletableFuture.completedFuture(model); } catch (Exception e) { diff --git a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java index 1fccb041..75d7e655 100644 --- a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java +++ b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java @@ -103,11 +103,19 @@ public class RemoteRecorder implements Recorder { LOG.trace("Model until: {}", model.getRecordUntil().equals(Instant.ofEpochMilli(Model.RECORD_INDEFINITELY)) ? "no limit" : model.getRecordUntil()); LOG.trace("Model after: {}", model.getRecordUntilSubsequentAction()); sendRequest("start", model); + findModel(model).ifPresent(cachedModel -> { + cachedModel.setSuspended(model.isSuspended()); + cachedModel.setMarkedForLaterRecording(model.isMarkedForLaterRecording()); + cachedModel.setRecordUntil(model.getRecordUntil()); + cachedModel.setRecordUntilSubsequentAction(model.getRecordUntilSubsequentAction()); + }); } @Override public void stopRecording(Model model) throws IOException, InvalidKeyException, NoSuchAlgorithmException { sendRequest("stop", model); + models.remove(model); + onlineModels.remove(model); } @Override @@ -147,13 +155,6 @@ public class RemoteRecorder implements Recorder { if (!resp.status.equals(SUCCESS)) { throw new IOException("Server returned error " + resp.status + " " + resp.msg); } - - if ("start".equals(action)) { - models.add(model); - } else if ("stop".equals(action)) { - models.remove(model); - onlineModels.remove(model); - } } else { throw new HttpException(response.code(), response.message()); } @@ -733,8 +734,10 @@ public class RemoteRecorder implements Recorder { int index = models.indexOf(model); if (index >= 0) { Model m = models.get(index); + if (m.isMarkedForLaterRecording() && !mark) { + models.remove(m); + } m.setMarkedForLaterRecording(mark); - models.remove(index); } else { models.add(model); }