From bd5c6b651637f9f720f59d1f93e06ef3e8bfd30b Mon Sep 17 00:00:00 2001 From: Skylot <118523+skylot@users.noreply.github.com> Date: Tue, 23 Dec 2025 21:24:42 +0000 Subject: [PATCH] fix(plugins): use class with correct fields for plugins list entry --- .../jadx/cli/commands/CommandPlugins.java | 5 +- .../ui/plugins/AvailablePluginNode.java | 6 +- .../jadx/plugins/tools/JadxPluginsList.java | 14 ++-- .../tools/data/JadxPluginListCache.java | 6 +- .../tools/data/JadxPluginListEntry.java | 70 +++++++++++++++++++ 5 files changed, 86 insertions(+), 15 deletions(-) create mode 100644 jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListEntry.java diff --git a/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java b/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java index 33d7d37d0..a420e8b36 100644 --- a/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java +++ b/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java @@ -15,6 +15,7 @@ import jadx.cli.LogHelper; import jadx.core.utils.StringUtils; import jadx.plugins.tools.JadxPluginsList; import jadx.plugins.tools.JadxPluginsTools; +import jadx.plugins.tools.data.JadxPluginListEntry; import jadx.plugins.tools.data.JadxPluginMetadata; import jadx.plugins.tools.data.JadxPluginUpdate; @@ -116,9 +117,9 @@ public class CommandPlugins implements ICommand { return; } if (available) { - List availableList = JadxPluginsList.getInstance().get(); + List availableList = JadxPluginsList.getInstance().get(); System.out.println("Available plugins: " + availableList.size()); - for (JadxPluginMetadata plugin : availableList) { + for (JadxPluginListEntry plugin : availableList) { System.out.println(" - " + plugin.getName() + ": " + plugin.getDescription() + " (" + plugin.getLocationId() + ")"); } diff --git a/jadx-gui/src/main/java/jadx/gui/settings/ui/plugins/AvailablePluginNode.java b/jadx-gui/src/main/java/jadx/gui/settings/ui/plugins/AvailablePluginNode.java index 563e58596..22698f404 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/ui/plugins/AvailablePluginNode.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/ui/plugins/AvailablePluginNode.java @@ -1,12 +1,12 @@ package jadx.gui.settings.ui.plugins; -import jadx.plugins.tools.data.JadxPluginMetadata; +import jadx.plugins.tools.data.JadxPluginListEntry; public class AvailablePluginNode extends BasePluginListNode { - private final JadxPluginMetadata metadata; + private final JadxPluginListEntry metadata; - public AvailablePluginNode(JadxPluginMetadata metadata) { + public AvailablePluginNode(JadxPluginListEntry metadata) { this.metadata = metadata; } diff --git a/jadx-plugins-tools/src/main/java/jadx/plugins/tools/JadxPluginsList.java b/jadx-plugins-tools/src/main/java/jadx/plugins/tools/JadxPluginsList.java index d310d9cb8..06f5fda75 100644 --- a/jadx-plugins-tools/src/main/java/jadx/plugins/tools/JadxPluginsList.java +++ b/jadx-plugins-tools/src/main/java/jadx/plugins/tools/JadxPluginsList.java @@ -19,7 +19,7 @@ import com.google.gson.reflect.TypeToken; import jadx.core.utils.files.FileUtils; import jadx.plugins.tools.data.JadxPluginListCache; -import jadx.plugins.tools.data.JadxPluginMetadata; +import jadx.plugins.tools.data.JadxPluginListEntry; import jadx.plugins.tools.resolvers.github.GithubTools; import jadx.plugins.tools.resolvers.github.LocationInfo; import jadx.plugins.tools.resolvers.github.data.Asset; @@ -34,7 +34,7 @@ public class JadxPluginsList { private static final Logger LOG = LoggerFactory.getLogger(JadxPluginsList.class); private static final JadxPluginsList INSTANCE = new JadxPluginsList(); - private static final Type LIST_TYPE = new TypeToken>() { + private static final Type LIST_TYPE = new TypeToken>() { }.getType(); private static final Type CACHE_TYPE = new TypeToken() { @@ -59,7 +59,7 @@ public class JadxPluginsList { *
* Method call is blocking. */ - public synchronized void get(Consumer> consumer) { + public synchronized void get(Consumer> consumer) { if (loadedList != null) { consumer.accept(loadedList.getList()); return; @@ -78,8 +78,8 @@ public class JadxPluginsList { } } - public List get() { - AtomicReference> holder = new AtomicReference<>(); + public List get() { + AtomicReference> holder = new AtomicReference<>(); get(holder::set); return holder.get(); } @@ -135,9 +135,9 @@ public class JadxPluginsList { } } - private static List loadListBundle(Path tmpListFile) { + private static List loadListBundle(Path tmpListFile) { Gson gson = buildGson(); - List entries = new ArrayList<>(); + List entries = new ArrayList<>(); new ZipReader().visitEntries(tmpListFile.toFile(), entry -> { if (entry.getName().endsWith(".json")) { try (Reader reader = new InputStreamReader(entry.getInputStream())) { diff --git a/jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListCache.java b/jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListCache.java index 2c24936b2..0b1cc908c 100644 --- a/jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListCache.java +++ b/jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListCache.java @@ -4,7 +4,7 @@ import java.util.List; public class JadxPluginListCache { private String version; - private List list; + private List list; public String getVersion() { return version; @@ -14,11 +14,11 @@ public class JadxPluginListCache { this.version = version; } - public List getList() { + public List getList() { return list; } - public void setList(List list) { + public void setList(List list) { this.list = list; } } diff --git a/jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListEntry.java b/jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListEntry.java new file mode 100644 index 000000000..adf40f6c8 --- /dev/null +++ b/jadx-plugins-tools/src/main/java/jadx/plugins/tools/data/JadxPluginListEntry.java @@ -0,0 +1,70 @@ +package jadx.plugins.tools.data; + +public class JadxPluginListEntry { + private String pluginId; + private String locationId; + private String name; + private String description; + private String homepage; + private int revision; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getHomepage() { + return homepage; + } + + public void setHomepage(String homepage) { + this.homepage = homepage; + } + + public String getLocationId() { + return locationId; + } + + public void setLocationId(String locationId) { + this.locationId = locationId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPluginId() { + return pluginId; + } + + public void setPluginId(String pluginId) { + this.pluginId = pluginId; + } + + public int getRevision() { + return revision; + } + + public void setRevision(int revision) { + this.revision = revision; + } + + @Override + public String toString() { + return "JadxPluginListEntry{" + + "description='" + description + '\'' + + ", pluginId='" + pluginId + '\'' + + ", locationId='" + locationId + '\'' + + ", name='" + name + '\'' + + ", homepage='" + homepage + '\'' + + ", revision=" + revision + + '}'; + } +}