diff --git a/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java b/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java index cd9447fcc..ea0395b12 100644 --- a/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java @@ -80,7 +80,7 @@ public class AndroidResourcesUtils { @SuppressWarnings("RedundantCast") public static boolean handleResourceFieldValue(ClassNode cls, ICodeWriter code, EncodedValue encodedValue) { if (encodedValue.getType() == EncodedType.ENCODED_INT && isResourceClass(cls)) { - code.add(String.format("0x%X", ((Integer) encodedValue.getValue()))); + code.add(String.format("0x%08x", ((Integer) encodedValue.getValue()))); return true; } return false; diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java index 8b8c797ad..087e72232 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java @@ -191,7 +191,7 @@ public class ResTableParser extends CommonBinaryParser { } private String makeNewKeyName(int idx) { - return "JADX_DEOBF_" + idx; + return String.format("jadx_deobf_0x%08x", idx); } @SuppressWarnings("unused") @@ -251,7 +251,7 @@ public class ResTableParser extends CommonBinaryParser { int resRef = pkg.getId() << 24 | typeId << 16 | entryId; String typeName = pkg.getTypeStrings()[typeId - 1]; String origKeyName = pkg.getKeyStrings()[key]; - ResourceEntry newResEntry = new ResourceEntry(resRef, pkg.getName(), typeName, getResName(resRef, origKeyName), config); + ResourceEntry newResEntry = new ResourceEntry(resRef, pkg.getName(), typeName, getResName(typeName, resRef, origKeyName), config); ResourceEntry prevResEntry = resStorage.searchEntryWithSameName(newResEntry); if (prevResEntry != null) { newResEntry = newResEntry.copyWithId(); @@ -280,7 +280,7 @@ public class ResTableParser extends CommonBinaryParser { resStorage.add(newResEntry); } - private String getResName(int resRef, String origKeyName) { + private String getResName(String typeName, int resRef, String origKeyName) { if (this.useRawResName) { return origKeyName; } @@ -288,14 +288,17 @@ public class ResTableParser extends CommonBinaryParser { if (renamedKey != null) { return renamedKey; } - if (VALID_RES_KEY_PATTERN.matcher(origKeyName).matches()) { - return origKeyName; - } FieldNode constField = root.getConstValues().getGlobalConstFields().get(resRef); if (constField != null) { constField.add(AFlag.DONT_RENAME); return constField.getName(); } + // styles might contain dots in name, use VALID_RES_KEY_PATTERN only for resource file name + if (typeName.equals("style")) { + return origKeyName; + } else if (VALID_RES_KEY_PATTERN.matcher(origKeyName).matches()) { + return origKeyName; + } // Making sure origKeyName compliant with resource file name rules Matcher m = VALID_RES_KEY_PATTERN.matcher(origKeyName); StringBuilder sb = new StringBuilder(); @@ -308,7 +311,7 @@ public class ResTableParser extends CommonBinaryParser { first = false; } // autogenerate key name, appended with cleaned origKeyName to be human-friendly - String newResName = "res_" + resRef; + String newResName = String.format("res_0x%08x",resRef); String cleanedResName = sb.toString(); if (!cleanedResName.isEmpty()) { newResName += "_" + cleanedResName.toLowerCase(); diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java index dc6b512c5..1d1eedf6d 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java @@ -23,10 +23,23 @@ import static jadx.core.xmlgen.ParserConstants.TYPE_REFERENCE; public class ResXmlGen { + /** + * Skip only file based resource type + */ private static final Set SKIP_RES_TYPES = new HashSet<>(Arrays.asList( + "anim", + "animator", + "font", + "id", // skip id type, it is usually auto generated when used this syntax "@+id/my_id" + "interpolator", "layout", + "menu", "mipmap", - "id")); + "navigation", + "raw", + "transition", + "xml" + )); private final ResourceStorage resStorage; private final ValuesParser vp; diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/XmlGenUtils.java b/jadx-core/src/main/java/jadx/core/xmlgen/XmlGenUtils.java index 5656e29c5..a046246a3 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/XmlGenUtils.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/XmlGenUtils.java @@ -35,7 +35,7 @@ public class XmlGenUtils { Set addedValues = new HashSet<>(); for (ResourceEntry ri : resStorage.getResources()) { if (addedValues.add(ri.getTypeName() + '.' + ri.getKeyName())) { - String format = String.format("", + String format = String.format("", ri.getTypeName(), ri.getKeyName(), ri.getId()); writer.startLine(format); } diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/entry/ResourceEntry.java b/jadx-core/src/main/java/jadx/core/xmlgen/entry/ResourceEntry.java index 8deb7d83c..aafd56110 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/entry/ResourceEntry.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/entry/ResourceEntry.java @@ -33,7 +33,7 @@ public final class ResourceEntry { } public ResourceEntry copyWithId() { - return copy(keyName + "_RES_" + id); + return copy(String.format("%s_res_0x%08x",keyName,id)); } public int getId() { diff --git a/jadx-gui/build.gradle b/jadx-gui/build.gradle index 305e590b4..083790179 100644 --- a/jadx-gui/build.gradle +++ b/jadx-gui/build.gradle @@ -17,6 +17,8 @@ dependencies { implementation 'com.formdev:flatlaf:1.4' implementation 'com.formdev:flatlaf-intellij-themes:1.4' + implementation 'com.formdev:flatlaf-extras:1.4' + implementation 'com.formdev:svgSalamander:1.1.2.4' implementation 'org.reflections:reflections:0.9.12' implementation 'com.google.code.gson:gson:2.8.6' diff --git a/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java b/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java index 8d187cd04..e6c0d3538 100644 --- a/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java +++ b/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java @@ -22,9 +22,9 @@ import jadx.gui.device.debugger.SmaliDebugger.*; import jadx.gui.device.debugger.smali.Smali; import jadx.gui.device.debugger.smali.SmaliRegister; import jadx.gui.treemodel.JClass; -import jadx.gui.ui.IDebugController; -import jadx.gui.ui.JDebuggerPanel; -import jadx.gui.ui.JDebuggerPanel.*; +import jadx.gui.ui.panel.IDebugController; +import jadx.gui.ui.panel.JDebuggerPanel; +import jadx.gui.ui.panel.JDebuggerPanel.*; import static jadx.gui.device.debugger.SmaliDebugger.RuntimeType; diff --git a/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java b/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java index 826c341b4..c6d1090b8 100644 --- a/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java +++ b/jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java @@ -16,7 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jadx.gui.ui.MainWindow; -import jadx.gui.ui.ProgressPanel; +import jadx.gui.ui.panel.ProgressPanel; import jadx.gui.utils.UiUtils; /** diff --git a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportNode.java b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportNode.java index 10e4a4d70..bad6fc6e0 100644 --- a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportNode.java +++ b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportNode.java @@ -16,8 +16,8 @@ import com.google.gson.GsonBuilder; import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JNode; -import jadx.gui.ui.ContentPanel; -import jadx.gui.ui.HtmlPanel; +import jadx.gui.ui.panel.ContentPanel; +import jadx.gui.ui.panel.HtmlPanel; import jadx.gui.ui.TabbedPane; import jadx.gui.utils.UiUtils; @@ -29,7 +29,7 @@ public class QuarkReportNode extends JNode { private static final Gson GSON = new GsonBuilder().create(); - private static final ImageIcon ICON = UiUtils.openIcon("icon_quark"); + private static final ImageIcon ICON = UiUtils.openSvgIcon("ui/analyze"); private final Path apkFile; private String errorContent; diff --git a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java index bde656f15..ab63e71bc 100644 --- a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java @@ -38,7 +38,7 @@ import jadx.core.utils.Utils; import jadx.gui.JadxWrapper; import jadx.gui.jobs.BackgroundExecutor; import jadx.gui.treemodel.JMethod; -import jadx.gui.ui.ContentPanel; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.ui.MainWindow; import jadx.gui.ui.TabbedPane; import jadx.gui.utils.JNodeCache; diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/ApkSignature.java b/jadx-gui/src/main/java/jadx/gui/treemodel/ApkSignature.java index d36c6fcd6..7c522a46d 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/ApkSignature.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/ApkSignature.java @@ -19,8 +19,8 @@ import com.android.apksig.ApkVerifier; import jadx.api.ResourceFile; import jadx.api.ResourceType; import jadx.gui.JadxWrapper; -import jadx.gui.ui.ContentPanel; -import jadx.gui.ui.HtmlPanel; +import jadx.gui.ui.panel.ContentPanel; +import jadx.gui.ui.panel.HtmlPanel; import jadx.gui.ui.TabbedPane; import jadx.gui.utils.CertificateManager; import jadx.gui.utils.NLS; @@ -31,7 +31,7 @@ public class ApkSignature extends JNode { private static final Logger LOG = LoggerFactory.getLogger(ApkSignature.class); - private static final ImageIcon CERTIFICATE_ICON = UiUtils.openIcon("certificate_obj"); + private static final ImageIcon CERTIFICATE_ICON = UiUtils.openSvgIcon("nodes/styleKeyPack"); private final transient File openFile; private String content; diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java index e1a5043f2..ee9f43d68 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java @@ -2,6 +2,7 @@ package jadx.gui.treemodel; import javax.swing.*; +import jadx.gui.ui.panel.ContentPanel; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; import org.jetbrains.annotations.Nullable; @@ -12,7 +13,6 @@ import jadx.api.JavaMethod; import jadx.api.JavaNode; import jadx.core.dex.attributes.AFlag; import jadx.core.dex.info.AccessInfo; -import jadx.gui.ui.ContentPanel; import jadx.gui.ui.TabbedPane; import jadx.gui.ui.codearea.ClassCodeContentPanel; import jadx.gui.utils.NLS; @@ -21,13 +21,14 @@ import jadx.gui.utils.UiUtils; public class JClass extends JLoadableNode { private static final long serialVersionUID = -1239986875244097177L; - private static final ImageIcon ICON_CLASS = UiUtils.openIcon("class_obj"); - private static final ImageIcon ICON_CLASS_DEFAULT = UiUtils.openIcon("class_default_obj"); - private static final ImageIcon ICON_CLASS_PRIVATE = UiUtils.openIcon("innerclass_private_obj"); - private static final ImageIcon ICON_CLASS_PROTECTED = UiUtils.openIcon("innerclass_protected_obj"); - private static final ImageIcon ICON_INTERFACE = UiUtils.openIcon("int_obj"); - private static final ImageIcon ICON_ENUM = UiUtils.openIcon("enum_obj"); - private static final ImageIcon ICON_ANNOTATION = UiUtils.openIcon("annotation_obj"); + private static final ImageIcon ICON_CLASS = UiUtils.openSvgIcon("nodes/class"); + private static final ImageIcon ICON_CLASS_ABSTRACT = UiUtils.openSvgIcon("nodes/abstractClass"); + private static final ImageIcon ICON_CLASS_PUBLIC = UiUtils.openSvgIcon("nodes/publicClass"); + private static final ImageIcon ICON_CLASS_PRIVATE = UiUtils.openSvgIcon("nodes/privateClass"); + private static final ImageIcon ICON_CLASS_PROTECTED = UiUtils.openSvgIcon("nodes/protectedClass"); + private static final ImageIcon ICON_INTERFACE = UiUtils.openSvgIcon("nodes/interface"); + private static final ImageIcon ICON_ENUM = UiUtils.openSvgIcon("nodes/enum"); + private static final ImageIcon ICON_ANNOTATION = UiUtils.openSvgIcon("nodes/annotationtype"); private final transient JavaClass cls; private final transient JClass jParent; @@ -130,6 +131,9 @@ public class JClass extends JLoadableNode { if (accessInfo.isInterface()) { return ICON_INTERFACE; } + if (accessInfo.isAbstract()) { + return ICON_CLASS_ABSTRACT; + } if (accessInfo.isProtected()) { return ICON_CLASS_PROTECTED; } @@ -137,9 +141,9 @@ public class JClass extends JLoadableNode { return ICON_CLASS_PRIVATE; } if (accessInfo.isPublic()) { - return ICON_CLASS; + return ICON_CLASS_PUBLIC; } - return ICON_CLASS_DEFAULT; + return ICON_CLASS; } @Override diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java index c84fdf43f..cbfc84993 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java @@ -15,14 +15,10 @@ import jadx.gui.utils.UiUtils; public class JField extends JNode { private static final long serialVersionUID = 1712572192106793359L; - private static final ImageIcon ICON_FLD_DEF = UiUtils.openIcon("field_default_obj"); - private static final ImageIcon ICON_FLD_PRI = UiUtils.openIcon("field_private_obj"); - private static final ImageIcon ICON_FLD_PRO = UiUtils.openIcon("field_protected_obj"); - private static final ImageIcon ICON_FLD_PUB = UiUtils.openIcon("field_public_obj"); - - private static final ImageIcon ICON_TRANSIENT = UiUtils.openIcon("transient_co"); - private static final ImageIcon ICON_VOLATILE = UiUtils.openIcon("volatile_co"); - + private static final ImageIcon ICON_FLD_DEF = UiUtils.openSvgIcon("nodes/field"); + private static final ImageIcon ICON_FLD_PRI = UiUtils.openSvgIcon("nodes/privateField"); + private static final ImageIcon ICON_FLD_PRO = UiUtils.openSvgIcon("nodes/protectedField"); + private static final ImageIcon ICON_FLD_PUB = UiUtils.openSvgIcon("nodes/publicField"); private final transient JavaField field; private final transient JClass jParent; @@ -64,12 +60,6 @@ public class JField extends JNode { public Icon getIcon() { AccessInfo af = field.getAccessFlags(); OverlayIcon icon = UiUtils.makeIcon(af, ICON_FLD_PUB, ICON_FLD_PRI, ICON_FLD_PRO, ICON_FLD_DEF); - if (af.isTransient()) { - icon.add(ICON_TRANSIENT); - } - if (af.isVolatile()) { - icon.add(ICON_VOLATILE); - } return icon; } diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java index 8c58e81e7..c86598005 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java @@ -12,22 +12,23 @@ import jadx.api.JavaNode; import jadx.core.dex.attributes.AFlag; import jadx.core.dex.info.AccessInfo; import jadx.core.dex.instructions.args.ArgType; -import jadx.gui.ui.ContentPanel; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.ui.TabbedPane; import jadx.gui.ui.codearea.ClassCodeContentPanel; import jadx.gui.utils.OverlayIcon; import jadx.gui.utils.UiUtils; +import sun.security.mscapi.PRNG; public class JMethod extends JNode { private static final long serialVersionUID = 3834526867464663751L; - private static final ImageIcon ICON_MTH_DEF = UiUtils.openIcon("methdef_obj"); - private static final ImageIcon ICON_MTH_PRI = UiUtils.openIcon("methpri_obj"); - private static final ImageIcon ICON_MTH_PRO = UiUtils.openIcon("methpro_obj"); - private static final ImageIcon ICON_MTH_PUB = UiUtils.openIcon("methpub_obj"); - - private static final ImageIcon ICON_CONSTRUCTOR = UiUtils.openIcon("constr_ovr"); - private static final ImageIcon ICON_SYNC = UiUtils.openIcon("synch_co"); + private static final ImageIcon ICON_METHOD = UiUtils.openSvgIcon("nodes/method"); + private static final ImageIcon ICON_METHOD_ABSTRACT = UiUtils.openSvgIcon("nodes/abstractMethod"); + private static final ImageIcon ICON_METHOD_PRIVATE = UiUtils.openSvgIcon("nodes/privateMethod"); + private static final ImageIcon ICON_METHOD_PROTECTED = UiUtils.openSvgIcon("nodes/protectedMethod"); + private static final ImageIcon ICON_METHOD_PUBLIC = UiUtils.openSvgIcon("nodes/publicMethod"); + private static final ImageIcon ICON_METHOD_CONSTRUCTOR = UiUtils.openSvgIcon("nodes/constructorMethod"); + private static final ImageIcon ICON_METHOD_SYNC = UiUtils.openSvgIcon("nodes/methodReference"); private final transient JavaMethod mth; private final transient JClass jParent; @@ -73,14 +74,35 @@ public class JMethod extends JNode { @Override public Icon getIcon() { AccessInfo accessFlags = mth.getAccessFlags(); - OverlayIcon icon = UiUtils.makeIcon(accessFlags, ICON_MTH_PUB, ICON_MTH_PRI, ICON_MTH_PRO, ICON_MTH_DEF); + Icon icon = ICON_METHOD; + if(accessFlags.isAbstract()){ + icon = ICON_METHOD_ABSTRACT; + } if (accessFlags.isConstructor()) { - icon.add(ICON_CONSTRUCTOR); + icon = ICON_METHOD_CONSTRUCTOR; + } + if(accessFlags.isPublic()){ + icon= ICON_METHOD_PUBLIC; + } + if(accessFlags.isPrivate()){ + icon = ICON_METHOD_PRIVATE; + } + if(accessFlags.isProtected()){ + icon = ICON_METHOD_PROTECTED; } if (accessFlags.isSynchronized()) { - icon.add(ICON_SYNC); + icon= ICON_METHOD_SYNC; } - return icon; + + OverlayIcon overIcon = new OverlayIcon(icon); + if (accessFlags.isFinal()) { + overIcon.add(UiUtils.ICON_FINAL); + } + if (accessFlags.isStatic()) { + overIcon.add(UiUtils.ICON_STATIC); + } + + return overIcon; } @Override diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java index 4d60a9f47..e6671d286 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable; import jadx.api.ICodeInfo; import jadx.api.JadxDecompiler; import jadx.api.JavaNode; -import jadx.gui.ui.ContentPanel; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.ui.TabbedPane; public abstract class JNode extends DefaultMutableTreeNode { diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java index e8e6d4c1a..2bae9c167 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java @@ -16,7 +16,7 @@ import jadx.gui.utils.UiUtils; public class JPackage extends JNode implements Comparable { private static final long serialVersionUID = -4120718634156839804L; - private static final ImageIcon PACKAGE_ICON = UiUtils.openIcon("package_obj"); + private static final ImageIcon PACKAGE_ICON = UiUtils.openSvgIcon("nodes/package"); private String fullName; private String name; diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java index 0f7699733..70c103e78 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java @@ -21,8 +21,8 @@ import jadx.api.ResourcesLoader; import jadx.api.impl.SimpleCodeInfo; import jadx.core.utils.Utils; import jadx.core.xmlgen.ResContainer; -import jadx.gui.ui.ContentPanel; -import jadx.gui.ui.ImagePanel; +import jadx.gui.ui.panel.ContentPanel; +import jadx.gui.ui.panel.ImagePanel; import jadx.gui.ui.TabbedPane; import jadx.gui.ui.codearea.CodeContentPanel; import jadx.gui.utils.NLS; @@ -32,12 +32,16 @@ import jadx.gui.utils.UiUtils; public class JResource extends JLoadableNode implements Comparable { private static final long serialVersionUID = -201018424302612434L; - private static final ImageIcon ROOT_ICON = UiUtils.openIcon("cf_obj"); - private static final ImageIcon FOLDER_ICON = UiUtils.openIcon("folder"); - private static final ImageIcon FILE_ICON = UiUtils.openIcon("file_obj"); - private static final ImageIcon MANIFEST_ICON = UiUtils.openIcon("template_obj"); - private static final ImageIcon JAVA_ICON = UiUtils.openIcon("java_ovr"); - private static final ImageIcon ERROR_ICON = UiUtils.openIcon("error_co"); + private static final ImageIcon ROOT_ICON = UiUtils.openSvgIcon("nodes/resourcesRoot"); + private static final ImageIcon FOLDER_ICON = UiUtils.openSvgIcon("nodes/folder"); + private static final ImageIcon FILE_ICON = UiUtils.openSvgIcon("nodes/file_any_type"); + private static final ImageIcon ARSC_ICON = UiUtils.openSvgIcon("nodes/resourceBundle"); + private static final ImageIcon XML_ICON = UiUtils.openSvgIcon("nodes/xml"); + private static final ImageIcon IMAGE_ICON = UiUtils.openSvgIcon("nodes/ImagesFileType"); + private static final ImageIcon SO_ICON = UiUtils.openSvgIcon("nodes/binaryFile"); + private static final ImageIcon MANIFEST_ICON = UiUtils.openSvgIcon("nodes/manifest"); + private static final ImageIcon JAVA_ICON = UiUtils.openSvgIcon("nodes/java"); + private static final ImageIcon UNKNOWN_ICON = UiUtils.openSvgIcon("nodes/unknown"); public enum JResType { ROOT, @@ -274,16 +278,23 @@ public class JResource extends JLoadableNode implements Comparable { case FILE: ResourceType resType = resFile.getType(); - if (resType == ResourceType.MANIFEST) { - return MANIFEST_ICON; + switch (resType){ + case MANIFEST: + return MANIFEST_ICON; + case ARSC: + return ARSC_ICON; + case XML: + return XML_ICON; + case IMG: + return IMAGE_ICON; + case LIB: + return SO_ICON; + case CODE: + return JAVA_ICON; + case UNKNOWN: + return UNKNOWN_ICON; } - if (resType == ResourceType.CODE) { - return new OverlayIcon(FILE_ICON, ERROR_ICON, JAVA_ICON); - } - if (!isSupportedForView(resType)) { - return new OverlayIcon(FILE_ICON, ERROR_ICON); - } - return FILE_ICON; + return UNKNOWN_ICON; } return FILE_ICON; } diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java index eb4683633..3227fe776 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java @@ -22,7 +22,7 @@ import jadx.gui.utils.UiUtils; public class JRoot extends JNode { private static final long serialVersionUID = 8888495789773527342L; - private static final ImageIcon ROOT_ICON = UiUtils.openIcon("java_model_obj"); + private static final ImageIcon ROOT_ICON = UiUtils.openSvgIcon("nodes/rootPackageFolder"); private final transient JadxWrapper wrapper; diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JSources.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JSources.java index bd50db22a..8a1eaecbb 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JSources.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JSources.java @@ -18,7 +18,7 @@ import jadx.gui.utils.UiUtils; public class JSources extends JNode { private static final long serialVersionUID = 8962924556824862801L; - private static final ImageIcon ROOT_ICON = UiUtils.openIcon("packagefolder_obj"); + private static final ImageIcon ROOT_ICON = UiUtils.openSvgIcon("nodes/packageClasses"); private final transient JadxWrapper wrapper; private final transient boolean flatPackages; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java index 942fcd607..b4ecc22ab 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/MainWindow.java @@ -74,6 +74,11 @@ import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; +import jadx.gui.ui.dialog.*; +import jadx.gui.ui.panel.ContentPanel; +import jadx.gui.ui.panel.JDebuggerPanel; +import jadx.gui.ui.panel.ProgressPanel; +import jadx.gui.ui.popupmenu.JPackagePopupMenu; import org.fife.ui.rsyntaxtextarea.Theme; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -137,24 +142,24 @@ public class MainWindow extends JFrame { private static final double WINDOW_RATIO = 1 - BORDER_RATIO * 2; public static final double SPLIT_PANE_RESIZE_WEIGHT = 0.15; - private static final ImageIcon ICON_OPEN = UiUtils.openIcon("folder"); - private static final ImageIcon ICON_ADD_FILES = UiUtils.openIcon("folder_add"); - private static final ImageIcon ICON_SAVE_ALL = UiUtils.openIcon("disk_multiple"); - private static final ImageIcon ICON_EXPORT = UiUtils.openIcon("database_save"); - private static final ImageIcon ICON_CLOSE = UiUtils.openIcon("cross"); - private static final ImageIcon ICON_SYNC = UiUtils.openIcon("sync"); - private static final ImageIcon ICON_FLAT_PKG = UiUtils.openIcon("empty_logical_package_obj"); - private static final ImageIcon ICON_SEARCH = UiUtils.openIcon("wand"); - private static final ImageIcon ICON_FIND = UiUtils.openIcon("magnifier"); - private static final ImageIcon ICON_COMMENT_SEARCH = UiUtils.openIcon("table_edit"); - private static final ImageIcon ICON_BACK = UiUtils.openIcon("icon_back"); - private static final ImageIcon ICON_FORWARD = UiUtils.openIcon("icon_forward"); - private static final ImageIcon ICON_QUARK = UiUtils.openIcon("icon_quark"); - private static final ImageIcon ICON_PREF = UiUtils.openIcon("wrench"); - private static final ImageIcon ICON_DEOBF = UiUtils.openIcon("lock_edit"); - private static final ImageIcon ICON_LOG = UiUtils.openIcon("report"); - private static final ImageIcon ICON_JADX = UiUtils.openIcon("jadx-logo"); - private static final ImageIcon ICON_DEBUGGER = UiUtils.openIcon("debugger"); + private static final ImageIcon ICON_OPEN = UiUtils.openSvgIcon("ui/openDisk"); + private static final ImageIcon ICON_ADD_FILES = UiUtils.openSvgIcon("ui/addFile"); + private static final ImageIcon ICON_SAVE_ALL = UiUtils.openSvgIcon("ui/menu-saveall"); + private static final ImageIcon ICON_EXPORT = UiUtils.openSvgIcon("ui/export"); + private static final ImageIcon ICON_EXIT = UiUtils.openSvgIcon("ui/exit"); + private static final ImageIcon ICON_SYNC = UiUtils.openSvgIcon("ui/pagination"); + private static final ImageIcon ICON_FLAT_PKG = UiUtils.openSvgIcon("ui/moduleGroup"); + private static final ImageIcon ICON_SEARCH = UiUtils.openSvgIcon("ui/find"); + private static final ImageIcon ICON_FIND = UiUtils.openSvgIcon("ui/ejbFinderMethod"); + private static final ImageIcon ICON_COMMENT_SEARCH = UiUtils.openSvgIcon("ui/usagesFinder"); + private static final ImageIcon ICON_BACK = UiUtils.openSvgIcon("ui/left"); + private static final ImageIcon ICON_FORWARD = UiUtils.openSvgIcon("ui/right"); + private static final ImageIcon ICON_QUARK = UiUtils.openSvgIcon("ui/analyze"); + private static final ImageIcon ICON_PREF = UiUtils.openSvgIcon("ui/settings"); + private static final ImageIcon ICON_DEOBF = UiUtils.openSvgIcon("ui/helmChartLock"); + private static final ImageIcon ICON_LOG = UiUtils.openSvgIcon("ui/logVerbose"); + private static final ImageIcon ICON_INFO = UiUtils.openSvgIcon("ui/showInfos"); + private static final ImageIcon ICON_DEBUGGER = UiUtils.openSvgIcon("ui/startDebugger"); private final transient JadxWrapper wrapper; private final transient JadxSettings settings; @@ -833,7 +838,7 @@ public class MainWindow extends JFrame { prefsAction.putValue(Action.ACCELERATOR_KEY, getKeyStroke(KeyEvent.VK_P, UiUtils.ctrlButton() | KeyEvent.SHIFT_DOWN_MASK)); - Action exitAction = new AbstractAction(NLS.str("file.exit"), ICON_CLOSE) { + Action exitAction = new AbstractAction(NLS.str("file.exit"), ICON_EXIT) { @Override public void actionPerformed(ActionEvent e) { closeWindow(); @@ -917,14 +922,14 @@ public class MainWindow extends JFrame { Action logAction = new AbstractAction(NLS.str("menu.log"), ICON_LOG) { @Override public void actionPerformed(ActionEvent e) { - new LogViewer(MainWindow.this).setVisible(true); + new LogViewerDialog(MainWindow.this).setVisible(true); } }; logAction.putValue(Action.SHORT_DESCRIPTION, NLS.str("menu.log")); logAction.putValue(Action.ACCELERATOR_KEY, getKeyStroke(KeyEvent.VK_L, UiUtils.ctrlButton() | KeyEvent.SHIFT_DOWN_MASK)); - Action aboutAction = new AbstractAction(NLS.str("menu.about"), ICON_JADX) { + Action aboutAction = new AbstractAction(NLS.str("menu.about"), ICON_INFO) { @Override public void actionPerformed(ActionEvent e) { new AboutDialog().setVisible(true); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java b/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java index 198696afd..51368e910 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/TabComponent.java @@ -12,14 +12,15 @@ import javax.swing.plaf.basic.BasicButtonUI; import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JNode; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; public class TabComponent extends JPanel { private static final long serialVersionUID = -8147035487543610321L; - private static final ImageIcon ICON_CLOSE = UiUtils.openIcon("cross"); - private static final ImageIcon ICON_CLOSE_INACTIVE = UiUtils.openIcon("cross_grayed"); + private static final ImageIcon ICON_CLOSE = UiUtils.openSvgIcon("ui/closeHovered"); + private static final ImageIcon ICON_CLOSE_INACTIVE = UiUtils.openSvgIcon("ui/close"); private final TabbedPane tabbedPane; private final ContentPanel contentPanel; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/TabbedPane.java b/jadx-gui/src/main/java/jadx/gui/ui/TabbedPane.java index 201406d2b..d0c8d0705 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/TabbedPane.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/TabbedPane.java @@ -16,6 +16,9 @@ import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; import javax.swing.text.BadLocationException; +import jadx.gui.ui.panel.ContentPanel; +import jadx.gui.ui.panel.HtmlPanel; +import jadx.gui.ui.panel.ImagePanel; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -119,7 +122,7 @@ public class TabbedPane extends JTabbedPane { lastTab = null; return; } - FocusManager.focusOnCodePanel(tab); + // FocusManager.focusOnCodePanel(tab); if (tab == curTab) { // a tab was closed by not the current one. if (lastTab != null && indexOfComponent(lastTab) == -1) { // lastTab was closed setLastTabAdjacentToCurTab(); @@ -194,7 +197,7 @@ public class TabbedPane extends JTabbedPane { codeArea.scrollToLine(line); } } - codeArea.requestFocus(); + //codeArea.requestFocus(); }); } @@ -237,7 +240,7 @@ public class TabbedPane extends JTabbedPane { smaliArea.scrollToDebugPos(pos); } smaliArea.scrollToPos(pos); - smaliArea.requestFocus(); + //smaliArea.requestFocus(); } @Nullable @@ -303,7 +306,7 @@ public class TabbedPane extends JTabbedPane { } @Nullable - ContentPanel getSelectedCodePanel() { + public ContentPanel getSelectedCodePanel() { return (ContentPanel) getSelectedComponent(); } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java index 72a81fda6..3bd380fca 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java @@ -32,7 +32,7 @@ import jadx.core.utils.StringUtils; import jadx.gui.settings.JadxSettings; import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JNode; -import jadx.gui.ui.ContentPanel; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.ui.MainWindow; import jadx.gui.utils.DefaultPopupMenuListener; import jadx.gui.utils.JumpPosition; @@ -53,6 +53,9 @@ public abstract class AbstractCodeArea extends RSyntaxTextArea { setMarkOccurrences(false); setEditable(false); setCodeFoldingEnabled(false); + setFadeCurrentLineHighlight(true); + setCloseCurlyBraces(true); + setAntiAliasingEnabled(true); loadSettings(); JadxSettings settings = contentPanel.getTabbedPane().getMainWindow().getSettings(); setLineWrap(settings.isCodeAreaLineWrap()); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeContentPanel.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeContentPanel.java index b343ba5db..d0b0ba090 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeContentPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeContentPanel.java @@ -1,7 +1,7 @@ package jadx.gui.ui.codearea; import jadx.gui.treemodel.JNode; -import jadx.gui.ui.ContentPanel; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.ui.TabbedPane; /** diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java index 19b98c651..c11c0326b 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java @@ -21,7 +21,7 @@ import jadx.api.JavaNode; import jadx.gui.settings.JadxProject; import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JNode; -import jadx.gui.ui.ContentPanel; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.ui.MainWindow; import jadx.gui.utils.CaretPositionFix; import jadx.gui.utils.DefaultPopupMenuListener; @@ -37,12 +37,13 @@ public final class CodeArea extends AbstractCodeArea { private static final Logger LOG = LoggerFactory.getLogger(CodeArea.class); private static final long serialVersionUID = 6312736869579635796L; + private final boolean isJavaCode; CodeArea(ContentPanel contentPanel) { super(contentPanel); setSyntaxEditingStyle(node.getSyntaxName()); - boolean isJavaCode = node instanceof JClass; + isJavaCode = node instanceof JClass; if (isJavaCode) { ((RSyntaxDocument) getDocument()).setSyntaxStyle(new JadxTokenMaker(this)); addMenuItems(); @@ -243,4 +244,8 @@ public final class CodeArea extends AbstractCodeArea { public JadxProject getProject() { return getMainWindow().getProject(); } + + public boolean isJavaCode() { + return isJavaCode; + } } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodePanel.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodePanel.java index bb8a78ac4..32d22d019 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodePanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodePanel.java @@ -1,23 +1,14 @@ package jadx.gui.ui.codearea; -import java.awt.BorderLayout; -import java.awt.Point; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.util.HashSet; import java.util.Map; import java.util.Set; -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JMenuItem; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; +import javax.swing.*; import javax.swing.JPopupMenu.Separator; -import javax.swing.JScrollPane; -import javax.swing.JViewport; -import javax.swing.KeyStroke; -import javax.swing.SwingUtilities; import javax.swing.border.EmptyBorder; import javax.swing.event.PopupMenuEvent; @@ -28,7 +19,7 @@ import org.slf4j.LoggerFactory; import jadx.api.ICodeInfo; import jadx.core.utils.StringUtils; import jadx.gui.ui.MainWindow; -import jadx.gui.ui.SearchDialog; +import jadx.gui.ui.dialog.SearchDialog; import jadx.gui.utils.CaretPositionFix; import jadx.gui.utils.DefaultPopupMenuListener; import jadx.gui.utils.NLS; @@ -133,16 +124,23 @@ public class CodePanel extends JPanel { if (codeArea instanceof SmaliArea) { return false; } - ICodeInfo codeInfo = codeArea.getNode().getCodeInfo(); - if (codeInfo == null) { - return false; + if (codeArea instanceof CodeArea) { + CodeArea code = (CodeArea) codeArea; + if (!code.isJavaCode()) { + return false; + } + ICodeInfo codeInfo = code.getNode().getCodeInfo(); + if (codeInfo == null) { + return false; + } + Map lineMapping = codeInfo.getLineMapping(); + if (lineMapping.isEmpty()) { + return false; + } + Set uniqueSourceLines = new HashSet<>(lineMapping.values()); + return uniqueSourceLines.size() > 3; } - Map lineMapping = codeInfo.getLineMapping(); - if (lineMapping.isEmpty()) { - return false; - } - Set uniqueSourceLines = new HashSet<>(lineMapping.values()); - return uniqueSourceLines.size() > 3; + return false; } public SearchBar getSearchBar() { diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentAction.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentAction.java index 4ea45b7b6..3e93eb42b 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentAction.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentAction.java @@ -22,7 +22,7 @@ import jadx.api.data.impl.JadxCodeComment; import jadx.api.data.impl.JadxNodeRef; import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JNode; -import jadx.gui.ui.CommentDialog; +import jadx.gui.ui.dialog.CommentDialog; import jadx.gui.utils.CodeLinesInfo; import jadx.gui.utils.DefaultPopupMenuListener; import jadx.gui.utils.NLS; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentSearchAction.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentSearchAction.java index d205df866..d78e1f46f 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentSearchAction.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CommentSearchAction.java @@ -7,7 +7,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.KeyStroke; -import jadx.gui.ui.SearchDialog; +import jadx.gui.ui.dialog.SearchDialog; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/FindUsageAction.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/FindUsageAction.java index ed7575b6c..9fc20fde8 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/FindUsageAction.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/FindUsageAction.java @@ -8,7 +8,7 @@ import javax.swing.*; import org.jetbrains.annotations.Nullable; import jadx.gui.treemodel.JNode; -import jadx.gui.ui.UsageDialog; +import jadx.gui.ui.dialog.UsageDialog; import jadx.gui.utils.NLS; import static javax.swing.KeyStroke.getKeyStroke; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/LineNumbers.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/LineNumbers.java index 4fcaa7b53..9675505bb 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/LineNumbers.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/LineNumbers.java @@ -74,13 +74,20 @@ public class LineNumbers extends JPanel implements CaretListener { setPreferredWidth(); codeArea.addCaretListener(this); - addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - useSourceLines = !useSourceLines; - repaint(); + + // use source lines only decompiled java code + if (codeArea instanceof CodeArea) { + CodeArea code = (CodeArea) codeArea; + if (code.isJavaCode()) { + addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + useSourceLines = !useSourceLines; + repaint(); + } + }); } - }); + } } public void setBorderGap(int borderGap) { diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/RenameAction.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/RenameAction.java index 98d6cb801..8bd37b915 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/RenameAction.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/RenameAction.java @@ -10,7 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jadx.gui.treemodel.JNode; -import jadx.gui.ui.RenameDialog; +import jadx.gui.ui.dialog.RenameDialog; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/SearchBar.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/SearchBar.java index 9cd66af06..30e6f52a0 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/SearchBar.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/SearchBar.java @@ -27,11 +27,11 @@ class SearchBar extends JToolBar { private static final Color COLOR_BG_ERROR = new Color(0xFFDFDE); private static final Color COLOR_BG_WARN = new Color(0xFFFDD9); - private static final Color COLOR_BG_NORMAL = new Color(0xFFFFFF); + //private static final Color COLOR_BG_NORMAL = new Color(0xFFFFFF); - private static final Icon ICON_UP = UiUtils.openIcon("arrow_up"); - private static final Icon ICON_DOWN = UiUtils.openIcon("arrow_down"); - private static final Icon ICON_CLOSE = UiUtils.openIcon("cross"); + private static final Icon ICON_UP = UiUtils.openSvgIcon("ui/top"); + private static final Icon ICON_DOWN = UiUtils.openSvgIcon("ui/bottom"); + private static final Icon ICON_CLOSE = UiUtils.openSvgIcon("ui/close"); private RSyntaxTextArea rTextArea; @@ -148,7 +148,7 @@ class SearchBar extends JToolBar { context.setMarkAll(markAllCB.isSelected()); // TODO hack: move cursor before previous search for not jump to next occurrence - if (direction == 0 && !COLOR_BG_ERROR.equals(searchField.getBackground())) { + /*if (direction == 0) { try { int caretPos = rTextArea.getCaretPosition(); int lineNum = rTextArea.getLineOfOffset(caretPos) - 1; @@ -158,7 +158,7 @@ class SearchBar extends JToolBar { } catch (BadLocationException e) { LOG.error("Caret move error", e); } - } + }*/ SearchResult result = SearchEngine.find(rTextArea, context); if (!result.wasFound()) { @@ -166,12 +166,12 @@ class SearchBar extends JToolBar { if (pos != -1) { rTextArea.setCaretPosition(forward ? 0 : rTextArea.getDocument().getLength() - 1); search(direction); - searchField.setBackground(COLOR_BG_WARN); + //searchField.setBackground(COLOR_BG_WARN); return; } - searchField.setBackground(COLOR_BG_ERROR); + //searchField.setBackground(COLOR_BG_ERROR); } else { - searchField.setBackground(COLOR_BG_NORMAL); + //searchField.setBackground(COLOR_BG_NORMAL); } } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java index 85d451336..b0b519bb8 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/SmaliArea.java @@ -23,17 +23,17 @@ import jadx.gui.settings.JadxSettings; import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JNode; import jadx.gui.treemodel.TextNode; -import jadx.gui.ui.ContentPanel; +import jadx.gui.ui.panel.ContentPanel; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; public final class SmaliArea extends AbstractCodeArea { private static final long serialVersionUID = 1334485631870306494L; - private static final Icon ICON_BREAKPOINT = UiUtils.openIcon("breakpoint"); - private static final Icon ICON_BREAKPOINT_DISABLED = UiUtils.openIcon("breakpoint_disabled"); - private static final Color BREAKPOINT_LINE_COLOR = Color.decode("#FF986E"); - private static final Color DEBUG_LINE_COLOR = Color.decode("#80B4FF"); + private static final Icon ICON_BREAKPOINT = UiUtils.openSvgIcon("debugger/db_set_breakpoint"); + private static final Icon ICON_BREAKPOINT_DISABLED = UiUtils.openSvgIcon("debugger/db_disabled_breakpoint"); + private static final Color BREAKPOINT_LINE_COLOR = Color.decode("#ad103c"); + private static final Color DEBUG_LINE_COLOR = Color.decode("#9c1138"); private final JNode textNode; private final JCheckBoxMenuItem cbUseSmaliV2; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/ADBDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/ADBDialog.java similarity index 98% rename from jadx-gui/src/main/java/jadx/gui/ui/ADBDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/ADBDialog.java index 3d409206a..3b094b901 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/ADBDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/ADBDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.*; import java.awt.event.MouseAdapter; @@ -17,6 +17,8 @@ import jadx.core.utils.exceptions.JadxRuntimeException; import jadx.gui.device.debugger.DbgUtils; import jadx.gui.device.protocol.ADB; import jadx.gui.treemodel.JClass; +import jadx.gui.ui.panel.IDebugController; +import jadx.gui.ui.MainWindow; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; @@ -24,8 +26,8 @@ import static jadx.gui.device.protocol.ADB.Device.*; public class ADBDialog extends JDialog implements ADB.DeviceStateListener, ADB.JDWPProcessListener { private static final long serialVersionUID = -1111111202102181630L; - private static final ImageIcon ICON_DEVICE = UiUtils.openIcon("device"); - private static final ImageIcon ICON_PROCESS = UiUtils.openIcon("process"); + private static final ImageIcon ICON_DEVICE = UiUtils.openSvgIcon("adb/androidDevice"); + private static final ImageIcon ICON_PROCESS = UiUtils.openSvgIcon("adb/addToWatch"); private static DebugSetting debugSetter = null; private final transient MainWindow mainWindow; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/AboutDialog.java similarity index 97% rename from jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/AboutDialog.java index c4ca9ac17..e4f91ee94 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/AboutDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.*; import java.net.URL; @@ -9,7 +9,7 @@ import jadx.api.JadxDecompiler; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; -class AboutDialog extends JDialog { +public class AboutDialog extends JDialog { private static final long serialVersionUID = 5763493590584039096L; public AboutDialog() { diff --git a/jadx-gui/src/main/java/jadx/gui/ui/CommentDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/CommentDialog.java similarity index 99% rename from jadx-gui/src/main/java/jadx/gui/ui/CommentDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/CommentDialog.java index 7f357bd2e..55a74dc5f 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/CommentDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/CommentDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.BorderLayout; import java.awt.Component; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/CommonSearchDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/CommonSearchDialog.java similarity index 99% rename from jadx-gui/src/main/java/jadx/gui/ui/CommonSearchDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/CommonSearchDialog.java index a4b189d46..398d217ac 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/CommonSearchDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/CommonSearchDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.Color; import java.awt.Component; @@ -38,6 +38,9 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; +import jadx.gui.ui.MainWindow; +import jadx.gui.ui.panel.ProgressPanel; +import jadx.gui.ui.TabbedPane; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rtextarea.SearchContext; import org.fife.ui.rtextarea.SearchEngine; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/ExcludePkgDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/ExcludePkgDialog.java similarity index 96% rename from jadx-gui/src/main/java/jadx/gui/ui/ExcludePkgDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/ExcludePkgDialog.java index 7f04b759f..46772c3e3 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/ExcludePkgDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/ExcludePkgDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.*; import java.awt.event.MouseAdapter; @@ -12,12 +12,13 @@ import javax.swing.*; import javax.swing.tree.*; import jadx.api.JavaPackage; +import jadx.gui.ui.MainWindow; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; public class ExcludePkgDialog extends JDialog { private static final long serialVersionUID = -1111111202104151030L; - private static final ImageIcon PACKAGE_ICON = UiUtils.openIcon("package_obj"); + private static final ImageIcon PACKAGE_ICON = UiUtils.openSvgIcon("nodes/package"); private final transient MainWindow mainWindow; private transient JTree tree; @@ -285,8 +286,8 @@ public class ExcludePkgDialog extends JDialog { boolean hasFocus) { if (value instanceof PkgNode) { PkgNode node = (PkgNode) value; - node.checkbox.setBackground(Color.white); - node.checkbox.setForeground(Color.black); + node.checkbox.setBackground(tree.getBackground()); + node.checkbox.setForeground(tree.getForeground()); return node.checkbox; } Component c = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/LogViewer.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/LogViewerDialog.java similarity index 94% rename from jadx-gui/src/main/java/jadx/gui/ui/LogViewer.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/LogViewerDialog.java index 27413bf52..3897d0108 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/LogViewer.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/LogViewerDialog.java @@ -1,9 +1,10 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.*; import javax.swing.*; +import jadx.gui.ui.MainWindow; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import ch.qos.logback.classic.Level; @@ -14,7 +15,7 @@ import jadx.gui.utils.NLS; import jadx.gui.utils.logs.ILogListener; import jadx.gui.utils.logs.LogCollector; -class LogViewer extends JDialog { +public class LogViewerDialog extends JDialog { private static final long serialVersionUID = -2188700277429054641L; private static final Level[] LEVEL_ITEMS = { Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR }; @@ -23,7 +24,7 @@ class LogViewer extends JDialog { private final transient JadxSettings settings; private transient RSyntaxTextArea textPane; - public LogViewer(MainWindow mainWindow) { + public LogViewerDialog(MainWindow mainWindow) { this.settings = mainWindow.getSettings(); initUI(mainWindow); registerLogListener(); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/RenameDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java similarity index 98% rename from jadx-gui/src/main/java/jadx/gui/ui/RenameDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java index bd640a287..f59c31f31 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/RenameDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.BorderLayout; import java.awt.Container; @@ -23,6 +23,9 @@ import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.WindowConstants; +import jadx.gui.ui.panel.ContentPanel; +import jadx.gui.ui.MainWindow; +import jadx.gui.ui.TabbedPane; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/SearchDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java similarity index 99% rename from jadx-gui/src/main/java/jadx/gui/ui/SearchDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java index 07466c299..757060e51 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/SearchDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.*; import java.awt.event.KeyAdapter; @@ -21,6 +21,7 @@ import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; +import jadx.gui.ui.MainWindow; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/SetValueDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/SetValueDialog.java similarity index 97% rename from jadx-gui/src/main/java/jadx/gui/ui/SetValueDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/SetValueDialog.java index 12047b5ce..72d81db36 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/SetValueDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/SetValueDialog.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.*; import java.awt.event.ActionEvent; @@ -11,7 +11,8 @@ import javax.swing.*; import jadx.core.dex.instructions.args.ArgType; import jadx.core.utils.exceptions.JadxRuntimeException; -import jadx.gui.ui.JDebuggerPanel.ValueTreeNode; +import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode; +import jadx.gui.ui.MainWindow; import jadx.gui.utils.NLS; import jadx.gui.utils.TextStandardActions; import jadx.gui.utils.UiUtils; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/UsageDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/UsageDialog.java similarity index 97% rename from jadx-gui/src/main/java/jadx/gui/ui/UsageDialog.java rename to jadx-gui/src/main/java/jadx/gui/ui/dialog/UsageDialog.java index e2e8cd9ad..6fe703179 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/UsageDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/UsageDialog.java @@ -1,10 +1,11 @@ -package jadx.gui.ui; +package jadx.gui.ui.dialog; import java.awt.*; import javax.swing.*; import jadx.gui.treemodel.JNode; +import jadx.gui.ui.MainWindow; import jadx.gui.utils.CodeUsageInfo; import jadx.gui.utils.NLS; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/ContentPanel.java b/jadx-gui/src/main/java/jadx/gui/ui/panel/ContentPanel.java similarity index 94% rename from jadx-gui/src/main/java/jadx/gui/ui/ContentPanel.java rename to jadx-gui/src/main/java/jadx/gui/ui/panel/ContentPanel.java index d012e1bcb..287f6348f 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/ContentPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/panel/ContentPanel.java @@ -1,7 +1,8 @@ -package jadx.gui.ui; +package jadx.gui.ui.panel; import javax.swing.*; +import jadx.gui.ui.TabbedPane; import org.jetbrains.annotations.Nullable; import jadx.gui.treemodel.JClass; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/HtmlPanel.java b/jadx-gui/src/main/java/jadx/gui/ui/panel/HtmlPanel.java similarity index 95% rename from jadx-gui/src/main/java/jadx/gui/ui/HtmlPanel.java rename to jadx-gui/src/main/java/jadx/gui/ui/panel/HtmlPanel.java index 3eb159b4d..832d9a808 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/HtmlPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/panel/HtmlPanel.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.panel; import java.awt.*; @@ -6,6 +6,7 @@ import javax.swing.*; import jadx.gui.settings.JadxSettings; import jadx.gui.treemodel.JNode; +import jadx.gui.ui.TabbedPane; public final class HtmlPanel extends ContentPanel { private static final long serialVersionUID = -6251262855835426245L; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/IDebugController.java b/jadx-gui/src/main/java/jadx/gui/ui/panel/IDebugController.java similarity index 82% rename from jadx-gui/src/main/java/jadx/gui/ui/IDebugController.java rename to jadx-gui/src/main/java/jadx/gui/ui/panel/IDebugController.java index 9166e873e..c7b7d9eaf 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/IDebugController.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/panel/IDebugController.java @@ -1,7 +1,8 @@ -package jadx.gui.ui; +package jadx.gui.ui.panel; import jadx.core.dex.instructions.args.ArgType; -import jadx.gui.ui.JDebuggerPanel.ValueTreeNode; +import jadx.gui.ui.panel.JDebuggerPanel; +import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode; public interface IDebugController { boolean startDebugger(JDebuggerPanel panel, String[] args); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/ImagePanel.java b/jadx-gui/src/main/java/jadx/gui/ui/panel/ImagePanel.java similarity index 97% rename from jadx-gui/src/main/java/jadx/gui/ui/ImagePanel.java rename to jadx-gui/src/main/java/jadx/gui/ui/panel/ImagePanel.java index 61177134c..ead008db1 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/ImagePanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/panel/ImagePanel.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.panel; import java.awt.*; import java.awt.image.BufferedImage; @@ -6,6 +6,7 @@ import java.io.ByteArrayInputStream; import javax.imageio.ImageIO; +import jadx.gui.ui.TabbedPane; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import hu.kazocsaba.imageviewer.ImageViewer; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/JDebuggerPanel.java b/jadx-gui/src/main/java/jadx/gui/ui/panel/JDebuggerPanel.java similarity index 94% rename from jadx-gui/src/main/java/jadx/gui/ui/JDebuggerPanel.java rename to jadx-gui/src/main/java/jadx/gui/ui/panel/JDebuggerPanel.java index 48400daaa..80cc912c1 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/JDebuggerPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/panel/JDebuggerPanel.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.panel; import java.awt.*; import java.awt.event.*; @@ -12,21 +12,24 @@ import io.reactivex.annotations.Nullable; import jadx.core.utils.StringUtils; import jadx.gui.device.debugger.DebugController; import jadx.gui.treemodel.JClass; +import jadx.gui.ui.MainWindow; +import jadx.gui.ui.popupmenu.VarTreePopupMenu; import jadx.gui.ui.codearea.SmaliArea; +import jadx.gui.ui.dialog.ADBDialog; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; public class JDebuggerPanel extends JPanel { private static final long serialVersionUID = -1111111202102181631L; - private static final ImageIcon ICON_RUN = UiUtils.openIcon("run"); - private static final ImageIcon ICON_RERUN = UiUtils.openIcon("rerun"); - private static final ImageIcon ICON_PAUSE = UiUtils.openIcon("pause"); - private static final ImageIcon ICON_STOP = UiUtils.openIcon("stop"); - private static final ImageIcon ICON_STOP_GRAY = UiUtils.openIcon("stop_gray"); - private static final ImageIcon ICON_STEP_INTO = UiUtils.openIcon("step_into"); - private static final ImageIcon ICON_STEP_OVER = UiUtils.openIcon("step_over"); - private static final ImageIcon ICON_STEP_OUT = UiUtils.openIcon("step_out"); + private static final ImageIcon ICON_RUN = UiUtils.openSvgIcon("debugger/execute"); + private static final ImageIcon ICON_RERUN = UiUtils.openSvgIcon("debugger/rerun"); + private static final ImageIcon ICON_PAUSE = UiUtils.openSvgIcon("debugger/threadFrozen"); + private static final ImageIcon ICON_STOP = UiUtils.openSvgIcon("debugger/suspend"); + private static final ImageIcon ICON_STOP_GRAY = UiUtils.openSvgIcon("debugger/suspendGray"); + private static final ImageIcon ICON_STEP_INTO = UiUtils.openSvgIcon("debugger/traceInto"); + private static final ImageIcon ICON_STEP_OVER = UiUtils.openSvgIcon("debugger/traceOver"); + private static final ImageIcon ICON_STEP_OUT = UiUtils.openSvgIcon("debugger/stepOut"); private final transient MainWindow mainWindow; private final transient JList stackFrameList; @@ -86,12 +89,8 @@ public class JDebuggerPanel extends JPanel { boolean hasFocus) { Component c = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); if (value instanceof ValueTreeNode) { - if (sel) { - setForeground(Color.WHITE); - } else if (((ValueTreeNode) value).isUpdated()) { + if (((ValueTreeNode) value).isUpdated()) { setForeground(Color.RED); - } else { - setForeground(Color.BLACK); } } return c; @@ -117,7 +116,7 @@ public class JDebuggerPanel extends JPanel { JPanel headerPanel = new JPanel(new BorderLayout()); headerPanel.add(new Label(), BorderLayout.WEST); headerPanel.add(initToolBar(), BorderLayout.CENTER); - JButton closeBtn = new JButton(UiUtils.openIcon("cross")); + JButton closeBtn = new JButton(UiUtils.openSvgIcon("ui/close")); closeBtn.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { diff --git a/jadx-gui/src/main/java/jadx/gui/ui/ProgressPanel.java b/jadx-gui/src/main/java/jadx/gui/ui/panel/ProgressPanel.java similarity index 96% rename from jadx-gui/src/main/java/jadx/gui/ui/ProgressPanel.java rename to jadx-gui/src/main/java/jadx/gui/ui/panel/ProgressPanel.java index 632063320..f0b469e3d 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/ProgressPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/panel/ProgressPanel.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.panel; import java.awt.Dimension; import java.beans.PropertyChangeEvent; @@ -13,13 +13,14 @@ import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.SwingWorker; +import jadx.gui.ui.MainWindow; import jadx.gui.utils.UiUtils; public class ProgressPanel extends JPanel implements PropertyChangeListener { private static final long serialVersionUID = -3238438119672015733L; - private static final Icon ICON_CANCEL = UiUtils.openIcon("cross"); + private static final Icon ICON_CANCEL = UiUtils.openSvgIcon("ui/close"); private final JProgressBar progressBar; private final JLabel progressLabel; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/JPackagePopupMenu.java b/jadx-gui/src/main/java/jadx/gui/ui/popupmenu/JPackagePopupMenu.java similarity index 95% rename from jadx-gui/src/main/java/jadx/gui/ui/JPackagePopupMenu.java rename to jadx-gui/src/main/java/jadx/gui/ui/popupmenu/JPackagePopupMenu.java index e9ec4a9c6..8a525cb42 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/JPackagePopupMenu.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/popupmenu/JPackagePopupMenu.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.popupmenu; import java.awt.event.ActionEvent; import java.util.Arrays; @@ -6,6 +6,9 @@ import java.util.List; import javax.swing.*; +import jadx.gui.ui.MainWindow; +import jadx.gui.ui.dialog.ExcludePkgDialog; +import jadx.gui.ui.dialog.RenameDialog; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,7 +18,7 @@ import jadx.gui.treemodel.JClass; import jadx.gui.treemodel.JPackage; import jadx.gui.utils.NLS; -class JPackagePopupMenu extends JPopupMenu { +public class JPackagePopupMenu extends JPopupMenu { private static final long serialVersionUID = -7781009781149224131L; private static final Logger LOG = LoggerFactory.getLogger(JPackagePopupMenu.class); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/VarTreePopupMenu.java b/jadx-gui/src/main/java/jadx/gui/ui/popupmenu/VarTreePopupMenu.java similarity index 94% rename from jadx-gui/src/main/java/jadx/gui/ui/VarTreePopupMenu.java rename to jadx-gui/src/main/java/jadx/gui/ui/popupmenu/VarTreePopupMenu.java index 43ad266b7..4621d7648 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/VarTreePopupMenu.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/popupmenu/VarTreePopupMenu.java @@ -1,4 +1,4 @@ -package jadx.gui.ui; +package jadx.gui.ui.popupmenu; import java.awt.*; import java.awt.datatransfer.Clipboard; @@ -8,7 +8,9 @@ import java.awt.event.ActionEvent; import javax.swing.*; import jadx.core.dex.instructions.args.ArgType; -import jadx.gui.ui.JDebuggerPanel.ValueTreeNode; +import jadx.gui.ui.MainWindow; +import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode; +import jadx.gui.ui.dialog.SetValueDialog; import jadx.gui.utils.NLS; import jadx.gui.utils.UiUtils; diff --git a/jadx-gui/src/main/java/jadx/gui/utils/CacheObject.java b/jadx-gui/src/main/java/jadx/gui/utils/CacheObject.java index 9e7b80f79..5af32ff9c 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/CacheObject.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/CacheObject.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable; import jadx.gui.jobs.IndexService; import jadx.gui.settings.JadxSettings; import jadx.gui.treemodel.JRoot; -import jadx.gui.ui.SearchDialog; +import jadx.gui.ui.dialog.SearchDialog; import jadx.gui.utils.search.CommentsIndex; import jadx.gui.utils.search.TextSearchIndex; diff --git a/jadx-gui/src/main/java/jadx/gui/utils/LafManager.java b/jadx-gui/src/main/java/jadx/gui/utils/LafManager.java index 03a9ac792..caee78528 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/LafManager.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/LafManager.java @@ -1,25 +1,16 @@ package jadx.gui.utils; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.swing.LookAndFeel; -import javax.swing.UIManager; - +import ch.qos.logback.classic.Level; +import com.formdev.flatlaf.FlatLaf; +import com.formdev.flatlaf.extras.FlatAnimatedLafChange; +import jadx.cli.LogHelper; +import jadx.gui.settings.JadxSettings; import org.reflections.Reflections; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.formdev.flatlaf.FlatLaf; - -import ch.qos.logback.classic.Level; - -import jadx.cli.LogHelper; -import jadx.gui.settings.JadxSettings; +import javax.swing.*; +import java.util.*; public class LafManager { private static final Logger LOG = LoggerFactory.getLogger(LafManager.class); @@ -38,7 +29,9 @@ public class LafManager { public static void updateLaf(JadxSettings settings) { if (setupLaf(getThemeClass(settings))) { + // update all components FlatLaf.updateUI(); + FlatAnimatedLafChange.hideSnapshotWithAnimation(); } } @@ -89,6 +82,7 @@ public class LafManager { private static boolean applyLaf(String theme) { try { + FlatAnimatedLafChange.showSnapshot(); UIManager.setLookAndFeel(theme); return true; } catch (Exception e) { diff --git a/jadx-gui/src/main/java/jadx/gui/utils/UiUtils.java b/jadx-gui/src/main/java/jadx/gui/utils/UiUtils.java index 21c84b9db..899361a6d 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/UiUtils.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/UiUtils.java @@ -1,11 +1,16 @@ package jadx.gui.utils; -import java.awt.Component; -import java.awt.Image; -import java.awt.MouseInfo; -import java.awt.Point; -import java.awt.Toolkit; -import java.awt.Window; +import com.formdev.flatlaf.extras.FlatSVGIcon; +import jadx.core.dex.info.AccessInfo; +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.utils.exceptions.JadxRuntimeException; +import jadx.gui.ui.codearea.AbstractCodeArea; +import org.intellij.lang.annotations.MagicConstant; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.swing.*; +import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; @@ -15,31 +20,11 @@ import java.net.URL; import java.util.ArrayList; import java.util.List; -import javax.swing.Action; -import javax.swing.Icon; -import javax.swing.ImageIcon; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.JOptionPane; -import javax.swing.KeyStroke; -import javax.swing.SwingUtilities; - -import org.intellij.lang.annotations.MagicConstant; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jadx.core.dex.info.AccessInfo; -import jadx.core.dex.instructions.args.ArgType; -import jadx.core.utils.exceptions.JadxRuntimeException; -import jadx.gui.ui.codearea.AbstractCodeArea; - public class UiUtils { private static final Logger LOG = LoggerFactory.getLogger(UiUtils.class); - private static final ImageIcon ICON_STATIC = openIcon("static_co"); - private static final ImageIcon ICON_FINAL = openIcon("final_co"); - private static final ImageIcon ICON_ABSTRACT = openIcon("abstract_co"); - private static final ImageIcon ICON_NATIVE = openIcon("native_co"); + public static final ImageIcon ICON_STATIC = openSvgIcon("nodes/staticMark"); + public static final ImageIcon ICON_FINAL = openSvgIcon("nodes/finalMark"); /** * The minimum about of memory in bytes we are trying to keep free, otherwise the application may @@ -56,6 +41,11 @@ public class UiUtils { private UiUtils() { } + public static FlatSVGIcon openSvgIcon(String name) { + String iconPath = "icons/" + name + ".svg"; + return new FlatSVGIcon(iconPath); + } + public static ImageIcon openIcon(String name) { String iconPath = "/icons-16/" + name + ".png"; URL resource = UiUtils.class.getResource(iconPath); @@ -134,12 +124,6 @@ public class UiUtils { if (af.isStatic()) { overIcon.add(ICON_STATIC); } - if (af.isAbstract()) { - overIcon.add(ICON_ABSTRACT); - } - if (af.isNative()) { - overIcon.add(ICON_NATIVE); - } return overIcon; } diff --git a/jadx-gui/src/main/java/jadx/gui/utils/search/TextSearchIndex.java b/jadx-gui/src/main/java/jadx/gui/utils/search/TextSearchIndex.java index f5d240fcc..3ae0d9ee2 100644 --- a/jadx-gui/src/main/java/jadx/gui/utils/search/TextSearchIndex.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/search/TextSearchIndex.java @@ -19,22 +19,22 @@ import jadx.api.JavaNode; import jadx.gui.treemodel.CodeNode; import jadx.gui.treemodel.JNode; import jadx.gui.ui.MainWindow; -import jadx.gui.ui.SearchDialog; +import jadx.gui.ui.dialog.SearchDialog; import jadx.gui.utils.CacheObject; import jadx.gui.utils.CodeLinesInfo; import jadx.gui.utils.JNodeCache; import jadx.gui.utils.JumpPosition; import jadx.gui.utils.UiUtils; -import static jadx.gui.ui.SearchDialog.SearchOptions.ACTIVE_TAB; -import static jadx.gui.ui.SearchDialog.SearchOptions.CLASS; -import static jadx.gui.ui.SearchDialog.SearchOptions.CODE; -import static jadx.gui.ui.SearchDialog.SearchOptions.COMMENT; -import static jadx.gui.ui.SearchDialog.SearchOptions.FIELD; -import static jadx.gui.ui.SearchDialog.SearchOptions.IGNORE_CASE; -import static jadx.gui.ui.SearchDialog.SearchOptions.METHOD; -import static jadx.gui.ui.SearchDialog.SearchOptions.RESOURCE; -import static jadx.gui.ui.SearchDialog.SearchOptions.USE_REGEX; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.ACTIVE_TAB; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.CLASS; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.CODE; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.COMMENT; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.FIELD; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.IGNORE_CASE; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.METHOD; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.RESOURCE; +import static jadx.gui.ui.dialog.SearchDialog.SearchOptions.USE_REGEX; public class TextSearchIndex { diff --git a/jadx-gui/src/main/resources/icons-16/abstract_co.png b/jadx-gui/src/main/resources/icons-16/abstract_co.png deleted file mode 100644 index 658b8fde5..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/abstract_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/annotation_obj.png b/jadx-gui/src/main/resources/icons-16/annotation_obj.png deleted file mode 100644 index e1b272b2e..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/annotation_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/arrow_down.png b/jadx-gui/src/main/resources/icons-16/arrow_down.png deleted file mode 100644 index 2c4e27937..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/arrow_down.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/arrow_up.png b/jadx-gui/src/main/resources/icons-16/arrow_up.png deleted file mode 100644 index 1ebb19324..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/arrow_up.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/breakpoint.png b/jadx-gui/src/main/resources/icons-16/breakpoint.png deleted file mode 100644 index 0cfd58596..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/breakpoint.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/breakpoint_disabled.png b/jadx-gui/src/main/resources/icons-16/breakpoint_disabled.png deleted file mode 100644 index e21fa44c5..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/breakpoint_disabled.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/certificate_obj.png b/jadx-gui/src/main/resources/icons-16/certificate_obj.png deleted file mode 100644 index ffe6a175a..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/certificate_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/cf_obj.png b/jadx-gui/src/main/resources/icons-16/cf_obj.png deleted file mode 100644 index 1a02ea3eb..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/cf_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/class_default_obj.png b/jadx-gui/src/main/resources/icons-16/class_default_obj.png deleted file mode 100644 index af7e9df27..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/class_default_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/class_obj.png b/jadx-gui/src/main/resources/icons-16/class_obj.png deleted file mode 100644 index c57c2d00f..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/class_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/constr_ovr.png b/jadx-gui/src/main/resources/icons-16/constr_ovr.png deleted file mode 100644 index 65964a92e..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/constr_ovr.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/cross.png b/jadx-gui/src/main/resources/icons-16/cross.png deleted file mode 100644 index 1514d51a3..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/cross.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/cross_grayed.png b/jadx-gui/src/main/resources/icons-16/cross_grayed.png deleted file mode 100644 index 5fe76ff6d..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/cross_grayed.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/database_save.png b/jadx-gui/src/main/resources/icons-16/database_save.png deleted file mode 100644 index 44c06dddf..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/database_save.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/debugger.png b/jadx-gui/src/main/resources/icons-16/debugger.png deleted file mode 100644 index 2d5fb90ec..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/debugger.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/device.png b/jadx-gui/src/main/resources/icons-16/device.png deleted file mode 100644 index dd0168ea9..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/device.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/disk_multiple.png b/jadx-gui/src/main/resources/icons-16/disk_multiple.png deleted file mode 100644 index fc5a52f5e..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/disk_multiple.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/empty_logical_package_obj.png b/jadx-gui/src/main/resources/icons-16/empty_logical_package_obj.png deleted file mode 100644 index acfb2238a..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/empty_logical_package_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/empty_pack_obj.png b/jadx-gui/src/main/resources/icons-16/empty_pack_obj.png deleted file mode 100644 index a2d43103f..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/empty_pack_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/enum_obj.png b/jadx-gui/src/main/resources/icons-16/enum_obj.png deleted file mode 100644 index 5e96f5e39..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/enum_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/error_co.png b/jadx-gui/src/main/resources/icons-16/error_co.png deleted file mode 100644 index d8f068012..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/error_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/field_default_obj.png b/jadx-gui/src/main/resources/icons-16/field_default_obj.png deleted file mode 100644 index becfe6b11..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/field_default_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/field_private_obj.png b/jadx-gui/src/main/resources/icons-16/field_private_obj.png deleted file mode 100644 index d3fa87ddd..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/field_private_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/field_protected_obj.png b/jadx-gui/src/main/resources/icons-16/field_protected_obj.png deleted file mode 100644 index dc80489bc..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/field_protected_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/field_public_obj.png b/jadx-gui/src/main/resources/icons-16/field_public_obj.png deleted file mode 100644 index 40a5ef1c8..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/field_public_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/file_obj.png b/jadx-gui/src/main/resources/icons-16/file_obj.png deleted file mode 100644 index 4e9dc3802..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/file_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/final_co.png b/jadx-gui/src/main/resources/icons-16/final_co.png deleted file mode 100644 index ec1b0346d..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/final_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/folder.png b/jadx-gui/src/main/resources/icons-16/folder.png deleted file mode 100644 index 784e8fa48..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/folder.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/folder_add.png b/jadx-gui/src/main/resources/icons-16/folder_add.png deleted file mode 100644 index 529fe8fe0..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/folder_add.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/icon_back.png b/jadx-gui/src/main/resources/icons-16/icon_back.png deleted file mode 100644 index eabefb77e..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/icon_back.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/icon_forward.png b/jadx-gui/src/main/resources/icons-16/icon_forward.png deleted file mode 100644 index 97aaa4192..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/icon_forward.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/icon_quark.png b/jadx-gui/src/main/resources/icons-16/icon_quark.png deleted file mode 100644 index 1524100e2..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/icon_quark.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/innerclass_private_obj.png b/jadx-gui/src/main/resources/icons-16/innerclass_private_obj.png deleted file mode 100644 index 3fbcbe916..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/innerclass_private_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/innerclass_protected_obj.png b/jadx-gui/src/main/resources/icons-16/innerclass_protected_obj.png deleted file mode 100644 index 9a668e425..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/innerclass_protected_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/int_obj.png b/jadx-gui/src/main/resources/icons-16/int_obj.png deleted file mode 100644 index 31caf5a71..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/int_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/jadx-logo.png b/jadx-gui/src/main/resources/icons-16/jadx-logo.png deleted file mode 100644 index a9a2d0856..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/jadx-logo.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/java_model_obj.png b/jadx-gui/src/main/resources/icons-16/java_model_obj.png deleted file mode 100644 index 3918c215f..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/java_model_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/java_ovr.png b/jadx-gui/src/main/resources/icons-16/java_ovr.png deleted file mode 100644 index 11cf64acf..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/java_ovr.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/jcu_obj.png b/jadx-gui/src/main/resources/icons-16/jcu_obj.png deleted file mode 100644 index dceae7219..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/jcu_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/library_obj.png b/jadx-gui/src/main/resources/icons-16/library_obj.png deleted file mode 100644 index ed1a4d626..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/library_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/lock_edit.png b/jadx-gui/src/main/resources/icons-16/lock_edit.png deleted file mode 100644 index 116aa5b7f..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/lock_edit.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/magnifier.png b/jadx-gui/src/main/resources/icons-16/magnifier.png deleted file mode 100644 index cf3d97f75..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/magnifier.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/methdef_obj.png b/jadx-gui/src/main/resources/icons-16/methdef_obj.png deleted file mode 100644 index a4131b9ba..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/methdef_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/methpri_obj.png b/jadx-gui/src/main/resources/icons-16/methpri_obj.png deleted file mode 100644 index 57dbb7691..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/methpri_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/methpro_obj.png b/jadx-gui/src/main/resources/icons-16/methpro_obj.png deleted file mode 100644 index 3e4c0d785..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/methpro_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/methpub_obj.png b/jadx-gui/src/main/resources/icons-16/methpub_obj.png deleted file mode 100644 index 300419528..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/methpub_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/native_co.png b/jadx-gui/src/main/resources/icons-16/native_co.png deleted file mode 100644 index bb410c523..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/native_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/package_obj.png b/jadx-gui/src/main/resources/icons-16/package_obj.png deleted file mode 100644 index 0afea5b86..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/package_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/packagefolder_obj.png b/jadx-gui/src/main/resources/icons-16/packagefolder_obj.png deleted file mode 100644 index 93053b772..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/packagefolder_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/pause.png b/jadx-gui/src/main/resources/icons-16/pause.png deleted file mode 100644 index 96185ff08..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/pause.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/process.png b/jadx-gui/src/main/resources/icons-16/process.png deleted file mode 100644 index b0ce7bb19..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/process.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/report.png b/jadx-gui/src/main/resources/icons-16/report.png deleted file mode 100644 index 779ad58ef..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/report.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/rerun.png b/jadx-gui/src/main/resources/icons-16/rerun.png deleted file mode 100644 index 0de26566d..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/rerun.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/run.png b/jadx-gui/src/main/resources/icons-16/run.png deleted file mode 100644 index e252606d3..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/run.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/static_co.png b/jadx-gui/src/main/resources/icons-16/static_co.png deleted file mode 100644 index 655c9c069..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/static_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/step_into.png b/jadx-gui/src/main/resources/icons-16/step_into.png deleted file mode 100644 index b1a181923..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/step_into.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/step_out.png b/jadx-gui/src/main/resources/icons-16/step_out.png deleted file mode 100644 index a3d6c9e39..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/step_out.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/step_over.png b/jadx-gui/src/main/resources/icons-16/step_over.png deleted file mode 100644 index 2c4e27937..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/step_over.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/stop.png b/jadx-gui/src/main/resources/icons-16/stop.png deleted file mode 100644 index 0cfd58596..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/stop.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/stop_gray.png b/jadx-gui/src/main/resources/icons-16/stop_gray.png deleted file mode 100644 index e21fa44c5..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/stop_gray.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/sync.png b/jadx-gui/src/main/resources/icons-16/sync.png deleted file mode 100644 index 708790158..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/sync.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/synch_co.png b/jadx-gui/src/main/resources/icons-16/synch_co.png deleted file mode 100644 index 2e950e988..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/synch_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/table_edit.png b/jadx-gui/src/main/resources/icons-16/table_edit.png deleted file mode 100644 index bfcb0249a..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/table_edit.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/template_obj.png b/jadx-gui/src/main/resources/icons-16/template_obj.png deleted file mode 100644 index 4a7596a74..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/template_obj.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/transient_co.png b/jadx-gui/src/main/resources/icons-16/transient_co.png deleted file mode 100644 index 4f54e545e..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/transient_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/volatile_co.png b/jadx-gui/src/main/resources/icons-16/volatile_co.png deleted file mode 100644 index cd99249f5..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/volatile_co.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/wand.png b/jadx-gui/src/main/resources/icons-16/wand.png deleted file mode 100644 index 44ccbf812..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/wand.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons-16/wrench.png b/jadx-gui/src/main/resources/icons-16/wrench.png deleted file mode 100644 index 5c8213fef..000000000 Binary files a/jadx-gui/src/main/resources/icons-16/wrench.png and /dev/null differ diff --git a/jadx-gui/src/main/resources/icons/adb/addToWatch.svg b/jadx-gui/src/main/resources/icons/adb/addToWatch.svg new file mode 100644 index 000000000..6a1ae9166 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/adb/addToWatch.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/adb/androidDevice.svg b/jadx-gui/src/main/resources/icons/adb/androidDevice.svg new file mode 100644 index 000000000..76f8f50cd --- /dev/null +++ b/jadx-gui/src/main/resources/icons/adb/androidDevice.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/db_disabled_breakpoint.svg b/jadx-gui/src/main/resources/icons/debugger/db_disabled_breakpoint.svg new file mode 100644 index 000000000..931866f06 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/db_disabled_breakpoint.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/db_set_breakpoint.svg b/jadx-gui/src/main/resources/icons/debugger/db_set_breakpoint.svg new file mode 100644 index 000000000..ae82e6429 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/db_set_breakpoint.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/execute.svg b/jadx-gui/src/main/resources/icons/debugger/execute.svg new file mode 100644 index 000000000..e6f910728 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/execute.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/rerun.svg b/jadx-gui/src/main/resources/icons/debugger/rerun.svg new file mode 100644 index 000000000..167be36bf --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/rerun.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/stepOut.svg b/jadx-gui/src/main/resources/icons/debugger/stepOut.svg new file mode 100644 index 000000000..98d724098 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/stepOut.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/suspend.svg b/jadx-gui/src/main/resources/icons/debugger/suspend.svg new file mode 100644 index 000000000..06de4b815 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/suspend.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/suspendGray.svg b/jadx-gui/src/main/resources/icons/debugger/suspendGray.svg new file mode 100644 index 000000000..cc62e8036 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/suspendGray.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/threadFrozen.svg b/jadx-gui/src/main/resources/icons/debugger/threadFrozen.svg new file mode 100644 index 000000000..46d578ee9 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/threadFrozen.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/traceInto.svg b/jadx-gui/src/main/resources/icons/debugger/traceInto.svg new file mode 100644 index 000000000..4cfc37901 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/traceInto.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/debugger/traceOver.svg b/jadx-gui/src/main/resources/icons/debugger/traceOver.svg new file mode 100644 index 000000000..ad1c88d73 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/debugger/traceOver.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/ImagesFileType.svg b/jadx-gui/src/main/resources/icons/nodes/ImagesFileType.svg new file mode 100644 index 000000000..3ca29504c --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/ImagesFileType.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/abstractClass.svg b/jadx-gui/src/main/resources/icons/nodes/abstractClass.svg new file mode 100644 index 000000000..601820302 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/abstractClass.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/abstractMethod.svg b/jadx-gui/src/main/resources/icons/nodes/abstractMethod.svg new file mode 100644 index 000000000..7768df1af --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/abstractMethod.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/annotationtype.svg b/jadx-gui/src/main/resources/icons/nodes/annotationtype.svg new file mode 100644 index 000000000..b80c54b4b --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/annotationtype.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/binaryFile.svg b/jadx-gui/src/main/resources/icons/nodes/binaryFile.svg new file mode 100644 index 000000000..5719f872e --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/binaryFile.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/class.svg b/jadx-gui/src/main/resources/icons/nodes/class.svg new file mode 100644 index 000000000..3f1ad167e --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/class.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/constructorMethod.svg b/jadx-gui/src/main/resources/icons/nodes/constructorMethod.svg new file mode 100644 index 000000000..acb5b4c59 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/constructorMethod.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/enum.svg b/jadx-gui/src/main/resources/icons/nodes/enum.svg new file mode 100644 index 000000000..fa7f24766 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/enum.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/field.svg b/jadx-gui/src/main/resources/icons/nodes/field.svg new file mode 100644 index 000000000..6d54bc0d1 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/field.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/file_any_type.svg b/jadx-gui/src/main/resources/icons/nodes/file_any_type.svg new file mode 100644 index 000000000..dac188da3 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/file_any_type.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/finalMark.svg b/jadx-gui/src/main/resources/icons/nodes/finalMark.svg new file mode 100644 index 000000000..14cbf71f0 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/finalMark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/folder.svg b/jadx-gui/src/main/resources/icons/nodes/folder.svg new file mode 100644 index 000000000..31a34869b --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/folder.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/interface.svg b/jadx-gui/src/main/resources/icons/nodes/interface.svg new file mode 100644 index 000000000..32063ba26 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/interface.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/java.svg b/jadx-gui/src/main/resources/icons/nodes/java.svg new file mode 100644 index 000000000..18d86c41e --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/java.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/manifest.svg b/jadx-gui/src/main/resources/icons/nodes/manifest.svg new file mode 100644 index 000000000..57a3d71c0 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/manifest.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/method.svg b/jadx-gui/src/main/resources/icons/nodes/method.svg new file mode 100644 index 000000000..a7f67c156 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/method.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/methodReference.svg b/jadx-gui/src/main/resources/icons/nodes/methodReference.svg new file mode 100644 index 000000000..e374ec65f --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/methodReference.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/package.svg b/jadx-gui/src/main/resources/icons/nodes/package.svg new file mode 100644 index 000000000..2e5356915 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/package.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/packageClasses.svg b/jadx-gui/src/main/resources/icons/nodes/packageClasses.svg new file mode 100644 index 000000000..596bfa51c --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/packageClasses.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/privateClass.svg b/jadx-gui/src/main/resources/icons/nodes/privateClass.svg new file mode 100644 index 000000000..aabfc950e --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/privateClass.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/privateField.svg b/jadx-gui/src/main/resources/icons/nodes/privateField.svg new file mode 100644 index 000000000..fbb08b0d7 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/privateField.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/privateMethod.svg b/jadx-gui/src/main/resources/icons/nodes/privateMethod.svg new file mode 100644 index 000000000..acfdd519c --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/privateMethod.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/protectedClass.svg b/jadx-gui/src/main/resources/icons/nodes/protectedClass.svg new file mode 100644 index 000000000..61fe011a8 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/protectedClass.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/protectedField.svg b/jadx-gui/src/main/resources/icons/nodes/protectedField.svg new file mode 100644 index 000000000..03732183b --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/protectedField.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/protectedMethod.svg b/jadx-gui/src/main/resources/icons/nodes/protectedMethod.svg new file mode 100644 index 000000000..c896ef4af --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/protectedMethod.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/publicClass.svg b/jadx-gui/src/main/resources/icons/nodes/publicClass.svg new file mode 100644 index 000000000..939d9d87e --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/publicClass.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/publicField.svg b/jadx-gui/src/main/resources/icons/nodes/publicField.svg new file mode 100644 index 000000000..f5d157e42 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/publicField.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/publicMethod.svg b/jadx-gui/src/main/resources/icons/nodes/publicMethod.svg new file mode 100644 index 000000000..e31d41e39 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/publicMethod.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/resourceBundle.svg b/jadx-gui/src/main/resources/icons/nodes/resourceBundle.svg new file mode 100644 index 000000000..0bcd8c327 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/resourceBundle.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/resourcesRoot.svg b/jadx-gui/src/main/resources/icons/nodes/resourcesRoot.svg new file mode 100644 index 000000000..286b62472 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/resourcesRoot.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/rootPackageFolder.svg b/jadx-gui/src/main/resources/icons/nodes/rootPackageFolder.svg new file mode 100644 index 000000000..584380fda --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/rootPackageFolder.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/staticMark.svg b/jadx-gui/src/main/resources/icons/nodes/staticMark.svg new file mode 100644 index 000000000..2a443d696 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/staticMark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/styleKeyPack.svg b/jadx-gui/src/main/resources/icons/nodes/styleKeyPack.svg new file mode 100644 index 000000000..a2f202036 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/styleKeyPack.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/unknown.svg b/jadx-gui/src/main/resources/icons/nodes/unknown.svg new file mode 100644 index 000000000..6acb9d53c --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/unknown.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/nodes/xml.svg b/jadx-gui/src/main/resources/icons/nodes/xml.svg new file mode 100644 index 000000000..ec68fb1be --- /dev/null +++ b/jadx-gui/src/main/resources/icons/nodes/xml.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/Module.svg b/jadx-gui/src/main/resources/icons/ui/Module.svg new file mode 100644 index 000000000..99fe9c842 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/Module.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/addFile.svg b/jadx-gui/src/main/resources/icons/ui/addFile.svg new file mode 100644 index 000000000..56c62ddc8 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/addFile.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/analyze.svg b/jadx-gui/src/main/resources/icons/ui/analyze.svg new file mode 100644 index 000000000..9afc8685a --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/analyze.svg @@ -0,0 +1,11 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/bottom.svg b/jadx-gui/src/main/resources/icons/ui/bottom.svg new file mode 100644 index 000000000..b87306b7f --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/bottom.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/close.svg b/jadx-gui/src/main/resources/icons/ui/close.svg new file mode 100644 index 000000000..a75557996 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/close.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/closeHovered.svg b/jadx-gui/src/main/resources/icons/ui/closeHovered.svg new file mode 100644 index 000000000..db016621f --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/closeHovered.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/ejbFinderMethod.svg b/jadx-gui/src/main/resources/icons/ui/ejbFinderMethod.svg new file mode 100644 index 000000000..72d7c693c --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/ejbFinderMethod.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/exit.svg b/jadx-gui/src/main/resources/icons/ui/exit.svg new file mode 100644 index 000000000..1f7a4a8fd --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/exit.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/export.svg b/jadx-gui/src/main/resources/icons/ui/export.svg new file mode 100644 index 000000000..66fd13818 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/export.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/find.svg b/jadx-gui/src/main/resources/icons/ui/find.svg new file mode 100644 index 000000000..34366ea6c --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/find.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/helmChartLock.svg b/jadx-gui/src/main/resources/icons/ui/helmChartLock.svg new file mode 100644 index 000000000..766b40d89 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/helmChartLock.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/left.svg b/jadx-gui/src/main/resources/icons/ui/left.svg new file mode 100644 index 000000000..e69aff592 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/logVerbose.svg b/jadx-gui/src/main/resources/icons/ui/logVerbose.svg new file mode 100644 index 000000000..5fd1c36a0 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/logVerbose.svg @@ -0,0 +1,3 @@ + + + diff --git a/jadx-gui/src/main/resources/icons/ui/menu-saveall.svg b/jadx-gui/src/main/resources/icons/ui/menu-saveall.svg new file mode 100644 index 000000000..23905d0b1 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/menu-saveall.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/moduleGroup.svg b/jadx-gui/src/main/resources/icons/ui/moduleGroup.svg new file mode 100644 index 000000000..3703e3fc8 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/moduleGroup.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/openDisk.svg b/jadx-gui/src/main/resources/icons/ui/openDisk.svg new file mode 100644 index 000000000..d70ccb0a8 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/openDisk.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/pagination.svg b/jadx-gui/src/main/resources/icons/ui/pagination.svg new file mode 100644 index 000000000..652910011 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/pagination.svg @@ -0,0 +1,3 @@ + + + diff --git a/jadx-gui/src/main/resources/icons/ui/right.svg b/jadx-gui/src/main/resources/icons/ui/right.svg new file mode 100644 index 000000000..f2099cb8d --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/settings.svg b/jadx-gui/src/main/resources/icons/ui/settings.svg new file mode 100644 index 000000000..bd9cb8919 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/showInfos.svg b/jadx-gui/src/main/resources/icons/ui/showInfos.svg new file mode 100644 index 000000000..45653b4e1 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/showInfos.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/startDebugger.svg b/jadx-gui/src/main/resources/icons/ui/startDebugger.svg new file mode 100644 index 000000000..d0eaf08c1 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/startDebugger.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/top.svg b/jadx-gui/src/main/resources/icons/ui/top.svg new file mode 100644 index 000000000..98af582a6 --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/top.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jadx-gui/src/main/resources/icons/ui/usagesFinder.svg b/jadx-gui/src/main/resources/icons/ui/usagesFinder.svg new file mode 100644 index 000000000..9f323544b --- /dev/null +++ b/jadx-gui/src/main/resources/icons/ui/usagesFinder.svg @@ -0,0 +1,7 @@ + + + + + + +