From d8b0753796c0c999a26c7e81995f75e42407e8c2 Mon Sep 17 00:00:00 2001 From: rusefi Date: Sun, 7 Oct 2018 19:35:22 -0400 Subject: [PATCH] extracting method --- .../io/src/com/rusefi/io/ConnectionStatus.java | 14 ++++++++++++++ .../src/com/rusefi/ui/config/BaseConfigField.java | 15 +-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/java_console/io/src/com/rusefi/io/ConnectionStatus.java b/java_console/io/src/com/rusefi/io/ConnectionStatus.java index 6e6c224f60..128f45cb7b 100644 --- a/java_console/io/src/com/rusefi/io/ConnectionStatus.java +++ b/java_console/io/src/com/rusefi/io/ConnectionStatus.java @@ -22,6 +22,20 @@ public class ConnectionStatus { @NotNull private Value value = Value.NOT_CONNECTED; + public void executeOnceConnected(Runnable r) { + /* + * This would request initial value + */ + if (isConnected()) { + r.run(); + } else { + addListener(isConnected -> { + if (getValue() == Value.CONNECTED) + r.run(); + }); + } + } + public enum Value { NOT_CONNECTED, LOADING, diff --git a/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java b/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java index 6a085715bf..e8888440c5 100644 --- a/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java +++ b/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java @@ -25,20 +25,7 @@ public abstract class BaseConfigField { } protected void requestInitialValue(final Field field) { - /** - * This would request initial value - */ - if (ConnectionStatus.INSTANCE.isConnected()) { - processInitialValue(field); - } else { - ConnectionStatus.INSTANCE.addListener(new ConnectionStatus.Listener() { - @Override - public void onConnectionStatus(boolean isConnected) { - if (ConnectionStatus.INSTANCE.getValue() == ConnectionStatus.Value.CONNECTED) - processInitialValue(field); - } - }); - } + ConnectionStatus.INSTANCE.executeOnceConnected(() -> processInitialValue(field)); } private void processInitialValue(Field field) {