diff --git a/app/src/main/java/io/xpipe/app/prefs/ExternalApplicationType.java b/app/src/main/java/io/xpipe/app/prefs/ExternalApplicationType.java index 22ab4eab3..232d8a931 100644 --- a/app/src/main/java/io/xpipe/app/prefs/ExternalApplicationType.java +++ b/app/src/main/java/io/xpipe/app/prefs/ExternalApplicationType.java @@ -125,6 +125,24 @@ public interface ExternalApplicationType extends PrefsValue { String getFlatpakId() throws Exception; + @Override + default boolean isAvailable() { + try (ShellControl pc = LocalShell.getShell().start()) { + if (getFlatpakId() != null) { + var app = FlatpakCache.getApp(getFlatpakId()); + if (app.isPresent()) { + return true; + } + } + + String name = getExecutable(); + return pc.view().findProgram(name).isPresent(); + } catch (Exception e) { + ErrorEventFactory.fromThrowable(e).omit().handle(); + return false; + } + } + @Override default void launch(CommandBuilder args) throws Exception { if (getFlatpakId() == null