diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListStatusComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListStatusComp.java index f657af52c..586b02c38 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListStatusComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListStatusComp.java @@ -61,7 +61,7 @@ public class StoreEntryListStatusComp extends SimpleComp { var inRootCategory = StoreViewState.get().getActiveCategory().getValue().getRoot().equals(rootCategory); // Sadly the all binding does not update when the individual visibility of entries changes // But it is good enough. - var showProvider = storeEntryWrapper.getEntry().getProvider() == null || + var showProvider = !storeEntryWrapper.getEntry().getValidity().isUsable() || storeEntryWrapper.getEntry().getProvider().shouldShow(storeEntryWrapper); return inRootCategory && showProvider; }, 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 f44db4366..4dd9c36c9 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 @@ -163,7 +163,7 @@ public class StoreSection { // This check is fast as the children are cached in the storage var isChildren = DataStorage.get().getStoreChildren(e.getEntry()).contains(other.getEntry()); - var showProvider = other.getEntry().getProvider() == null || + var showProvider = !other.getEntry().getValidity().isUsable() || other.getEntry().getProvider().shouldShow(other); return isChildren && showProvider; }, e.getPersistentState(), e.getCache(), StoreViewState.get().getEntriesListChangeObservable()); diff --git a/app/src/main/java/io/xpipe/app/storage/DataStorage.java b/app/src/main/java/io/xpipe/app/storage/DataStorage.java index 2d3a7b303..61f9ba83c 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStorage.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStorage.java @@ -365,6 +365,10 @@ public abstract class DataStorage { .toList(); var toAdd = newChildren.stream() .filter(nc -> { + if (nc.getStore() == null) { + return false; + } + var nid = nc.getStore().getFixedId(); // These can't be automatically generated if (nid.isEmpty()) { diff --git a/app/src/main/java/io/xpipe/app/util/CommandView.java b/app/src/main/java/io/xpipe/app/util/CommandView.java index ffcf685ad..85649a62f 100644 --- a/app/src/main/java/io/xpipe/app/util/CommandView.java +++ b/app/src/main/java/io/xpipe/app/util/CommandView.java @@ -1,13 +1,19 @@ package io.xpipe.app.util; import io.xpipe.core.process.CommandBuilder; +import io.xpipe.core.process.CommandControl; import io.xpipe.core.process.ShellControl; -import lombok.experimental.SuperBuilder; -@SuperBuilder -public abstract class CommandView { +import java.util.function.Consumer; - protected final ShellControl shellControl; +public abstract class CommandView implements AutoCloseable { - protected abstract CommandBuilder base(); + protected abstract CommandControl build(Consumer builder); + + protected abstract ShellControl getShellControl(); + + @Override + public void close() throws Exception { + getShellControl().close(); + } } diff --git a/app/src/main/java/io/xpipe/app/util/CommandViewBase.java b/app/src/main/java/io/xpipe/app/util/CommandViewBase.java new file mode 100644 index 000000000..5a80834f1 --- /dev/null +++ b/app/src/main/java/io/xpipe/app/util/CommandViewBase.java @@ -0,0 +1,18 @@ +package io.xpipe.app.util; + +import io.xpipe.core.process.CommandBuilder; +import io.xpipe.core.process.CommandControl; +import io.xpipe.core.process.ShellControl; +import lombok.Getter; + +import java.util.function.Consumer; + +public abstract class CommandViewBase extends CommandView { + + @Getter + protected final ShellControl shellControl; + + public CommandViewBase(ShellControl shellControl) {this.shellControl = shellControl;} + + protected abstract CommandControl build(Consumer builder); +} diff --git a/dist/build.gradle b/dist/build.gradle index 25e480bdb..cb12cc203 100644 --- a/dist/build.gradle +++ b/dist/build.gradle @@ -3,7 +3,7 @@ plugins { id 'org.beryx.jlink' version '3.0.1' id "org.asciidoctor.jvm.convert" version "4.0.2" id 'org.jreleaser' version '1.11.0' - id("com.netflix.nebula.ospackage") version "11.8.1" + id("com.netflix.nebula.ospackage") version "11.9.1" id 'org.gradle.crypto.checksum' version '1.4.0' id 'signing' } diff --git a/dist/logo/hicolor/1024x1024/apps/xpipe.png b/dist/logo/hicolor/1024x1024/apps/xpipe.png new file mode 100644 index 000000000..643d6acce Binary files /dev/null and b/dist/logo/hicolor/1024x1024/apps/xpipe.png differ diff --git a/dist/logo/hicolor/128x128/apps/xpipe.png b/dist/logo/hicolor/128x128/apps/xpipe.png new file mode 100644 index 000000000..b78116222 Binary files /dev/null and b/dist/logo/hicolor/128x128/apps/xpipe.png differ diff --git a/dist/logo/hicolor/16x16/apps/xpipe.png b/dist/logo/hicolor/16x16/apps/xpipe.png new file mode 100644 index 000000000..d05eb5223 Binary files /dev/null and b/dist/logo/hicolor/16x16/apps/xpipe.png differ diff --git a/dist/logo/hicolor/256x256/apps/xpipe.png b/dist/logo/hicolor/256x256/apps/xpipe.png new file mode 100644 index 000000000..c935a7518 Binary files /dev/null and b/dist/logo/hicolor/256x256/apps/xpipe.png differ diff --git a/dist/logo/hicolor/32x32/apps/xpipe.png b/dist/logo/hicolor/32x32/apps/xpipe.png new file mode 100644 index 000000000..2040668c7 Binary files /dev/null and b/dist/logo/hicolor/32x32/apps/xpipe.png differ diff --git a/dist/logo/hicolor/48x48/apps/xpipe.png b/dist/logo/hicolor/48x48/apps/xpipe.png new file mode 100644 index 000000000..b9ebbc06a Binary files /dev/null and b/dist/logo/hicolor/48x48/apps/xpipe.png differ diff --git a/dist/logo/hicolor/512x512/apps/xpipe.png b/dist/logo/hicolor/512x512/apps/xpipe.png new file mode 100644 index 000000000..7afdbf9b6 Binary files /dev/null and b/dist/logo/hicolor/512x512/apps/xpipe.png differ diff --git a/dist/logo/hicolor/64x64/apps/xpipe.png b/dist/logo/hicolor/64x64/apps/xpipe.png new file mode 100644 index 000000000..ce5fa5183 Binary files /dev/null and b/dist/logo/hicolor/64x64/apps/xpipe.png differ diff --git a/lang/proc/strings/translations_en.properties b/lang/proc/strings/translations_en.properties index fe7e51c7f..322934024 100644 --- a/lang/proc/strings/translations_en.properties +++ b/lang/proc/strings/translations_en.properties @@ -152,6 +152,7 @@ shells=Available shells startContainer=Start container stopContainer=Stop container inspectContainer=Inspect container +inspectContext=Inspect context k8sClusterNameDescription=The name of the context the cluster is in. pod=Pod podName=Pod name