mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-06-22 06:19:02 -04:00
More cleanup
This commit is contained in:
@@ -9,7 +9,7 @@ import io.xpipe.extension.I18n;
|
||||
import io.xpipe.extension.event.ErrorEvent;
|
||||
import io.xpipe.extension.fxcomps.SimpleComp;
|
||||
import io.xpipe.extension.util.DynamicOptionsBuilder;
|
||||
import io.xpipe.extension.util.OsHelper;
|
||||
import io.xpipe.extension.util.DesktopHelper;
|
||||
import javafx.scene.layout.Region;
|
||||
|
||||
public class BrowseDirectoryComp extends SimpleComp {
|
||||
@@ -36,13 +36,13 @@ public class BrowseDirectoryComp extends SimpleComp {
|
||||
.addComp(
|
||||
"logFiles",
|
||||
new ButtonComp(I18n.observable("openLogsDirectory"), () -> {
|
||||
OsHelper.browsePath(AppLogs.get().getSessionLogsDirectory());
|
||||
DesktopHelper.browsePath(AppLogs.get().getSessionLogsDirectory());
|
||||
}),
|
||||
null)
|
||||
.addComp(
|
||||
"installationFiles",
|
||||
new ButtonComp(I18n.observable("openInstallationDirectory"), () -> {
|
||||
OsHelper.browsePath(XPipeInstallation.getLocalInstallationBasePath());
|
||||
DesktopHelper.browsePath(XPipeInstallation.getLocalInstallationBasePath());
|
||||
}),
|
||||
null)
|
||||
.build();
|
||||
|
||||
@@ -5,7 +5,7 @@ import io.xpipe.app.prefs.AppPrefs;
|
||||
import io.xpipe.extension.I18n;
|
||||
import io.xpipe.extension.fxcomps.CompStructure;
|
||||
import io.xpipe.extension.fxcomps.augment.PopupMenuAugment;
|
||||
import io.xpipe.extension.util.OsHelper;
|
||||
import io.xpipe.extension.util.DesktopHelper;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.ContextMenu;
|
||||
import javafx.scene.control.MenuItem;
|
||||
@@ -88,7 +88,7 @@ public class SourceCollectionContextMenu<S extends CompStructure<?>> extends Pop
|
||||
if (AppPrefs.get().developerMode().getValue()) {
|
||||
var openDir = new MenuItem(I18n.get("openDir"), new FontIcon("mdal-edit"));
|
||||
openDir.setOnAction(e -> {
|
||||
OsHelper.browseFileInDirectory(group.getCollection().getDirectory());
|
||||
DesktopHelper.browseFileInDirectory(group.getCollection().getDirectory());
|
||||
});
|
||||
cm.getItems().add(openDir);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import io.xpipe.extension.I18n;
|
||||
import io.xpipe.extension.event.ErrorEvent;
|
||||
import io.xpipe.extension.fxcomps.CompStructure;
|
||||
import io.xpipe.extension.fxcomps.augment.PopupMenuAugment;
|
||||
import io.xpipe.extension.util.OsHelper;
|
||||
import io.xpipe.extension.util.DesktopHelper;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.scene.control.ContextMenu;
|
||||
import javafx.scene.control.MenuItem;
|
||||
@@ -89,7 +89,7 @@ public class SourceEntryContextMenu<S extends CompStructure<?>> extends PopupMen
|
||||
|
||||
var openDir = new MenuItem(I18n.get("browseInternal"), new FontIcon("mdi2f-folder-open-outline"));
|
||||
openDir.setOnAction(e -> {
|
||||
OsHelper.browsePath(entry.getEntry().getDirectory());
|
||||
DesktopHelper.browsePath(entry.getEntry().getDirectory());
|
||||
});
|
||||
cm.getItems().add(openDir);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import io.xpipe.extension.fxcomps.impl.IconButtonComp;
|
||||
import io.xpipe.extension.fxcomps.impl.PrettyImageComp;
|
||||
import io.xpipe.extension.fxcomps.util.PlatformThread;
|
||||
import io.xpipe.extension.fxcomps.util.SimpleChangeListener;
|
||||
import io.xpipe.extension.util.OsHelper;
|
||||
import io.xpipe.extension.util.DesktopHelper;
|
||||
import io.xpipe.extension.util.ThreadHelper;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
@@ -245,7 +245,7 @@ public class StoreEntryComp extends SimpleComp {
|
||||
|
||||
if (AppPrefs.get().developerMode().getValue()) {
|
||||
var browse = new MenuItem(I18n.get("browse"), new FontIcon("mdi2f-folder-open-outline"));
|
||||
browse.setOnAction(event -> OsHelper.browsePath(entry.getEntry().getDirectory()));
|
||||
browse.setOnAction(event -> DesktopHelper.browsePath(entry.getEntry().getDirectory()));
|
||||
contextMenu.getItems().add(browse);
|
||||
}
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ public class App extends Application {
|
||||
AppActionLinkDetector.detectOnFocus();
|
||||
});
|
||||
});
|
||||
var title = String.format("X-Pipe Desktop (%s)", AppProperties.get().getVersion());
|
||||
var title = String.format("X-Pipe Desktop (Alpha %s)", AppProperties.get().getVersion());
|
||||
var appWindow = new AppMainWindow(stage);
|
||||
appWindow.initialize();
|
||||
appWindow.setContent(title, content);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.xpipe.app.core;
|
||||
|
||||
import io.xpipe.app.exchange.MessageExchangeImpls;
|
||||
import io.xpipe.app.util.ModuleHelper;
|
||||
import io.xpipe.core.util.ModuleHelper;
|
||||
import io.xpipe.core.util.XPipeInstallation;
|
||||
import io.xpipe.extension.ModuleInstall;
|
||||
import io.xpipe.extension.XPipeServiceProviders;
|
||||
|
||||
@@ -2,7 +2,7 @@ package io.xpipe.app.core;
|
||||
|
||||
import io.xpipe.app.prefs.AppPrefs;
|
||||
import io.xpipe.app.prefs.SupportedLocale;
|
||||
import io.xpipe.app.util.ModuleHelper;
|
||||
import io.xpipe.core.util.ModuleHelper;
|
||||
import io.xpipe.extension.I18n;
|
||||
import io.xpipe.extension.Translatable;
|
||||
import io.xpipe.extension.event.ErrorEvent;
|
||||
@@ -25,7 +25,10 @@ import java.nio.file.SimpleFileVisitor;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.UnaryOperator;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -94,11 +97,20 @@ public class AppI18n implements I18n {
|
||||
prettyTime = null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("removal")
|
||||
public static class CallingClass extends SecurityManager {
|
||||
public static final CallingClass INSTANCE = new CallingClass();
|
||||
|
||||
public Class<?>[] getCallingClasses() {
|
||||
return getClassContext();
|
||||
}
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
private static String getCallerModuleName() {
|
||||
var callers = ModuleHelper.CallingClass.INSTANCE.getCallingClasses();
|
||||
var callers = CallingClass.INSTANCE.getCallingClasses();
|
||||
for (Class<?> caller : callers) {
|
||||
if (caller.equals(ModuleHelper.CallingClass.class)
|
||||
if (caller.equals(CallingClass.class)
|
||||
|| caller.equals(ModuleHelper.class)
|
||||
|| caller.equals(AppI18n.class)
|
||||
|| caller.equals(I18n.class)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.xpipe.app.core;
|
||||
|
||||
import io.xpipe.app.prefs.AppPrefs;
|
||||
import io.xpipe.app.util.ModuleHelper;
|
||||
import io.xpipe.core.util.ModuleHelper;
|
||||
import io.xpipe.extension.event.ErrorEvent;
|
||||
import io.xpipe.extension.event.TrackEvent;
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
package io.xpipe.app.util;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class ModuleHelper {
|
||||
|
||||
public static boolean isImage() {
|
||||
return ModuleHelper.class
|
||||
.getProtectionDomain()
|
||||
.getCodeSource()
|
||||
.getLocation()
|
||||
.getProtocol()
|
||||
.equals("jrt");
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static Module getEveryoneModule() {
|
||||
Method getDeclaredFields0 = Class.class.getDeclaredMethod("getDeclaredFields0", boolean.class);
|
||||
getDeclaredFields0.setAccessible(true);
|
||||
Field[] fields = (Field[]) getDeclaredFields0.invoke(Module.class, false);
|
||||
Field modifiers = null;
|
||||
for (Field each : fields) {
|
||||
if ("EVERYONE_MODULE".equals(each.getName())) {
|
||||
modifiers = each;
|
||||
break;
|
||||
}
|
||||
}
|
||||
modifiers.setAccessible(true);
|
||||
return (Module) modifiers.get(null);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static void exportAndOpen(String pkg, Module mod) {
|
||||
if (mod.isExported(pkg) && mod.isOpen(pkg)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Method getDeclaredFields0 = Class.class.getDeclaredMethod("getDeclaredMethods0", boolean.class);
|
||||
getDeclaredFields0.setAccessible(true);
|
||||
Method[] fields = (Method[]) getDeclaredFields0.invoke(Module.class, false);
|
||||
Method modifiers = null;
|
||||
for (Method each : fields) {
|
||||
if ("implAddExportsOrOpens".equals(each.getName())) {
|
||||
modifiers = each;
|
||||
break;
|
||||
}
|
||||
}
|
||||
modifiers.setAccessible(true);
|
||||
|
||||
var e = getEveryoneModule();
|
||||
modifiers.invoke(mod, pkg, e, false, true);
|
||||
modifiers.invoke(mod, pkg, e, true, true);
|
||||
}
|
||||
|
||||
@SuppressWarnings("removal")
|
||||
public static class CallingClass extends SecurityManager {
|
||||
public static final CallingClass INSTANCE = new CallingClass();
|
||||
|
||||
public Class<?>[] getCallingClasses() {
|
||||
return getClassContext();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,12 @@ package io.xpipe.app.util;
|
||||
|
||||
import io.xpipe.app.core.AppProperties;
|
||||
import io.xpipe.app.core.AppWindowHelper;
|
||||
import io.xpipe.app.prefs.AppPrefs;
|
||||
import io.xpipe.app.update.AppDownloads;
|
||||
import io.xpipe.app.update.AppInstaller;
|
||||
import io.xpipe.app.prefs.AppPrefs;
|
||||
import io.xpipe.core.impl.FileNames;
|
||||
import io.xpipe.core.process.ShellProcessControl;
|
||||
import io.xpipe.core.util.ModuleHelper;
|
||||
import io.xpipe.core.util.ProxyManagerProvider;
|
||||
import io.xpipe.core.util.XPipeInstallation;
|
||||
import io.xpipe.extension.I18n;
|
||||
|
||||
Reference in New Issue
Block a user