diff --git a/app/src/main/java/io/xpipe/app/ext/SingletonSessionStore.java b/app/src/main/java/io/xpipe/app/ext/SingletonSessionStore.java index df556ee8d..c2d6e5c1d 100644 --- a/app/src/main/java/io/xpipe/app/ext/SingletonSessionStore.java +++ b/app/src/main/java/io/xpipe/app/ext/SingletonSessionStore.java @@ -8,10 +8,6 @@ public interface SingletonSessionStore stopSessionIfNeeded(); } - default boolean supportsSession() { - return true; - } - default boolean isSessionRunning() { return getCache("sessionRunning", Boolean.class, false); } diff --git a/app/src/main/java/io/xpipe/app/ext/SingletonSessionStoreProvider.java b/app/src/main/java/io/xpipe/app/ext/SingletonSessionStoreProvider.java index 36fa6d3fb..680c5d5aa 100644 --- a/app/src/main/java/io/xpipe/app/ext/SingletonSessionStoreProvider.java +++ b/app/src/main/java/io/xpipe/app/ext/SingletonSessionStoreProvider.java @@ -33,7 +33,7 @@ public interface SingletonSessionStoreProvider extends DataStoreProvider { return new SystemStateComp(Bindings.createObjectBinding( () -> { SingletonSessionStore s = w.getEntry().getStore().asNeeded(); - if (!s.supportsSession()) { + if (!supportsSession(s)) { return SystemStateComp.State.SUCCESS; } @@ -80,7 +80,7 @@ public interface SingletonSessionStoreProvider extends DataStoreProvider { t.setCustomVisibility(Bindings.createBooleanBinding( () -> { SingletonSessionStore s = sec.getWrapper().getEntry().getStore().asNeeded(); - return s.supportsSession() && (showToggleWhenInactive(sec.getWrapper().getStore().getValue()) || s.isSessionEnabled()); + return supportsSession(s) && (showToggleWhenInactive(s) || s.isSessionEnabled()); }, sec.getWrapper().getCache())); @@ -88,7 +88,11 @@ public interface SingletonSessionStoreProvider extends DataStoreProvider { return t; } - default boolean showToggleWhenInactive(DataStore store) { + default boolean showToggleWhenInactive(SingletonSessionStore store) { + return true; + } + + default boolean supportsSession(SingletonSessionStore store) { return true; } } diff --git a/ext/base/src/main/java/io/xpipe/ext/base/service/AbstractServiceStore.java b/ext/base/src/main/java/io/xpipe/ext/base/service/AbstractServiceStore.java index 4ef054b38..c27df12c2 100644 --- a/ext/base/src/main/java/io/xpipe/ext/base/service/AbstractServiceStore.java +++ b/ext/base/src/main/java/io/xpipe/ext/base/service/AbstractServiceStore.java @@ -31,12 +31,6 @@ public abstract class AbstractServiceStore implements SingletonSessionStore s) { + var abs = (AbstractServiceStore) s; + return abs.getHost() == null + || !abs.getHost().getStore().requiresTunnel() + || !abs.getHost().getStore().isLocallyTunnelable(); + } + @Override public FailableRunnable launch(DataStoreEntry store) { return () -> { @@ -96,7 +101,7 @@ public abstract class AbstractServiceStoreProvider implements SingletonSessionSt } @Override - public boolean showToggleWhenInactive(DataStore store) { + public boolean showToggleWhenInactive(SingletonSessionStore store) { return false; }