From eeeef57b8f5529b91aeac955eb4652802433402b Mon Sep 17 00:00:00 2001 From: crschnick Date: Sun, 23 Jun 2024 22:40:50 +0000 Subject: [PATCH] Reformat --- .../io/xpipe/app/beacon/AppBeaconCache.java | 6 ++- .../io/xpipe/app/beacon/AppBeaconServer.java | 5 ++- .../app/beacon/BeaconRequestHandler.java | 28 +++++++++----- .../io/xpipe/app/beacon/BeaconSession.java | 1 + .../java/io/xpipe/app/beacon/BlobManager.java | 3 +- .../app/beacon/impl/AskpassExchangeImpl.java | 7 ++-- .../impl/ConnectionQueryExchangeImpl.java | 7 +++- .../beacon/impl/DaemonFocusExchangeImpl.java | 3 +- .../beacon/impl/DaemonModeExchangeImpl.java | 6 +-- .../beacon/impl/DaemonOpenExchangeImpl.java | 6 +-- .../beacon/impl/DaemonStatusExchangeImpl.java | 3 +- .../beacon/impl/DaemonStopExchangeImpl.java | 3 +- .../impl/DaemonVersionExchangeImpl.java | 3 +- .../app/beacon/impl/FsBlobExchangeImpl.java | 7 ++-- .../app/beacon/impl/FsReadExchangeImpl.java | 11 ++++-- .../app/beacon/impl/FsScriptExchangeImpl.java | 8 +++- .../app/beacon/impl/FsWriteExchangeImpl.java | 5 ++- .../beacon/impl/HandshakeExchangeImpl.java | 6 +-- .../beacon/impl/ShellExecExchangeImpl.java | 3 +- .../beacon/impl/ShellStartExchangeImpl.java | 10 ++++- .../beacon/impl/ShellStopExchangeImpl.java | 3 +- .../impl/TerminalLaunchExchangeImpl.java | 6 +-- .../beacon/impl/TerminalWaitExchangeImpl.java | 5 +-- .../app/browser/BrowserBookmarkComp.java | 14 +++++-- .../browser/BrowserBookmarkHeaderComp.java | 17 ++++++--- .../io/xpipe/app/browser/BrowserNavBar.java | 2 +- .../app/browser/BrowserTransferComp.java | 5 ++- .../app/browser/fs/OpenFileSystemComp.java | 16 ++++---- .../browser/session/BrowserChooserComp.java | 3 +- .../browser/session/BrowserSessionComp.java | 36 ++++++++++-------- .../session/BrowserSessionTabsComp.java | 38 ++++++++++--------- .../java/io/xpipe/app/comp/AppLayoutComp.java | 1 + .../io/xpipe/app/comp/base/MarkdownComp.java | 4 +- .../xpipe/app/comp/base/SideMenuBarComp.java | 5 ++- .../app/comp/store/StoreCreationComp.java | 7 +++- .../xpipe/app/comp/store/StoreEntryComp.java | 1 - .../xpipe/app/comp/store/StoreNotesComp.java | 2 +- .../io/xpipe/app/comp/store/StoreSection.java | 15 +++++--- .../xpipe/app/comp/store/StoreViewState.java | 4 +- app/src/main/java/io/xpipe/app/core/App.java | 2 + .../xpipe/app/core/AppActionLinkDetector.java | 1 + .../io/xpipe/app/core/AppLayoutModel.java | 20 +++++++--- .../main/java/io/xpipe/app/core/AppTheme.java | 4 +- .../java/io/xpipe/app/core/mode/GuiMode.java | 2 +- .../xpipe/app/core/window/AppMainWindow.java | 4 +- .../app/core/window/AppWindowBounds.java | 1 + .../app/core/window/AppWindowHelper.java | 1 + .../app/core/window/ModifiedAlertStage.java | 8 ++-- .../xpipe/app/core/window/ModifiedStage.java | 8 +++- .../core/window/NativeWinWindowControl.java | 6 +-- .../app/fxcomps/impl/DataStoreChoiceComp.java | 7 +++- .../app/fxcomps/impl/PrettyImageComp.java | 7 ++-- .../xpipe/app/fxcomps/impl/PrettySvgComp.java | 7 ++-- .../java/io/xpipe/app/prefs/AppPrefs.java | 2 + .../xpipe/app/prefs/AppearanceCategory.java | 3 +- .../xpipe/app/prefs/CloseBehaviourAlert.java | 2 +- .../io/xpipe/app/storage/DataStoreEntry.java | 7 +--- .../io/xpipe/app/storage/StandardStorage.java | 4 +- .../io/xpipe/app/util/MarkdownHelper.java | 10 +++-- .../java/io/xpipe/app/util/SecretManager.java | 11 +++++- .../xpipe/app/util/SecretQueryProgress.java | 3 +- .../app/util/SecretRetrievalStrategy.java | 6 ++- app/src/main/java/module-info.java | 4 +- .../java/io/xpipe/beacon/BeaconInterface.java | 6 +-- .../java/io/xpipe/beacon/BeaconServer.java | 7 +++- .../io/xpipe/beacon/api/FsBlobExchange.java | 1 + .../io/xpipe/beacon/api/FsReadExchange.java | 2 + .../io/xpipe/beacon/api/FsScriptExchange.java | 2 + .../io/xpipe/beacon/api/FsWriteExchange.java | 3 ++ .../xpipe/beacon/api/ShellStartExchange.java | 4 ++ beacon/src/main/java/module-info.java | 3 +- .../io/xpipe/core/util/CoreJacksonModule.java | 22 ++++++----- .../base/service/CustomServiceGroupStore.java | 3 +- ext/base/src/main/java/module-info.java | 3 +- 74 files changed, 314 insertions(+), 187 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/beacon/AppBeaconCache.java b/app/src/main/java/io/xpipe/app/beacon/AppBeaconCache.java index 446e1b03b..d0889e95f 100644 --- a/app/src/main/java/io/xpipe/app/beacon/AppBeaconCache.java +++ b/app/src/main/java/io/xpipe/app/beacon/AppBeaconCache.java @@ -1,6 +1,7 @@ package io.xpipe.app.beacon; import io.xpipe.beacon.BeaconClientException; + import lombok.Value; import java.util.HashSet; @@ -13,7 +14,10 @@ public class AppBeaconCache { Set shellSessions = new HashSet<>(); public BeaconShellSession getShellSession(UUID uuid) throws BeaconClientException { - var found = shellSessions.stream().filter(beaconShellSession -> beaconShellSession.getEntry().getUuid().equals(uuid)).findFirst(); + var found = shellSessions.stream() + .filter(beaconShellSession -> + beaconShellSession.getEntry().getUuid().equals(uuid)) + .findFirst(); if (found.isEmpty()) { throw new BeaconClientException("No active shell session known for id " + uuid); } diff --git a/app/src/main/java/io/xpipe/app/beacon/AppBeaconServer.java b/app/src/main/java/io/xpipe/app/beacon/AppBeaconServer.java index 15cacdac0..e66f20bb1 100644 --- a/app/src/main/java/io/xpipe/app/beacon/AppBeaconServer.java +++ b/app/src/main/java/io/xpipe/app/beacon/AppBeaconServer.java @@ -1,7 +1,5 @@ package io.xpipe.app.beacon; -import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpServer; import io.xpipe.app.core.AppResources; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.TrackEvent; @@ -9,6 +7,9 @@ import io.xpipe.app.util.MarkdownHelper; import io.xpipe.beacon.BeaconConfig; import io.xpipe.beacon.BeaconInterface; import io.xpipe.core.util.XPipeInstallation; + +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpServer; import lombok.Getter; import java.io.IOException; diff --git a/app/src/main/java/io/xpipe/app/beacon/BeaconRequestHandler.java b/app/src/main/java/io/xpipe/app/beacon/BeaconRequestHandler.java index a118dbe89..f06b66c2c 100644 --- a/app/src/main/java/io/xpipe/app/beacon/BeaconRequestHandler.java +++ b/app/src/main/java/io/xpipe/app/beacon/BeaconRequestHandler.java @@ -1,7 +1,5 @@ package io.xpipe.app.beacon; -import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpHandler; import io.xpipe.app.core.mode.OperationMode; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.TrackEvent; @@ -9,6 +7,9 @@ import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.util.ThreadHelper; import io.xpipe.beacon.*; import io.xpipe.core.util.JacksonMapper; + +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; import lombok.SneakyThrows; import java.io.IOException; @@ -67,16 +68,22 @@ public class BeaconRequestHandler implements HttpHandler { } else { try (InputStream is = exchange.getRequestBody()) { var read = is.readAllBytes(); - var rawDataRequestClass = beaconInterface.getRequestClass().getDeclaredFields().length == 1 && - beaconInterface.getRequestClass().getDeclaredFields()[0].getType().equals(byte[].class); + var rawDataRequestClass = beaconInterface.getRequestClass().getDeclaredFields().length == 1 + && beaconInterface + .getRequestClass() + .getDeclaredFields()[0] + .getType() + .equals(byte[].class); if (!new String(read, StandardCharsets.US_ASCII).trim().startsWith("{") && rawDataRequestClass) { object = createRawDataRequest(beaconInterface, read); } else { var tree = JacksonMapper.getDefault().readTree(read); TrackEvent.trace("Parsed raw request:\n" + tree.toPrettyString()); - var emptyRequestClass = tree.isEmpty() && beaconInterface.getRequestClass().getDeclaredFields().length == 0; - object = emptyRequestClass ? createDefaultRequest(beaconInterface) : JacksonMapper.getDefault().treeToValue(tree, - beaconInterface.getRequestClass()); + var emptyRequestClass = tree.isEmpty() + && beaconInterface.getRequestClass().getDeclaredFields().length == 0; + object = emptyRequestClass + ? createDefaultRequest(beaconInterface) + : JacksonMapper.getDefault().treeToValue(tree, beaconInterface.getRequestClass()); TrackEvent.trace("Parsed request object:\n" + object); } } @@ -163,8 +170,11 @@ public class BeaconRequestHandler implements HttpHandler { c.setAccessible(true); var b = c.invoke(null); - var setMethod = Arrays.stream(b.getClass().getDeclaredMethods()).filter(method -> method.getParameterCount() == 1 && - method.getParameters()[0].getType().equals(byte[].class)).findFirst().orElseThrow(); + var setMethod = Arrays.stream(b.getClass().getDeclaredMethods()) + .filter(method -> method.getParameterCount() == 1 + && method.getParameters()[0].getType().equals(byte[].class)) + .findFirst() + .orElseThrow(); setMethod.invoke(b, (Object) s); var m = b.getClass().getDeclaredMethod("build"); diff --git a/app/src/main/java/io/xpipe/app/beacon/BeaconSession.java b/app/src/main/java/io/xpipe/app/beacon/BeaconSession.java index 38cec0f23..69c549147 100644 --- a/app/src/main/java/io/xpipe/app/beacon/BeaconSession.java +++ b/app/src/main/java/io/xpipe/app/beacon/BeaconSession.java @@ -1,6 +1,7 @@ package io.xpipe.app.beacon; import io.xpipe.beacon.BeaconClientInformation; + import lombok.Value; @Value diff --git a/app/src/main/java/io/xpipe/app/beacon/BlobManager.java b/app/src/main/java/io/xpipe/app/beacon/BlobManager.java index 73e51d5f6..8e973c865 100644 --- a/app/src/main/java/io/xpipe/app/beacon/BlobManager.java +++ b/app/src/main/java/io/xpipe/app/beacon/BlobManager.java @@ -3,6 +3,7 @@ package io.xpipe.app.beacon; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.util.ShellTemp; import io.xpipe.beacon.BeaconClientException; + import org.apache.commons.io.FileUtils; import java.io.ByteArrayInputStream; @@ -60,7 +61,7 @@ public class BlobManager { try (var fileOut = Files.newOutputStream(file)) { blob.transferTo(fileOut); } - fileBlobs.put(uuid,file); + fileBlobs.put(uuid, file); } public InputStream getBlob(UUID uuid) throws Exception { diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/AskpassExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/AskpassExchangeImpl.java index 74d1a66ea..9c6cd9e28 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/AskpassExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/AskpassExchangeImpl.java @@ -1,12 +1,13 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.util.AskpassAlert; import io.xpipe.app.util.SecretManager; import io.xpipe.app.util.SecretQueryState; import io.xpipe.beacon.BeaconClientException; import io.xpipe.beacon.api.AskpassExchange; +import com.sun.net.httpserver.HttpExchange; + public class AskpassExchangeImpl extends AskpassExchange { @Override @@ -33,8 +34,6 @@ public class AskpassExchangeImpl extends AskpassExchange { if (p.getState() != SecretQueryState.NORMAL) { throw new BeaconClientException(SecretQueryState.toErrorMessage(p.getState())); } - return Response.builder() - .value(secret.inPlace()) - .build(); + return Response.builder().value(secret.inPlace()).build(); } } diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/ConnectionQueryExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/ConnectionQueryExchangeImpl.java index 5d747beda..20662bae2 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/ConnectionQueryExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/ConnectionQueryExchangeImpl.java @@ -1,11 +1,12 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.storage.DataStorage; import io.xpipe.app.storage.DataStoreEntry; import io.xpipe.beacon.api.ConnectionQueryExchange; import io.xpipe.core.store.StorePath; +import com.sun.net.httpserver.HttpExchange; + import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; @@ -41,7 +42,9 @@ public class ConnectionQueryExchangeImpl extends ConnectionQueryExchange { continue; } - if (!typeMatcher.matcher(storeEntry.getProvider().getId().toLowerCase()).matches()) { + if (!typeMatcher + .matcher(storeEntry.getProvider().getId().toLowerCase()) + .matches()) { continue; } diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonFocusExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonFocusExchangeImpl.java index 1e1d51522..f673e0726 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonFocusExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonFocusExchangeImpl.java @@ -1,9 +1,10 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.core.mode.OperationMode; import io.xpipe.beacon.api.DaemonFocusExchange; +import com.sun.net.httpserver.HttpExchange; + public class DaemonFocusExchangeImpl extends DaemonFocusExchange { @Override diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonModeExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonModeExchangeImpl.java index 3e5779d16..238f64a19 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonModeExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonModeExchangeImpl.java @@ -1,14 +1,14 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.core.mode.OperationMode; import io.xpipe.beacon.BeaconClientException; import io.xpipe.beacon.api.DaemonModeExchange; +import com.sun.net.httpserver.HttpExchange; + public class DaemonModeExchangeImpl extends DaemonModeExchange { @Override - public Object handle(HttpExchange exchange, Request msg) - throws BeaconClientException { + public Object handle(HttpExchange exchange, Request msg) throws BeaconClientException { var mode = OperationMode.map(msg.getMode()); if (!mode.isSupported()) { throw new BeaconClientException("Unsupported mode: " + msg.getMode().getDisplayName() + ". Supported: " diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonOpenExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonOpenExchangeImpl.java index 06eee7871..82ef09a20 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonOpenExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonOpenExchangeImpl.java @@ -1,17 +1,17 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.core.mode.OperationMode; import io.xpipe.app.launcher.LauncherInput; import io.xpipe.app.util.PlatformState; import io.xpipe.beacon.BeaconServerException; import io.xpipe.beacon.api.DaemonOpenExchange; +import com.sun.net.httpserver.HttpExchange; + public class DaemonOpenExchangeImpl extends DaemonOpenExchange { @Override - public Object handle(HttpExchange exchange, Request msg) - throws BeaconServerException { + public Object handle(HttpExchange exchange, Request msg) throws BeaconServerException { if (msg.getArguments().isEmpty()) { if (!OperationMode.switchToSyncIfPossible(OperationMode.GUI)) { throw new BeaconServerException(PlatformState.getLastError()); diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStatusExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStatusExchangeImpl.java index a0fb7e07a..64405df62 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStatusExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStatusExchangeImpl.java @@ -1,9 +1,10 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.core.mode.OperationMode; import io.xpipe.beacon.api.DaemonStatusExchange; +import com.sun.net.httpserver.HttpExchange; + public class DaemonStatusExchangeImpl extends DaemonStatusExchange { @Override diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStopExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStopExchangeImpl.java index 720e007d8..9c42a81e7 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStopExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonStopExchangeImpl.java @@ -1,10 +1,11 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.core.mode.OperationMode; import io.xpipe.app.util.ThreadHelper; import io.xpipe.beacon.api.DaemonStopExchange; +import com.sun.net.httpserver.HttpExchange; + public class DaemonStopExchangeImpl extends DaemonStopExchange { @Override diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonVersionExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonVersionExchangeImpl.java index 4c2a6339c..054ea1552 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/DaemonVersionExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/DaemonVersionExchangeImpl.java @@ -1,9 +1,10 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.core.AppProperties; import io.xpipe.beacon.api.DaemonVersionExchange; +import com.sun.net.httpserver.HttpExchange; + public class DaemonVersionExchangeImpl extends DaemonVersionExchange { @Override diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/FsBlobExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/FsBlobExchangeImpl.java index 0254c3a1f..2c404ceac 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/FsBlobExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/FsBlobExchangeImpl.java @@ -1,8 +1,9 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.BlobManager; import io.xpipe.beacon.api.FsBlobExchange; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; import java.util.UUID; @@ -16,9 +17,9 @@ public class FsBlobExchangeImpl extends FsBlobExchange { var size = exchange.getRequestBody().available(); if (size > 100_000_000) { - BlobManager.get().store(id,exchange.getRequestBody()); + BlobManager.get().store(id, exchange.getRequestBody()); } else { - BlobManager.get().store(id,exchange.getRequestBody().readAllBytes()); + BlobManager.get().store(id, exchange.getRequestBody().readAllBytes()); } return Response.builder().blob(id).build(); } diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/FsReadExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/FsReadExchangeImpl.java index 7fad3055e..972b9f3a9 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/FsReadExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/FsReadExchangeImpl.java @@ -1,12 +1,13 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.AppBeaconServer; import io.xpipe.app.beacon.BlobManager; import io.xpipe.app.util.FixedSizeInputStream; import io.xpipe.beacon.BeaconClientException; import io.xpipe.beacon.api.FsReadExchange; import io.xpipe.core.store.ConnectionFileSystem; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; import java.io.BufferedInputStream; @@ -29,15 +30,17 @@ public class FsReadExchangeImpl extends FsReadExchange { if (size > 100_000_000) { var file = BlobManager.get().newBlobFile(); try (var in = fs.openInput(msg.getPath().toString())) { - try (var fileOut = Files.newOutputStream(file.resolve(msg.getPath().getFileName())); - var fixedIn = new FixedSizeInputStream(new BufferedInputStream(in), size)) { + try (var fileOut = + Files.newOutputStream(file.resolve(msg.getPath().getFileName())); + var fixedIn = new FixedSizeInputStream(new BufferedInputStream(in), size)) { fixedIn.transferTo(fileOut); } in.transferTo(OutputStream.nullOutputStream()); } exchange.sendResponseHeaders(200, size); - try (var fileIn = Files.newInputStream(file); var out = exchange.getResponseBody()) { + try (var fileIn = Files.newInputStream(file); + var out = exchange.getResponseBody()) { fileIn.transferTo(out); } return Response.builder().build(); diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/FsScriptExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/FsScriptExchangeImpl.java index 7ef19948f..6d18435b5 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/FsScriptExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/FsScriptExchangeImpl.java @@ -1,10 +1,11 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.AppBeaconServer; import io.xpipe.app.beacon.BlobManager; import io.xpipe.app.util.ScriptHelper; import io.xpipe.beacon.api.FsScriptExchange; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; import java.nio.charset.StandardCharsets; @@ -20,7 +21,10 @@ public class FsScriptExchangeImpl extends FsScriptExchange { data = new String(in.readAllBytes(), StandardCharsets.UTF_8); } var file = ScriptHelper.getExecScriptFile(shell.getControl()); - shell.getControl().getShellDialect().createScriptTextFileWriteCommand(shell.getControl(), data, file.toString()).execute(); + shell.getControl() + .getShellDialect() + .createScriptTextFileWriteCommand(shell.getControl(), data, file.toString()) + .execute(); return Response.builder().path(file).build(); } } diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/FsWriteExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/FsWriteExchangeImpl.java index 21cfe3d4b..d3207064c 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/FsWriteExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/FsWriteExchangeImpl.java @@ -1,10 +1,11 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.AppBeaconServer; import io.xpipe.app.beacon.BlobManager; import io.xpipe.beacon.api.FsWriteExchange; import io.xpipe.core.store.ConnectionFileSystem; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; public class FsWriteExchangeImpl extends FsWriteExchange { @@ -15,7 +16,7 @@ public class FsWriteExchangeImpl extends FsWriteExchange { var shell = AppBeaconServer.get().getCache().getShellSession(msg.getConnection()); var fs = new ConnectionFileSystem(shell.getControl()); try (var in = BlobManager.get().getBlob(msg.getBlob()); - var os = fs.openOutput(msg.getPath().toString(), in.available())) { + var os = fs.openOutput(msg.getPath().toString(), in.available())) { in.transferTo(os); } return Response.builder().build(); diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/HandshakeExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/HandshakeExchangeImpl.java index 0e46ce94e..0e0d0d34a 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/HandshakeExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/HandshakeExchangeImpl.java @@ -1,6 +1,5 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.AppBeaconServer; import io.xpipe.app.beacon.BeaconSession; import io.xpipe.app.prefs.AppPrefs; @@ -8,6 +7,8 @@ import io.xpipe.beacon.BeaconAuthMethod; import io.xpipe.beacon.BeaconClientException; import io.xpipe.beacon.api.HandshakeExchange; +import com.sun.net.httpserver.HttpExchange; + import java.util.UUID; public class HandshakeExchangeImpl extends HandshakeExchange { @@ -18,8 +19,7 @@ public class HandshakeExchangeImpl extends HandshakeExchange { } @Override - public Object handle(HttpExchange exchange, Request body) - throws BeaconClientException { + public Object handle(HttpExchange exchange, Request body) throws BeaconClientException { if (!checkAuth(body.getAuth())) { throw new BeaconClientException("Authentication failed"); } diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/ShellExecExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/ShellExecExchangeImpl.java index 6ff63bcae..0cc843f2d 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/ShellExecExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/ShellExecExchangeImpl.java @@ -1,8 +1,9 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.AppBeaconServer; import io.xpipe.beacon.api.ShellExecExchange; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; import java.util.concurrent.atomic.AtomicReference; diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/ShellStartExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/ShellStartExchangeImpl.java index 54cd08959..9d05484a6 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/ShellStartExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/ShellStartExchangeImpl.java @@ -1,12 +1,13 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.AppBeaconServer; import io.xpipe.app.beacon.BeaconShellSession; import io.xpipe.app.storage.DataStorage; import io.xpipe.beacon.BeaconClientException; import io.xpipe.beacon.api.ShellStartExchange; import io.xpipe.core.store.ShellStore; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; public class ShellStartExchangeImpl extends ShellStartExchange { @@ -30,6 +31,11 @@ public class ShellStartExchangeImpl extends ShellStartExchange { if (existing.isEmpty()) { AppBeaconServer.get().getCache().getShellSessions().add(new BeaconShellSession(e, control)); } - return Response.builder().shellDialect(control.getShellDialect()).osType(control.getOsType()).osName(control.getOsName()).temp(control.getSystemTemporaryDirectory()).build(); + return Response.builder() + .shellDialect(control.getShellDialect()) + .osType(control.getOsType()) + .osName(control.getOsName()) + .temp(control.getSystemTemporaryDirectory()) + .build(); } } diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/ShellStopExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/ShellStopExchangeImpl.java index ef349b72e..5329275e6 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/ShellStopExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/ShellStopExchangeImpl.java @@ -1,8 +1,9 @@ package io.xpipe.app.beacon.impl; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.app.beacon.AppBeaconServer; import io.xpipe.beacon.api.ShellStopExchange; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; public class ShellStopExchangeImpl extends ShellStopExchange { diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/TerminalLaunchExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/TerminalLaunchExchangeImpl.java index f7ea8d7d5..afb39bf33 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/TerminalLaunchExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/TerminalLaunchExchangeImpl.java @@ -2,17 +2,13 @@ package io.xpipe.app.beacon.impl; import io.xpipe.app.util.TerminalLauncherManager; import io.xpipe.beacon.BeaconClientException; -import io.xpipe.beacon.BeaconServerException; import io.xpipe.beacon.api.TerminalLaunchExchange; import com.sun.net.httpserver.HttpExchange; -import java.io.IOException; - public class TerminalLaunchExchangeImpl extends TerminalLaunchExchange { @Override - public Object handle(HttpExchange exchange, Request msg) - throws BeaconClientException { + public Object handle(HttpExchange exchange, Request msg) throws BeaconClientException { var r = TerminalLauncherManager.performLaunch(msg.getRequest()); return Response.builder().targetFile(r).build(); } diff --git a/app/src/main/java/io/xpipe/app/beacon/impl/TerminalWaitExchangeImpl.java b/app/src/main/java/io/xpipe/app/beacon/impl/TerminalWaitExchangeImpl.java index ca0db72fa..d486e0274 100644 --- a/app/src/main/java/io/xpipe/app/beacon/impl/TerminalWaitExchangeImpl.java +++ b/app/src/main/java/io/xpipe/app/beacon/impl/TerminalWaitExchangeImpl.java @@ -7,12 +7,9 @@ import io.xpipe.beacon.api.TerminalWaitExchange; import com.sun.net.httpserver.HttpExchange; -import java.io.IOException; - public class TerminalWaitExchangeImpl extends TerminalWaitExchange { @Override - public Object handle(HttpExchange exchange, Request msg) - throws BeaconClientException, BeaconServerException { + public Object handle(HttpExchange exchange, Request msg) throws BeaconClientException, BeaconServerException { TerminalLauncherManager.waitForCompletion(msg.getRequest()); return Response.builder().build(); } diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkComp.java index 01df797dd..c42a8490d 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkComp.java @@ -6,6 +6,7 @@ import io.xpipe.app.fxcomps.CompStructure; import io.xpipe.app.fxcomps.SimpleComp; import io.xpipe.app.fxcomps.util.PlatformThread; import io.xpipe.app.storage.DataStoreEntry; + import javafx.beans.binding.Bindings; import javafx.beans.property.*; import javafx.beans.value.ObservableValue; @@ -23,13 +24,14 @@ public final class BrowserBookmarkComp extends SimpleComp { private final Predicate applicable; private final BiConsumer action; private final Property category; - private final Property filter ; + private final Property filter; public BrowserBookmarkComp( ObservableValue selected, Predicate applicable, - BiConsumer action, Property category, Property filter - ) { + BiConsumer action, + Property category, + Property filter) { this.selected = selected; this.applicable = applicable; this.action = action; @@ -62,7 +64,11 @@ public final class BrowserBookmarkComp extends SimpleComp { var section = new StoreSectionMiniComp( StoreSection.createTopLevel( - StoreViewState.get().getAllEntries(), this::filter, filter, category, StoreViewState.get().getEntriesListUpdateObservable()), + StoreViewState.get().getAllEntries(), + this::filter, + filter, + category, + StoreViewState.get().getEntriesListUpdateObservable()), augment, entryWrapper -> action.accept(entryWrapper, busy), true); diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkHeaderComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkHeaderComp.java index 53b25354f..b07a05869 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkHeaderComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkHeaderComp.java @@ -1,6 +1,5 @@ package io.xpipe.app.browser; -import atlantafx.base.theme.Styles; import io.xpipe.app.comp.store.StoreCategoryWrapper; import io.xpipe.app.comp.store.StoreViewState; import io.xpipe.app.core.AppFont; @@ -8,10 +7,13 @@ import io.xpipe.app.fxcomps.SimpleComp; import io.xpipe.app.fxcomps.impl.FilterComp; import io.xpipe.app.fxcomps.impl.HorizontalComp; import io.xpipe.app.util.DataStoreCategoryChoiceComp; + import javafx.beans.property.Property; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import javafx.scene.layout.Region; + +import atlantafx.base.theme.Styles; import lombok.Getter; import java.util.List; @@ -19,7 +21,8 @@ import java.util.List; @Getter public final class BrowserBookmarkHeaderComp extends SimpleComp { - private final Property category = new SimpleObjectProperty<>(StoreViewState.get().getActiveCategory().getValue()); + private final Property category = + new SimpleObjectProperty<>(StoreViewState.get().getActiveCategory().getValue()); private final Property filter = new SimpleStringProperty(); @Override @@ -30,13 +33,17 @@ public final class BrowserBookmarkHeaderComp extends SimpleComp { this.category) .styleClass(Styles.LEFT_PILL) .apply(struc -> AppFont.medium(struc.get())); - var filter = new FilterComp(this.filter).styleClass(Styles.RIGHT_PILL).apply(struc -> AppFont.medium(struc.get())).hgrow(); + var filter = new FilterComp(this.filter) + .styleClass(Styles.RIGHT_PILL) + .apply(struc -> AppFont.medium(struc.get())) + .hgrow(); var top = new HorizontalComp(List.of(category, filter)) .apply(struc -> struc.get().setFillHeight(true)) .apply(struc -> { - ((Region) struc.get().getChildren().get(0)).prefHeightProperty().bind( - ((Region) struc.get().getChildren().get(1)).heightProperty()); + ((Region) struc.get().getChildren().get(0)) + .prefHeightProperty() + .bind(((Region) struc.get().getChildren().get(1)).heightProperty()); }) .styleClass("bookmarks-header") .createRegion(); diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserNavBar.java b/app/src/main/java/io/xpipe/app/browser/BrowserNavBar.java index d089dd81c..39290d0e0 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserNavBar.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserNavBar.java @@ -28,9 +28,9 @@ import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.layout.Region; import javafx.scene.layout.StackPane; +import javafx.scene.shape.Rectangle; import atlantafx.base.theme.Styles; -import javafx.scene.shape.Rectangle; import org.kordamp.ikonli.javafx.FontIcon; public class BrowserNavBar extends Comp { diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java index c27b908a7..6a7bedf3e 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java @@ -10,6 +10,7 @@ import io.xpipe.app.fxcomps.augment.DragOverPseudoClassAugment; import io.xpipe.app.fxcomps.impl.*; import io.xpipe.app.fxcomps.util.DerivedObservableList; import io.xpipe.app.fxcomps.util.PlatformThread; + import javafx.beans.binding.Bindings; import javafx.collections.FXCollections; import javafx.geometry.Insets; @@ -18,6 +19,7 @@ import javafx.scene.input.Dragboard; import javafx.scene.input.TransferMode; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Region; + import org.kordamp.ikonli.javafx.FontIcon; import java.io.File; @@ -100,7 +102,8 @@ public class BrowserTransferComp extends SimpleComp { return p; }); - var listBox = new VerticalComp(List.of(list, dragNotice)).padding(new Insets(10, 10, 5, 10)) + var listBox = new VerticalComp(List.of(list, dragNotice)) + .padding(new Insets(10, 10, 5, 10)) .apply(struc -> struc.get().setMinHeight(200)) .apply(struc -> struc.get().setMaxHeight(200)); var stack = LoadingOverlayComp.noProgress( diff --git a/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemComp.java b/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemComp.java index 1005df942..a75394276 100644 --- a/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemComp.java +++ b/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemComp.java @@ -163,13 +163,15 @@ public class OpenFileSystemComp extends SimpleComp { var statusBar = new BrowserStatusBarComp(model); fileListElements.add(statusBar); } - var fileList = new VerticalComp(fileListElements).styleClass("browser-content").apply(struc -> { - struc.get().focusedProperty().addListener((observable, oldValue, newValue) -> { - if (newValue) { - struc.get().getChildren().getFirst().requestFocus(); - } - }); - }); + var fileList = new VerticalComp(fileListElements) + .styleClass("browser-content") + .apply(struc -> { + struc.get().focusedProperty().addListener((observable, oldValue, newValue) -> { + if (newValue) { + struc.get().getChildren().getFirst().requestFocus(); + } + }); + }); var home = new BrowserOverviewComp(model).styleClass("browser-content"); var stack = new MultiContentComp(Map.of( diff --git a/app/src/main/java/io/xpipe/app/browser/session/BrowserChooserComp.java b/app/src/main/java/io/xpipe/app/browser/session/BrowserChooserComp.java index 32636cf2f..d21de2068 100644 --- a/app/src/main/java/io/xpipe/app/browser/session/BrowserChooserComp.java +++ b/app/src/main/java/io/xpipe/app/browser/session/BrowserChooserComp.java @@ -98,8 +98,7 @@ public class BrowserChooserComp extends SimpleComp { var bookmarkTopBar = new BrowserBookmarkHeaderComp(); var bookmarksList = new BrowserBookmarkComp( - BindingsHelper.map( - model.getSelectedEntry(), v -> v.getEntry().get()), + BindingsHelper.map(model.getSelectedEntry(), v -> v.getEntry().get()), applicable, action, bookmarkTopBar.getCategory(), diff --git a/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionComp.java b/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionComp.java index c868b2b8c..ae37e2c6b 100644 --- a/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionComp.java +++ b/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionComp.java @@ -13,6 +13,7 @@ import io.xpipe.app.fxcomps.util.BindingsHelper; import io.xpipe.app.fxcomps.util.PlatformThread; import io.xpipe.app.util.ThreadHelper; import io.xpipe.core.store.ShellStore; + import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; @@ -66,21 +67,22 @@ public class BrowserSessionComp extends SimpleComp { var bookmarkTopBar = new BrowserBookmarkHeaderComp(); var bookmarksList = new BrowserBookmarkComp( - BindingsHelper.map( - model.getSelectedEntry(), v -> v.getEntry().get()), - applicable, - action, - bookmarkTopBar.getCategory(), - bookmarkTopBar.getFilter()); + BindingsHelper.map(model.getSelectedEntry(), v -> v.getEntry().get()), + applicable, + action, + bookmarkTopBar.getCategory(), + bookmarkTopBar.getFilter()); var bookmarksContainer = new StackComp(List.of(bookmarksList)).styleClass("bookmarks-container"); - bookmarksContainer.apply(struc -> { - var rec = new Rectangle(); - rec.widthProperty().bind(struc.get().widthProperty()); - rec.heightProperty().bind(struc.get().heightProperty()); - rec.setArcHeight(7); - rec.setArcWidth(7); - struc.get().getChildren().getFirst().setClip(rec); - }).vgrow(); + bookmarksContainer + .apply(struc -> { + var rec = new Rectangle(); + rec.widthProperty().bind(struc.get().widthProperty()); + rec.heightProperty().bind(struc.get().heightProperty()); + rec.setArcHeight(7); + rec.setArcWidth(7); + struc.get().getChildren().getFirst().setClip(rec); + }) + .vgrow(); var localDownloadStage = new BrowserTransferComp(model.getLocalTransfersStage()) .hide(PlatformThread.sync(Bindings.createBooleanBinding( () -> { @@ -94,10 +96,12 @@ public class BrowserSessionComp extends SimpleComp { model.getSelectedEntry()))); localDownloadStage.prefHeight(200); localDownloadStage.maxHeight(200); - var vertical = new VerticalComp(List.of(bookmarkTopBar, bookmarksContainer, localDownloadStage)).styleClass("left"); + var vertical = + new VerticalComp(List.of(bookmarkTopBar, bookmarksContainer, localDownloadStage)).styleClass("left"); var split = new SimpleDoubleProperty(); - var tabs = new BrowserSessionTabsComp(model, split).apply(struc -> struc.get().setViewOrder(1)) + var tabs = new BrowserSessionTabsComp(model, split) + .apply(struc -> struc.get().setViewOrder(1)) .apply(struc -> struc.get().setPickOnBounds(false)); var splitPane = new SideSplitPaneComp(vertical, tabs) .withInitialWidth(AppLayoutModel.get().getSavedState().getBrowserConnectionsWidth()) diff --git a/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionTabsComp.java b/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionTabsComp.java index c19cb3e0e..81a7b19ce 100644 --- a/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionTabsComp.java +++ b/app/src/main/java/io/xpipe/app/browser/session/BrowserSessionTabsComp.java @@ -71,28 +71,30 @@ public class BrowserSessionTabsComp extends SimpleComp { Styles.toggleStyleClass(tabs, TabPane.STYLE_CLASS_FLOATING); toggleStyleClass(tabs, DENSE); - tabs.skinProperty().subscribe(newValue -> { - if (newValue != null) { - Platform.runLater(() -> { - tabs.setClip(null); - tabs.setPickOnBounds(false); - tabs.lookupAll(".tab-header-area").forEach(node -> { - node.setClip(null); - node.setPickOnBounds(false); - }); - tabs.lookupAll(".headers-region").forEach(node -> { - node.setClip(null); - node.setPickOnBounds(false); - }); + if (newValue != null) { + Platform.runLater(() -> { + tabs.setClip(null); + tabs.setPickOnBounds(false); + tabs.lookupAll(".tab-header-area").forEach(node -> { + node.setClip(null); + node.setPickOnBounds(false); + }); + tabs.lookupAll(".headers-region").forEach(node -> { + node.setClip(null); + node.setPickOnBounds(false); + }); - Region headerArea = (Region) tabs.lookup(".tab-header-area"); - headerArea.paddingProperty().bind(Bindings.createObjectBinding(() -> new Insets(0, 0, 0, -leftPadding.get() + 2), leftPadding)); - }); - } + Region headerArea = (Region) tabs.lookup(".tab-header-area"); + headerArea + .paddingProperty() + .bind(Bindings.createObjectBinding( + () -> new Insets(0, 0, 0, -leftPadding.get() + 2), leftPadding)); }); + } + }); - var map = new HashMap, Tab>(); + var map = new HashMap, Tab>(); // Restore state model.getSessionEntries().forEach(v -> { diff --git a/app/src/main/java/io/xpipe/app/comp/AppLayoutComp.java b/app/src/main/java/io/xpipe/app/comp/AppLayoutComp.java index b227d1705..695d2d44a 100644 --- a/app/src/main/java/io/xpipe/app/comp/AppLayoutComp.java +++ b/app/src/main/java/io/xpipe/app/comp/AppLayoutComp.java @@ -9,6 +9,7 @@ import io.xpipe.app.fxcomps.CompStructure; import io.xpipe.app.fxcomps.SimpleCompStructure; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.storage.DataStorage; + import javafx.beans.binding.Bindings; import javafx.beans.value.ObservableValue; import javafx.scene.control.ButtonBase; diff --git a/app/src/main/java/io/xpipe/app/comp/base/MarkdownComp.java b/app/src/main/java/io/xpipe/app/comp/base/MarkdownComp.java index 28dd85a02..6fe34fed9 100644 --- a/app/src/main/java/io/xpipe/app/comp/base/MarkdownComp.java +++ b/app/src/main/java/io/xpipe/app/comp/base/MarkdownComp.java @@ -54,7 +54,9 @@ public class MarkdownComp extends Comp> { .setUserDataDirectory( AppProperties.get().getDataDir().resolve("webview").toFile()); wv.setPageFill(Color.TRANSPARENT); - var theme = AppPrefs.get() != null && AppPrefs.get().theme.getValue() != null && AppPrefs.get().theme.getValue().isDark() + var theme = AppPrefs.get() != null + && AppPrefs.get().theme.getValue() != null + && AppPrefs.get().theme.getValue().isDark() ? "misc/github-markdown-dark.css" : "misc/github-markdown-light.css"; var url = AppResources.getResourceURL(AppResources.XPIPE_MODULE, theme).orElseThrow(); diff --git a/app/src/main/java/io/xpipe/app/comp/base/SideMenuBarComp.java b/app/src/main/java/io/xpipe/app/comp/base/SideMenuBarComp.java index 6da9967ae..9ea741ba4 100644 --- a/app/src/main/java/io/xpipe/app/comp/base/SideMenuBarComp.java +++ b/app/src/main/java/io/xpipe/app/comp/base/SideMenuBarComp.java @@ -13,6 +13,7 @@ import io.xpipe.app.fxcomps.util.PlatformThread; import io.xpipe.app.update.UpdateAvailableAlert; import io.xpipe.app.update.XPipeDistributionType; import io.xpipe.app.util.Hyperlinks; + import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.beans.property.Property; @@ -159,8 +160,8 @@ public class SideMenuBarComp extends Comp> { { var b = new IconButtonComp( "mdi2c-code-json", - () -> Hyperlinks.open("http://localhost:" - + AppBeaconServer.get().getPort())) + () -> Hyperlinks.open( + "http://localhost:" + AppBeaconServer.get().getPort())) .tooltipKey("api") .apply(simpleBorders) .accessibleTextKey("api"); diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java index 387a146cc..cb3391141 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java @@ -137,8 +137,11 @@ public class StoreCreationComp extends DialogComp { } // Don't use the all connections category - if (targetCategory.equals(DataStorage.get().getAllConnectionsCategory().getUuid())) { - targetCategory = DataStorage.get().getDefaultConnectionsCategory().getUuid(); + if (targetCategory.equals( + DataStorage.get().getAllConnectionsCategory().getUuid())) { + targetCategory = DataStorage.get() + .getDefaultConnectionsCategory() + .getUuid(); } return DataStoreEntry.createNew( diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java index b5ede20d8..117f95b36 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java @@ -405,7 +405,6 @@ public abstract class StoreEntryComp extends SimpleComp { } order.getItems().add(top); - var bottom = new MenuItem(AppI18n.get("stickToBottom"), new FontIcon("mdi2o-order-bool-ascending")); bottom.setOnAction(event -> { wrapper.setOrder(DataStoreEntry.Order.BOTTOM); diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreNotesComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreNotesComp.java index 70d4f3d0f..41ebf9b28 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreNotesComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreNotesComp.java @@ -16,9 +16,9 @@ import javafx.beans.property.Property; import javafx.beans.property.SimpleStringProperty; import javafx.event.ActionEvent; import javafx.scene.control.Button; +import javafx.scene.paint.Color; import atlantafx.base.controls.Popover; -import javafx.scene.paint.Color; import java.util.List; import java.util.concurrent.atomic.AtomicReference; diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreSection.java b/app/src/main/java/io/xpipe/app/comp/store/StoreSection.java index 4b194dad5..b2527bf91 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreSection.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreSection.java @@ -6,12 +6,14 @@ import io.xpipe.app.fxcomps.util.DerivedObservableList; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.storage.DataStorage; import io.xpipe.app.storage.DataStoreEntry; + import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ObservableBooleanValue; import javafx.beans.value.ObservableIntegerValue; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; + import lombok.Value; import java.util.ArrayList; @@ -61,7 +63,8 @@ public class StoreSection { } private static DerivedObservableList sorted( - DerivedObservableList list, ObservableValue category, + DerivedObservableList list, + ObservableValue category, ObservableIntegerValue updateObservable) { if (category == null) { return list; @@ -112,16 +115,15 @@ public class StoreSection { Predicate entryFilter, ObservableValue filterString, ObservableValue category, - ObservableIntegerValue updateObservable - ) { + ObservableIntegerValue updateObservable) { var topLevel = all.filtered( section -> { return DataStorage.get().isRootEntry(section.getEntry()); }, category, updateObservable); - var cached = topLevel.mapped( - storeEntryWrapper -> create(List.of(), storeEntryWrapper, 1, all, entryFilter, filterString, category, updateObservable)); + var cached = topLevel.mapped(storeEntryWrapper -> + create(List.of(), storeEntryWrapper, 1, all, entryFilter, filterString, category, updateObservable)); var ordered = sorted(cached, category, updateObservable); var shown = ordered.filtered( section -> { @@ -178,7 +180,8 @@ public class StoreSection { updateObservable); var l = new ArrayList<>(parents); l.add(e); - var cached = allChildren.mapped(c -> create(l, c, depth + 1, all, entryFilter, filterString, category, updateObservable)); + var cached = allChildren.mapped( + c -> create(l, c, depth + 1, all, entryFilter, filterString, category, updateObservable)); var ordered = sorted(cached, category, updateObservable); var filtered = ordered.filtered( section -> { diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreViewState.java b/app/src/main/java/io/xpipe/app/comp/store/StoreViewState.java index a5914b4c4..9dcb38788 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreViewState.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreViewState.java @@ -82,8 +82,8 @@ public class StoreViewState { private void initSections() { try { - currentTopLevelSection = - StoreSection.createTopLevel(allEntries, storeEntryWrapper -> true, filter, activeCategory, entriesListUpdateObservable); + currentTopLevelSection = StoreSection.createTopLevel( + allEntries, storeEntryWrapper -> true, filter, activeCategory, entriesListUpdateObservable); } catch (Exception exception) { currentTopLevelSection = new StoreSection( null, diff --git a/app/src/main/java/io/xpipe/app/core/App.java b/app/src/main/java/io/xpipe/app/core/App.java index a159fa684..b3c7912ea 100644 --- a/app/src/main/java/io/xpipe/app/core/App.java +++ b/app/src/main/java/io/xpipe/app/core/App.java @@ -8,9 +8,11 @@ import io.xpipe.app.issue.TrackEvent; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.update.XPipeDistributionType; import io.xpipe.app.util.LicenseProvider; + import javafx.application.Application; import javafx.beans.binding.Bindings; import javafx.stage.Stage; + import lombok.Getter; import lombok.SneakyThrows; diff --git a/app/src/main/java/io/xpipe/app/core/AppActionLinkDetector.java b/app/src/main/java/io/xpipe/app/core/AppActionLinkDetector.java index a960cf7d9..1fd624bbe 100644 --- a/app/src/main/java/io/xpipe/app/core/AppActionLinkDetector.java +++ b/app/src/main/java/io/xpipe/app/core/AppActionLinkDetector.java @@ -6,6 +6,7 @@ import io.xpipe.app.launcher.LauncherInput; import javafx.scene.control.Alert; import javafx.scene.input.Clipboard; import javafx.scene.input.DataFormat; + import lombok.Setter; import java.util.List; diff --git a/app/src/main/java/io/xpipe/app/core/AppLayoutModel.java b/app/src/main/java/io/xpipe/app/core/AppLayoutModel.java index af806338b..9b0ebff0f 100644 --- a/app/src/main/java/io/xpipe/app/core/AppLayoutModel.java +++ b/app/src/main/java/io/xpipe/app/core/AppLayoutModel.java @@ -10,10 +10,10 @@ import io.xpipe.app.util.LicenseProvider; import javafx.beans.property.Property; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.value.ObservableValue; - import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; + import lombok.Builder; import lombok.Data; import lombok.Getter; @@ -74,13 +74,23 @@ public class AppLayoutModel { new Entry( AppI18n.observable("browser"), "mdi2f-file-cabinet", - new BrowserSessionComp(BrowserSessionModel.DEFAULT), new KeyCodeCombination(KeyCode.DIGIT1, KeyCombination.CONTROL_DOWN)), - new Entry(AppI18n.observable("connections"), "mdi2c-connection", new StoreLayoutComp(), new KeyCodeCombination(KeyCode.DIGIT2, KeyCombination.CONTROL_DOWN)), - new Entry(AppI18n.observable("settings"), "mdsmz-miscellaneous_services", new AppPrefsComp(), new KeyCodeCombination(KeyCode.DIGIT3, KeyCombination.CONTROL_DOWN)), + new BrowserSessionComp(BrowserSessionModel.DEFAULT), + new KeyCodeCombination(KeyCode.DIGIT1, KeyCombination.CONTROL_DOWN)), + new Entry( + AppI18n.observable("connections"), + "mdi2c-connection", + new StoreLayoutComp(), + new KeyCodeCombination(KeyCode.DIGIT2, KeyCombination.CONTROL_DOWN)), + new Entry( + AppI18n.observable("settings"), + "mdsmz-miscellaneous_services", + new AppPrefsComp(), + new KeyCodeCombination(KeyCode.DIGIT3, KeyCombination.CONTROL_DOWN)), new Entry( AppI18n.observable("explorePlans"), "mdi2p-professional-hexagon", - LicenseProvider.get().overviewPage(), null))); + LicenseProvider.get().overviewPage(), + null))); return l; } diff --git a/app/src/main/java/io/xpipe/app/core/AppTheme.java b/app/src/main/java/io/xpipe/app/core/AppTheme.java index 1ace6745c..4ac460cef 100644 --- a/app/src/main/java/io/xpipe/app/core/AppTheme.java +++ b/app/src/main/java/io/xpipe/app/core/AppTheme.java @@ -1,6 +1,5 @@ package io.xpipe.app.core; -import atlantafx.base.theme.*; import io.xpipe.app.core.window.AppMainWindow; import io.xpipe.app.ext.PrefsChoiceValue; import io.xpipe.app.fxcomps.util.PlatformThread; @@ -8,6 +7,7 @@ import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.TrackEvent; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.core.process.OsType; + import javafx.animation.Interpolator; import javafx.animation.KeyFrame; import javafx.animation.KeyValue; @@ -23,6 +23,8 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.Pane; import javafx.stage.Stage; import javafx.util.Duration; + +import atlantafx.base.theme.*; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.SneakyThrows; diff --git a/app/src/main/java/io/xpipe/app/core/mode/GuiMode.java b/app/src/main/java/io/xpipe/app/core/mode/GuiMode.java index 4cc8238f9..aad069cbb 100644 --- a/app/src/main/java/io/xpipe/app/core/mode/GuiMode.java +++ b/app/src/main/java/io/xpipe/app/core/mode/GuiMode.java @@ -4,8 +4,8 @@ import io.xpipe.app.browser.file.LocalFileSystem; import io.xpipe.app.browser.icon.FileIconManager; import io.xpipe.app.core.App; import io.xpipe.app.core.AppGreetings; -import io.xpipe.app.core.window.AppMainWindow; import io.xpipe.app.core.check.AppPtbCheck; +import io.xpipe.app.core.window.AppMainWindow; import io.xpipe.app.fxcomps.util.PlatformThread; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.TrackEvent; diff --git a/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java b/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java index 3cd4b1efa..b7eab1b76 100644 --- a/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java +++ b/app/src/main/java/io/xpipe/app/core/window/AppMainWindow.java @@ -11,6 +11,7 @@ import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.prefs.CloseBehaviourAlert; import io.xpipe.app.util.ThreadHelper; import io.xpipe.core.process.OsType; + import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.geometry.Rectangle2D; @@ -22,17 +23,18 @@ import javafx.scene.paint.Color; import javafx.stage.Screen; import javafx.stage.Stage; import javafx.stage.StageStyle; + import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.extern.jackson.Jacksonized; -import javax.imageio.ImageIO; import java.io.IOException; import java.nio.file.Path; import java.time.Duration; import java.time.Instant; import java.time.temporal.ChronoUnit; +import javax.imageio.ImageIO; public class AppMainWindow { diff --git a/app/src/main/java/io/xpipe/app/core/window/AppWindowBounds.java b/app/src/main/java/io/xpipe/app/core/window/AppWindowBounds.java index 5e90e6227..73fdd7f22 100644 --- a/app/src/main/java/io/xpipe/app/core/window/AppWindowBounds.java +++ b/app/src/main/java/io/xpipe/app/core/window/AppWindowBounds.java @@ -2,6 +2,7 @@ package io.xpipe.app.core.window; import io.xpipe.app.core.App; import io.xpipe.core.process.OsType; + import javafx.geometry.Rectangle2D; import javafx.stage.Screen; import javafx.stage.Stage; diff --git a/app/src/main/java/io/xpipe/app/core/window/AppWindowHelper.java b/app/src/main/java/io/xpipe/app/core/window/AppWindowHelper.java index 1b2d42829..ae27c6bcb 100644 --- a/app/src/main/java/io/xpipe/app/core/window/AppWindowHelper.java +++ b/app/src/main/java/io/xpipe/app/core/window/AppWindowHelper.java @@ -8,6 +8,7 @@ import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.util.InputHelper; import io.xpipe.app.util.ThreadHelper; import io.xpipe.core.process.OsType; + import javafx.application.Platform; import javafx.beans.value.ObservableValue; import javafx.css.PseudoClass; diff --git a/app/src/main/java/io/xpipe/app/core/window/ModifiedAlertStage.java b/app/src/main/java/io/xpipe/app/core/window/ModifiedAlertStage.java index bc3a0db5b..3def985b4 100644 --- a/app/src/main/java/io/xpipe/app/core/window/ModifiedAlertStage.java +++ b/app/src/main/java/io/xpipe/app/core/window/ModifiedAlertStage.java @@ -4,6 +4,7 @@ import javafx.scene.control.Alert; import javafx.scene.control.Dialog; import javafx.stage.Stage; import javafx.stage.Window; + import lombok.SneakyThrows; public class ModifiedAlertStage { @@ -22,9 +23,10 @@ public class ModifiedAlertStage { var stageField = c.getDeclaredField("stage"); stageField.setAccessible(true); - var m = new Stage() { + var m = new Stage() { @SneakyThrows - @Override public void centerOnScreen() { + @Override + public void centerOnScreen() { Window owner = getOwner(); if (owner != null) { positionStageMethod.invoke(dialog); @@ -36,6 +38,6 @@ public class ModifiedAlertStage { } }; - stageField.set(alert,m); + stageField.set(alert, m); } } diff --git a/app/src/main/java/io/xpipe/app/core/window/ModifiedStage.java b/app/src/main/java/io/xpipe/app/core/window/ModifiedStage.java index 209415b91..bbd009a09 100644 --- a/app/src/main/java/io/xpipe/app/core/window/ModifiedStage.java +++ b/app/src/main/java/io/xpipe/app/core/window/ModifiedStage.java @@ -3,6 +3,7 @@ package io.xpipe.app.core.window; import io.xpipe.app.fxcomps.util.PlatformThread; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.core.process.OsType; + import javafx.animation.PauseTransition; import javafx.application.Platform; import javafx.collections.ListChangeListener; @@ -11,6 +12,7 @@ import javafx.css.PseudoClass; import javafx.stage.Stage; import javafx.stage.Window; import javafx.util.Duration; + import lombok.SneakyThrows; public class ModifiedStage extends Stage { @@ -21,7 +23,7 @@ public class ModifiedStage extends Stage { var windowsField = Window.class.getDeclaredField("windows"); windowsField.setAccessible(true); ObservableList list = (ObservableList) windowsField.get(null); - list.addListener((ListChangeListener) c -> { + list.addListener((ListChangeListener) c -> { if (c.next() && c.wasAdded()) { var added = c.getAddedSubList().getFirst(); if (added instanceof Stage stage) { @@ -55,7 +57,9 @@ public class ModifiedStage extends Stage { } var ctrl = new NativeWinWindowControl(stage); - ctrl.setWindowAttribute(DmwaWindowAttribute.DWMWA_USE_IMMERSIVE_DARK_MODE.get(), AppPrefs.get().theme.getValue().isDark()); + ctrl.setWindowAttribute( + DmwaWindowAttribute.DWMWA_USE_IMMERSIVE_DARK_MODE.get(), + AppPrefs.get().theme.getValue().isDark()); boolean backdrop; if (AppPrefs.get().performanceMode().get()) { backdrop = false; diff --git a/app/src/main/java/io/xpipe/app/core/window/NativeWinWindowControl.java b/app/src/main/java/io/xpipe/app/core/window/NativeWinWindowControl.java index 16878360e..9b6861035 100644 --- a/app/src/main/java/io/xpipe/app/core/window/NativeWinWindowControl.java +++ b/app/src/main/java/io/xpipe/app/core/window/NativeWinWindowControl.java @@ -1,12 +1,13 @@ package io.xpipe.app.core.window; +import javafx.stage.Window; + import com.sun.jna.Library; import com.sun.jna.Pointer; import com.sun.jna.PointerType; import com.sun.jna.platform.win32.User32; import com.sun.jna.platform.win32.WinDef; import com.sun.jna.platform.win32.WinNT; -import javafx.stage.Window; import lombok.Getter; import lombok.SneakyThrows; @@ -51,8 +52,7 @@ public class NativeWinWindowControl { windowHandle, DmwaWindowAttribute.DWMWA_SYSTEMBACKDROP_TYPE.get(), new WinDef.DWORDByReference(new WinDef.DWORD(backdrop.get())), - WinDef.DWORD.SIZE - ); + WinDef.DWORD.SIZE); return r.longValue() == 0; } diff --git a/app/src/main/java/io/xpipe/app/fxcomps/impl/DataStoreChoiceComp.java b/app/src/main/java/io/xpipe/app/fxcomps/impl/DataStoreChoiceComp.java index 25126a142..d07347234 100644 --- a/app/src/main/java/io/xpipe/app/fxcomps/impl/DataStoreChoiceComp.java +++ b/app/src/main/java/io/xpipe/app/fxcomps/impl/DataStoreChoiceComp.java @@ -93,8 +93,11 @@ public class DataStoreChoiceComp extends SimpleComp { }; var section = new StoreSectionMiniComp( StoreSection.createTopLevel( - StoreViewState.get().getAllEntries(), applicable, filterText, selectedCategory, StoreViewState.get() - .getEntriesListUpdateObservable()), + StoreViewState.get().getAllEntries(), + applicable, + filterText, + selectedCategory, + StoreViewState.get().getEntriesListUpdateObservable()), (s, comp) -> { if (!applicable.test(s.getWrapper())) { comp.disable(new SimpleBooleanProperty(true)); diff --git a/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageComp.java b/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageComp.java index 97980fd3b..8dc024a68 100644 --- a/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageComp.java +++ b/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageComp.java @@ -93,10 +93,11 @@ public class PrettyImageComp extends SimpleComp { stack.getChildren().add(storeIcon); Consumer update = val -> { - var useDark = AppPrefs.get() != null && AppPrefs.get().theme.get() != null && AppPrefs.get().theme.get().isDark(); + var useDark = AppPrefs.get() != null + && AppPrefs.get().theme.get() != null + && AppPrefs.get().theme.get().isDark(); var fixed = val != null - ? FileNames.getBaseName(val) + (useDark ? "-dark" : "") + "." - + FileNames.getExtension(val) + ? FileNames.getBaseName(val) + (useDark ? "-dark" : "") + "." + FileNames.getExtension(val) : null; image.set(fixed); diff --git a/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettySvgComp.java b/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettySvgComp.java index 6b4409a74..2e9fed80c 100644 --- a/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettySvgComp.java +++ b/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettySvgComp.java @@ -88,10 +88,11 @@ public class PrettySvgComp extends SimpleComp { } Consumer update = val -> { - var useDark = AppPrefs.get() != null && AppPrefs.get().theme.get() != null && AppPrefs.get().theme.get().isDark(); + var useDark = AppPrefs.get() != null + && AppPrefs.get().theme.get() != null + && AppPrefs.get().theme.get().isDark(); var fixed = val != null - ? FileNames.getBaseName(val) + (useDark ? "-dark" : "") + "." - + FileNames.getExtension(val) + ? FileNames.getBaseName(val) + (useDark ? "-dark" : "") + "." + FileNames.getExtension(val) : null; image.set(fixed); }; diff --git a/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java b/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java index 16fa3a0ec..3e94b72b9 100644 --- a/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java +++ b/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java @@ -14,12 +14,14 @@ import io.xpipe.app.terminal.ExternalTerminalType; import io.xpipe.app.util.PasswordLockSecretValue; import io.xpipe.core.util.InPlaceSecretValue; import io.xpipe.core.util.ModuleHelper; + import javafx.beans.binding.Bindings; import javafx.beans.property.*; import javafx.beans.value.ObservableBooleanValue; import javafx.beans.value.ObservableDoubleValue; import javafx.beans.value.ObservableStringValue; import javafx.beans.value.ObservableValue; + import lombok.Getter; import lombok.Value; diff --git a/app/src/main/java/io/xpipe/app/prefs/AppearanceCategory.java b/app/src/main/java/io/xpipe/app/prefs/AppearanceCategory.java index a4c2e5a8c..5f896cc8d 100644 --- a/app/src/main/java/io/xpipe/app/prefs/AppearanceCategory.java +++ b/app/src/main/java/io/xpipe/app/prefs/AppearanceCategory.java @@ -44,8 +44,7 @@ public class AppearanceCategory extends AppPrefsCategory { .nameAndDescription("uiScale") .addComp(new IntFieldComp(prefs.uiScale).maxWidth(100), prefs.uiScale) .nameAndDescription("useSystemFont") - .addToggle(prefs.useSystemFont) - ) + .addToggle(prefs.useSystemFont)) .addTitle("windowOptions") .sub(new OptionsBuilder() .nameAndDescription("windowOpacity") diff --git a/app/src/main/java/io/xpipe/app/prefs/CloseBehaviourAlert.java b/app/src/main/java/io/xpipe/app/prefs/CloseBehaviourAlert.java index 7b3b4160e..e403cb7c0 100644 --- a/app/src/main/java/io/xpipe/app/prefs/CloseBehaviourAlert.java +++ b/app/src/main/java/io/xpipe/app/prefs/CloseBehaviourAlert.java @@ -2,8 +2,8 @@ package io.xpipe.app.prefs; import io.xpipe.app.core.AppCache; import io.xpipe.app.core.AppI18n; -import io.xpipe.app.core.window.AppWindowHelper; import io.xpipe.app.core.mode.OperationMode; +import io.xpipe.app.core.window.AppWindowHelper; import io.xpipe.app.ext.PrefsChoiceValue; import javafx.beans.property.Property; diff --git a/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java b/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java index 190d1454f..f3d1aaed7 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java @@ -90,8 +90,7 @@ public class DataStoreEntry extends StorageElement { boolean expanded, DataStoreColor color, String notes, - Order explicitOrder - ) { + Order explicitOrder) { super(directory, uuid, name, lastUsed, lastModified, dirty); this.categoryUuid = categoryUuid; this.store = DataStorageParser.storeFromNode(storeNode); @@ -116,8 +115,7 @@ public class DataStoreEntry extends StorageElement { Instant lastUsed, Instant lastModified, DataStore store, - Order explicitOrder - ) { + Order explicitOrder) { super(directory, uuid, name, lastUsed, lastModified, false); this.categoryUuid = categoryUuid; this.store = store; @@ -604,7 +602,6 @@ public class DataStoreEntry extends StorageElement { } } - @Getter public enum Order { @JsonProperty("top") diff --git a/app/src/main/java/io/xpipe/app/storage/StandardStorage.java b/app/src/main/java/io/xpipe/app/storage/StandardStorage.java index 18ce9f213..051c487c8 100644 --- a/app/src/main/java/io/xpipe/app/storage/StandardStorage.java +++ b/app/src/main/java/io/xpipe/app/storage/StandardStorage.java @@ -158,8 +158,8 @@ public class StandardStorage extends DataStorage { dataStoreCategory.setCategoryUuid(DEFAULT_CATEGORY_UUID); } - if (dataStoreCategory.getCategoryUuid() != null && - dataStoreCategory.getCategoryUuid().equals(ALL_CONNECTIONS_CATEGORY_UUID)) { + if (dataStoreCategory.getCategoryUuid() != null + && dataStoreCategory.getCategoryUuid().equals(ALL_CONNECTIONS_CATEGORY_UUID)) { dataStoreCategory.setCategoryUuid(DEFAULT_CATEGORY_UUID); } }); diff --git a/app/src/main/java/io/xpipe/app/util/MarkdownHelper.java b/app/src/main/java/io/xpipe/app/util/MarkdownHelper.java index 2d16cac55..86de77667 100644 --- a/app/src/main/java/io/xpipe/app/util/MarkdownHelper.java +++ b/app/src/main/java/io/xpipe/app/util/MarkdownHelper.java @@ -19,7 +19,10 @@ import java.util.function.UnaryOperator; public class MarkdownHelper { public static String toHtml( - String value, UnaryOperator headTransformation, UnaryOperator bodyTransformation, String bodyStyleClass) { + String value, + UnaryOperator headTransformation, + UnaryOperator bodyTransformation, + String bodyStyleClass) { MutableDataSet options = new MutableDataSet() .set( Parser.EXTENSIONS, @@ -47,7 +50,8 @@ public class MarkdownHelper { var html = renderer.render(document); var result = bodyTransformation.apply(html); var headContent = headTransformation.apply(""); - return "" + headContent + "
" + result - + "
"; + return "" + headContent + "
" + result + "
"; } } diff --git a/app/src/main/java/io/xpipe/app/util/SecretManager.java b/app/src/main/java/io/xpipe/app/util/SecretManager.java index b754460e9..f0254e1c2 100644 --- a/app/src/main/java/io/xpipe/app/util/SecretManager.java +++ b/app/src/main/java/io/xpipe/app/util/SecretManager.java @@ -56,14 +56,21 @@ public class SecretManager { return false; } - public static SecretValue retrieve(SecretRetrievalStrategy strategy, String prompt, UUID secretId, int sub, boolean interactive) { + public static SecretValue retrieve( + SecretRetrievalStrategy strategy, String prompt, UUID secretId, int sub, boolean interactive) { if (!strategy.expectsQuery()) { return null; } var uuid = UUID.randomUUID(); var p = expectAskpass( - uuid, secretId, List.of(strategy.query()), SecretQuery.prompt(false), List.of(), CountDown.of(), interactive); + uuid, + secretId, + List.of(strategy.query()), + SecretQuery.prompt(false), + List.of(), + CountDown.of(), + interactive); p.preAdvance(sub); var r = p.process(prompt); completeRequest(uuid); diff --git a/app/src/main/java/io/xpipe/app/util/SecretQueryProgress.java b/app/src/main/java/io/xpipe/app/util/SecretQueryProgress.java index 5ffed79d6..bf6a2648b 100644 --- a/app/src/main/java/io/xpipe/app/util/SecretQueryProgress.java +++ b/app/src/main/java/io/xpipe/app/util/SecretQueryProgress.java @@ -32,8 +32,7 @@ public class SecretQueryProgress { @NonNull SecretQuery fallback, @NonNull List filters, @NonNull CountDown countDown, - boolean interactive - ) { + boolean interactive) { this.requestId = requestId; this.storeId = storeId; this.suppliers = new ArrayList<>(suppliers); diff --git a/app/src/main/java/io/xpipe/app/util/SecretRetrievalStrategy.java b/app/src/main/java/io/xpipe/app/util/SecretRetrievalStrategy.java index b50df1008..44882af95 100644 --- a/app/src/main/java/io/xpipe/app/util/SecretRetrievalStrategy.java +++ b/app/src/main/java/io/xpipe/app/util/SecretRetrievalStrategy.java @@ -60,7 +60,8 @@ public interface SecretRetrievalStrategy { @Override public SecretQueryResult query(String prompt) { return new SecretQueryResult( - value != null ? value.getInternalSecret() : InPlaceSecretValue.of(""), SecretQueryState.NORMAL); + value != null ? value.getInternalSecret() : InPlaceSecretValue.of(""), + SecretQueryState.NORMAL); } @Override @@ -180,7 +181,8 @@ public interface SecretRetrievalStrategy { @Override public SecretQueryResult query(String prompt) { try (var cc = new LocalStore().control().command(command).start()) { - return new SecretQueryResult(InPlaceSecretValue.of(cc.readStdoutOrThrow()), SecretQueryState.NORMAL); + return new SecretQueryResult( + InPlaceSecretValue.of(cc.readStdoutOrThrow()), SecretQueryState.NORMAL); } catch (Exception ex) { ErrorEvent.fromThrowable("Unable to retrieve password with command " + command, ex) .handle(); diff --git a/app/src/main/java/module-info.java b/app/src/main/java/module-info.java index c9431c48f..9cd509b3f 100644 --- a/app/src/main/java/module-info.java +++ b/app/src/main/java/module-info.java @@ -139,7 +139,9 @@ open module io.xpipe.app { DaemonStatusExchangeImpl, DaemonStopExchangeImpl, HandshakeExchangeImpl, - DaemonModeExchangeImpl, FsBlobExchangeImpl, FsReadExchangeImpl, + DaemonModeExchangeImpl, + FsBlobExchangeImpl, + FsReadExchangeImpl, FsScriptExchangeImpl, FsWriteExchangeImpl, AskpassExchangeImpl, diff --git a/beacon/src/main/java/io/xpipe/beacon/BeaconInterface.java b/beacon/src/main/java/io/xpipe/beacon/BeaconInterface.java index a6ba055f0..6e88b8064 100644 --- a/beacon/src/main/java/io/xpipe/beacon/BeaconInterface.java +++ b/beacon/src/main/java/io/xpipe/beacon/BeaconInterface.java @@ -1,7 +1,8 @@ package io.xpipe.beacon; -import com.sun.net.httpserver.HttpExchange; import io.xpipe.core.util.ModuleLayerLoader; + +import com.sun.net.httpserver.HttpExchange; import lombok.SneakyThrows; import java.util.List; @@ -71,8 +72,7 @@ public abstract class BeaconInterface { public abstract String getPath(); - public Object handle(HttpExchange exchange, T body) - throws BeaconClientException, BeaconServerException { + public Object handle(HttpExchange exchange, T body) throws BeaconClientException, BeaconServerException { throw new UnsupportedOperationException(); } diff --git a/beacon/src/main/java/io/xpipe/beacon/BeaconServer.java b/beacon/src/main/java/io/xpipe/beacon/BeaconServer.java index 872bafc56..3de5f910b 100644 --- a/beacon/src/main/java/io/xpipe/beacon/BeaconServer.java +++ b/beacon/src/main/java/io/xpipe/beacon/BeaconServer.java @@ -28,8 +28,11 @@ public class BeaconServer { } private static List toProcessCommand(String toExec) { - // Having the trailing space is very important to force cmd to not interpret surrounding spaces and removing them - return OsType.getLocal().equals(OsType.WINDOWS) ? List.of("cmd", "/c", toExec + " ") : List.of("sh", "-c", toExec); + // Having the trailing space is very important to force cmd to not interpret surrounding spaces and removing + // them + return OsType.getLocal().equals(OsType.WINDOWS) + ? List.of("cmd", "/c", toExec + " ") + : List.of("sh", "-c", toExec); } public static Process tryStartCustom() throws Exception { diff --git a/beacon/src/main/java/io/xpipe/beacon/api/FsBlobExchange.java b/beacon/src/main/java/io/xpipe/beacon/api/FsBlobExchange.java index 462bec173..1fe96dddb 100644 --- a/beacon/src/main/java/io/xpipe/beacon/api/FsBlobExchange.java +++ b/beacon/src/main/java/io/xpipe/beacon/api/FsBlobExchange.java @@ -1,6 +1,7 @@ package io.xpipe.beacon.api; import io.xpipe.beacon.BeaconInterface; + import lombok.Builder; import lombok.NonNull; import lombok.Value; diff --git a/beacon/src/main/java/io/xpipe/beacon/api/FsReadExchange.java b/beacon/src/main/java/io/xpipe/beacon/api/FsReadExchange.java index 8aefba021..0adea75ed 100644 --- a/beacon/src/main/java/io/xpipe/beacon/api/FsReadExchange.java +++ b/beacon/src/main/java/io/xpipe/beacon/api/FsReadExchange.java @@ -2,6 +2,7 @@ package io.xpipe.beacon.api; import io.xpipe.beacon.BeaconInterface; import io.xpipe.core.store.FilePath; + import lombok.Builder; import lombok.NonNull; import lombok.Value; @@ -22,6 +23,7 @@ public class FsReadExchange extends BeaconInterface { public static class Request { @NonNull UUID connection; + @NonNull FilePath path; } diff --git a/beacon/src/main/java/io/xpipe/beacon/api/FsScriptExchange.java b/beacon/src/main/java/io/xpipe/beacon/api/FsScriptExchange.java index 3b585fbff..85801a488 100644 --- a/beacon/src/main/java/io/xpipe/beacon/api/FsScriptExchange.java +++ b/beacon/src/main/java/io/xpipe/beacon/api/FsScriptExchange.java @@ -2,6 +2,7 @@ package io.xpipe.beacon.api; import io.xpipe.beacon.BeaconInterface; import io.xpipe.core.store.FilePath; + import lombok.Builder; import lombok.NonNull; import lombok.Value; @@ -22,6 +23,7 @@ public class FsScriptExchange extends BeaconInterface public static class Request { @NonNull UUID connection; + @NonNull UUID blob; } diff --git a/beacon/src/main/java/io/xpipe/beacon/api/FsWriteExchange.java b/beacon/src/main/java/io/xpipe/beacon/api/FsWriteExchange.java index 919ecc20d..9d8f0edab 100644 --- a/beacon/src/main/java/io/xpipe/beacon/api/FsWriteExchange.java +++ b/beacon/src/main/java/io/xpipe/beacon/api/FsWriteExchange.java @@ -2,6 +2,7 @@ package io.xpipe.beacon.api; import io.xpipe.beacon.BeaconInterface; import io.xpipe.core.store.FilePath; + import lombok.Builder; import lombok.NonNull; import lombok.Value; @@ -22,8 +23,10 @@ public class FsWriteExchange extends BeaconInterface { public static class Request { @NonNull UUID connection; + @NonNull UUID blob; + @NonNull FilePath path; } diff --git a/beacon/src/main/java/io/xpipe/beacon/api/ShellStartExchange.java b/beacon/src/main/java/io/xpipe/beacon/api/ShellStartExchange.java index 9661b3cf7..10f32b12b 100644 --- a/beacon/src/main/java/io/xpipe/beacon/api/ShellStartExchange.java +++ b/beacon/src/main/java/io/xpipe/beacon/api/ShellStartExchange.java @@ -4,6 +4,7 @@ import io.xpipe.beacon.BeaconInterface; import io.xpipe.core.process.OsType; import io.xpipe.core.process.ShellDialect; import io.xpipe.core.store.FilePath; + import lombok.Builder; import lombok.NonNull; import lombok.Value; @@ -32,10 +33,13 @@ public class ShellStartExchange extends BeaconInterface list = JacksonMapper.getDefault().readValue(p, javaType); return new StorePath(list); } diff --git a/ext/base/src/main/java/io/xpipe/ext/base/service/CustomServiceGroupStore.java b/ext/base/src/main/java/io/xpipe/ext/base/service/CustomServiceGroupStore.java index 1436df3ae..bb1826872 100644 --- a/ext/base/src/main/java/io/xpipe/ext/base/service/CustomServiceGroupStore.java +++ b/ext/base/src/main/java/io/xpipe/ext/base/service/CustomServiceGroupStore.java @@ -1,7 +1,8 @@ package io.xpipe.ext.base.service; -import com.fasterxml.jackson.annotation.JsonTypeName; import io.xpipe.core.store.NetworkTunnelStore; + +import com.fasterxml.jackson.annotation.JsonTypeName; import lombok.AccessLevel; import lombok.Getter; import lombok.experimental.FieldDefaults; diff --git a/ext/base/src/main/java/module-info.java b/ext/base/src/main/java/module-info.java index 6123c6a09..15ecf6034 100644 --- a/ext/base/src/main/java/module-info.java +++ b/ext/base/src/main/java/module-info.java @@ -71,7 +71,8 @@ open module io.xpipe.ext.base { BrowseStoreAction, ScanStoreAction; provides DataStoreProvider with - FixedServiceGroupStoreProvider, CustomServiceGroupStoreProvider, + FixedServiceGroupStoreProvider, + CustomServiceGroupStoreProvider, CustomServiceStoreProvider, MappedServiceStoreProvider, FixedServiceStoreProvider,