chore: fix code formatting and resolve PR issues
This commit is contained in:
@@ -311,7 +311,7 @@ public class ResTableParser extends CommonBinaryParser {
|
||||
first = false;
|
||||
}
|
||||
// autogenerate key name, appended with cleaned origKeyName to be human-friendly
|
||||
String newResName = String.format("res_0x%08x",resRef);
|
||||
String newResName = String.format("res_0x%08x", resRef);
|
||||
String cleanedResName = sb.toString();
|
||||
if (!cleanedResName.isEmpty()) {
|
||||
newResName += "_" + cleanedResName.toLowerCase();
|
||||
|
||||
@@ -38,8 +38,7 @@ public class ResXmlGen {
|
||||
"navigation",
|
||||
"raw",
|
||||
"transition",
|
||||
"xml"
|
||||
));
|
||||
"xml"));
|
||||
|
||||
private final ResourceStorage resStorage;
|
||||
private final ValuesParser vp;
|
||||
|
||||
@@ -33,7 +33,7 @@ public final class ResourceEntry {
|
||||
}
|
||||
|
||||
public ResourceEntry copyWithId() {
|
||||
return copy(String.format("%s_res_0x%08x",keyName,id));
|
||||
return copy(String.format("%s_res_0x%08x", keyName, id));
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
|
||||
@@ -5,11 +5,18 @@ import java.lang.reflect.Type;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.*;
|
||||
import java.util.AbstractMap.SimpleEntry;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.google.gson.*;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import jadx.core.dex.nodes.ClassNode;
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
package jadx.gui.device.debugger;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
@@ -18,13 +23,21 @@ import jadx.core.dex.nodes.FieldNode;
|
||||
import jadx.core.utils.StringUtils;
|
||||
import jadx.core.utils.exceptions.JadxRuntimeException;
|
||||
import jadx.gui.device.debugger.BreakpointManager.FileBreakpoint;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.*;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.Frame;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.RuntimeBreakpoint;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.RuntimeDebugInfo;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.RuntimeField;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.RuntimeRegister;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.RuntimeValue;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.RuntimeVarInfo;
|
||||
import jadx.gui.device.debugger.SmaliDebugger.SmaliDebuggerException;
|
||||
import jadx.gui.device.debugger.smali.Smali;
|
||||
import jadx.gui.device.debugger.smali.SmaliRegister;
|
||||
import jadx.gui.treemodel.JClass;
|
||||
import jadx.gui.ui.panel.IDebugController;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.*;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.IListElement;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode;
|
||||
|
||||
import static jadx.gui.device.debugger.SmaliDebugger.RuntimeType;
|
||||
|
||||
@@ -367,7 +380,6 @@ public final class DebugController implements SmaliDebugger.SuspendListener, IDe
|
||||
}
|
||||
if (refreshLevel == 2) {
|
||||
updateAllInfo(threadID, info.getOffset());
|
||||
|
||||
} else {
|
||||
if (cur.smali != null && cur.frame != null) {
|
||||
refreshRegInfo(info.getOffset());
|
||||
@@ -772,7 +784,6 @@ public final class DebugController implements SmaliDebugger.SuspendListener, IDe
|
||||
valNode.updateType("class_object").updateTypeID(debugger.readID(rValue));
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (SmaliDebuggerException e) {
|
||||
logErr(e);
|
||||
return false;
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package jadx.gui.device.debugger;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.AbstractMap.SimpleEntry;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import io.reactivex.annotations.Nullable;
|
||||
|
||||
@@ -4,16 +4,41 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
import java.util.*;
|
||||
import java.util.AbstractMap.SimpleEntry;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.SynchronousQueue;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import io.github.hqktech.JDWP;
|
||||
import io.github.hqktech.JDWP.ArrayReference.Length.LengthReplyData;
|
||||
import io.github.hqktech.JDWP.ByteBuffer;
|
||||
import io.github.hqktech.JDWP.Event.Composite.*;
|
||||
import io.github.hqktech.JDWP.Event.Composite.BreakpointEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.ClassPrepareEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.ClassUnloadEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.EventData;
|
||||
import io.github.hqktech.JDWP.Event.Composite.ExceptionEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.FieldAccessEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.FieldModificationEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.MethodEntryEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.MethodExitEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.MethodExitWithReturnValueEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.MonitorContendedEnterEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.MonitorContendedEnteredEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.MonitorWaitEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.MonitorWaitedEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.SingleStepEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.ThreadDeathEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.ThreadStartEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.VMDeathEvent;
|
||||
import io.github.hqktech.JDWP.Event.Composite.VMStartEvent;
|
||||
import io.github.hqktech.JDWP.EventRequest.Set.ClassMatchRequest;
|
||||
import io.github.hqktech.JDWP.EventRequest.Set.CountRequest;
|
||||
import io.github.hqktech.JDWP.EventRequest.Set.LocationOnlyRequest;
|
||||
|
||||
@@ -1,14 +1,29 @@
|
||||
package jadx.gui.device.debugger.smali;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.AbstractMap.SimpleEntry;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import jadx.api.ICodeInfo;
|
||||
import jadx.api.plugins.input.data.*;
|
||||
import jadx.api.plugins.input.data.AccessFlags;
|
||||
import jadx.api.plugins.input.data.AccessFlagsScope;
|
||||
import jadx.api.plugins.input.data.ICatch;
|
||||
import jadx.api.plugins.input.data.IClassData;
|
||||
import jadx.api.plugins.input.data.ICodeReader;
|
||||
import jadx.api.plugins.input.data.IDebugInfo;
|
||||
import jadx.api.plugins.input.data.IFieldData;
|
||||
import jadx.api.plugins.input.data.ILocalVar;
|
||||
import jadx.api.plugins.input.data.IMethodData;
|
||||
import jadx.api.plugins.input.data.IMethodRef;
|
||||
import jadx.api.plugins.input.data.ITry;
|
||||
import jadx.api.plugins.input.data.annotations.AnnotationVisibility;
|
||||
import jadx.api.plugins.input.data.annotations.EncodedValue;
|
||||
import jadx.api.plugins.input.data.annotations.IAnnotation;
|
||||
@@ -29,7 +44,19 @@ import jadx.core.dex.nodes.MethodNode;
|
||||
|
||||
import static jadx.api.plugins.input.data.AccessFlagsScope.FIELD;
|
||||
import static jadx.api.plugins.input.data.AccessFlagsScope.METHOD;
|
||||
import static jadx.api.plugins.input.insns.Opcode.*;
|
||||
import static jadx.api.plugins.input.insns.Opcode.CONST;
|
||||
import static jadx.api.plugins.input.insns.Opcode.CONST_METHOD_HANDLE;
|
||||
import static jadx.api.plugins.input.insns.Opcode.CONST_METHOD_TYPE;
|
||||
import static jadx.api.plugins.input.insns.Opcode.CONST_WIDE;
|
||||
import static jadx.api.plugins.input.insns.Opcode.FILLED_NEW_ARRAY;
|
||||
import static jadx.api.plugins.input.insns.Opcode.FILLED_NEW_ARRAY_RANGE;
|
||||
import static jadx.api.plugins.input.insns.Opcode.FILL_ARRAY_DATA_PAYLOAD;
|
||||
import static jadx.api.plugins.input.insns.Opcode.INVOKE_CUSTOM;
|
||||
import static jadx.api.plugins.input.insns.Opcode.INVOKE_CUSTOM_RANGE;
|
||||
import static jadx.api.plugins.input.insns.Opcode.INVOKE_POLYMORPHIC;
|
||||
import static jadx.api.plugins.input.insns.Opcode.INVOKE_POLYMORPHIC_RANGE;
|
||||
import static jadx.api.plugins.input.insns.Opcode.PACKED_SWITCH_PAYLOAD;
|
||||
import static jadx.api.plugins.input.insns.Opcode.SPARSE_SWITCH_PAYLOAD;
|
||||
|
||||
public class Smali {
|
||||
|
||||
@@ -308,22 +335,16 @@ public class Smali {
|
||||
if (!tryFormatTargetIns(insn, node.getType(), line)) {
|
||||
if (hasLiteral(insn)) {
|
||||
line.getLineWriter().append(", ").append(literal(insn));
|
||||
|
||||
} else if (node.getType() == InsnType.INVOKE) {
|
||||
line.getLineWriter().append(", ").append(method(insn));
|
||||
|
||||
} else if (insn.getIndexType() == InsnIndexType.FIELD_REF) {
|
||||
line.getLineWriter().append(", ").append(field(insn));
|
||||
|
||||
} else if (insn.getIndexType() == InsnIndexType.STRING_REF) {
|
||||
line.getLineWriter().append(", ").append(str(insn));
|
||||
|
||||
} else if (insn.getIndexType() == InsnIndexType.TYPE_REF) {
|
||||
line.getLineWriter().append(", ").append(type(insn));
|
||||
|
||||
} else if (insn.getOpcode() == CONST_METHOD_HANDLE) {
|
||||
line.getLineWriter().append(", ").append(methodHandle(insn));
|
||||
|
||||
} else if (insn.getOpcode() == CONST_METHOD_TYPE) {
|
||||
line.getLineWriter().append(", ").append(proto(insn, insn.getIndex()));
|
||||
}
|
||||
@@ -621,7 +642,6 @@ public class Smali {
|
||||
line.getLineWriter().append(line.getRegName(insn.getReg(0)))
|
||||
.append(" .. ")
|
||||
.append(line.getRegName(insn.getReg(insn.getRegsCount() - 1)));
|
||||
|
||||
} else if (insn.getRegsCount() > 0) {
|
||||
for (int i = 0; i < insn.getRegsCount(); i++) {
|
||||
if (i > 0) {
|
||||
@@ -994,5 +1014,4 @@ public class Smali {
|
||||
return field;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package jadx.gui.device.debugger.smali;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import jadx.core.dex.instructions.args.InsnArg;
|
||||
import jadx.core.dex.instructions.args.RegisterArg;
|
||||
|
||||
@@ -4,7 +4,12 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -16,9 +16,9 @@ import com.google.gson.GsonBuilder;
|
||||
|
||||
import jadx.gui.treemodel.JClass;
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.panel.HtmlPanel;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
public class QuarkReportNode extends JNode {
|
||||
|
||||
@@ -38,9 +38,9 @@ import jadx.core.utils.Utils;
|
||||
import jadx.gui.JadxWrapper;
|
||||
import jadx.gui.jobs.BackgroundExecutor;
|
||||
import jadx.gui.treemodel.JMethod;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.utils.JNodeCache;
|
||||
|
||||
public class QuarkReportPanel extends ContentPanel {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package jadx.gui.settings;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Rectangle;
|
||||
|
||||
public class WindowLocation {
|
||||
private String windowId;
|
||||
|
||||
@@ -19,9 +19,9 @@ import com.android.apksig.ApkVerifier;
|
||||
import jadx.api.ResourceFile;
|
||||
import jadx.api.ResourceType;
|
||||
import jadx.gui.JadxWrapper;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
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;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package jadx.gui.treemodel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -15,6 +15,7 @@ import jadx.core.dex.attributes.AFlag;
|
||||
import jadx.core.dex.info.AccessInfo;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.codearea.ClassCodeContentPanel;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
|
||||
@@ -12,12 +12,11 @@ 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.panel.ContentPanel;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.codearea.ClassCodeContentPanel;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
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;
|
||||
@@ -75,23 +74,23 @@ public class JMethod extends JNode {
|
||||
public Icon getIcon() {
|
||||
AccessInfo accessFlags = mth.getAccessFlags();
|
||||
Icon icon = ICON_METHOD;
|
||||
if(accessFlags.isAbstract()){
|
||||
if (accessFlags.isAbstract()) {
|
||||
icon = ICON_METHOD_ABSTRACT;
|
||||
}
|
||||
if (accessFlags.isConstructor()) {
|
||||
icon = ICON_METHOD_CONSTRUCTOR;
|
||||
}
|
||||
if(accessFlags.isPublic()){
|
||||
icon= ICON_METHOD_PUBLIC;
|
||||
if (accessFlags.isPublic()) {
|
||||
icon = ICON_METHOD_PUBLIC;
|
||||
}
|
||||
if(accessFlags.isPrivate()){
|
||||
if (accessFlags.isPrivate()) {
|
||||
icon = ICON_METHOD_PRIVATE;
|
||||
}
|
||||
if(accessFlags.isProtected()){
|
||||
if (accessFlags.isProtected()) {
|
||||
icon = ICON_METHOD_PROTECTED;
|
||||
}
|
||||
if (accessFlags.isSynchronized()) {
|
||||
icon= ICON_METHOD_SYNC;
|
||||
icon = ICON_METHOD_SYNC;
|
||||
}
|
||||
|
||||
OverlayIcon overIcon = new OverlayIcon(icon);
|
||||
|
||||
@@ -9,8 +9,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
import jadx.api.ICodeInfo;
|
||||
import jadx.api.JadxDecompiler;
|
||||
import jadx.api.JavaNode;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
|
||||
public abstract class JNode extends DefaultMutableTreeNode {
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package jadx.gui.treemodel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
|
||||
import jadx.core.utils.StringUtils;
|
||||
|
||||
|
||||
@@ -21,12 +21,11 @@ import jadx.api.ResourcesLoader;
|
||||
import jadx.api.impl.SimpleCodeInfo;
|
||||
import jadx.core.utils.Utils;
|
||||
import jadx.core.xmlgen.ResContainer;
|
||||
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.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.panel.ImagePanel;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.OverlayIcon;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
public class JResource extends JLoadableNode implements Comparable<JResource> {
|
||||
@@ -278,7 +277,7 @@ public class JResource extends JLoadableNode implements Comparable<JResource> {
|
||||
|
||||
case FILE:
|
||||
ResourceType resType = resFile.getType();
|
||||
switch (resType){
|
||||
switch (resType) {
|
||||
case MANIFEST:
|
||||
return MANIFEST_ICON;
|
||||
case ARSC:
|
||||
|
||||
@@ -8,7 +8,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import jadx.api.JavaPackage;
|
||||
import jadx.gui.JadxWrapper;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package jadx.gui.treemodel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
|
||||
import jadx.api.JavaNode;
|
||||
import jadx.api.JavaVariable;
|
||||
@@ -49,5 +49,4 @@ public class JVariable extends JNode {
|
||||
public boolean canRename() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package jadx.gui.treemodel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
|
||||
public class TextNode extends JNode {
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package jadx.gui.ui;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.FocusManager;
|
||||
import javax.swing.JProgressBar;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -74,11 +74,6 @@ 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;
|
||||
@@ -113,6 +108,15 @@ import jadx.gui.treemodel.JPackage;
|
||||
import jadx.gui.treemodel.JResource;
|
||||
import jadx.gui.treemodel.JRoot;
|
||||
import jadx.gui.ui.codearea.AbstractCodeContentPanel;
|
||||
import jadx.gui.ui.dialog.ADBDialog;
|
||||
import jadx.gui.ui.dialog.AboutDialog;
|
||||
import jadx.gui.ui.dialog.LogViewerDialog;
|
||||
import jadx.gui.ui.dialog.RenameDialog;
|
||||
import jadx.gui.ui.dialog.SearchDialog;
|
||||
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 jadx.gui.update.JadxUpdate;
|
||||
import jadx.gui.update.JadxUpdate.IUpdateCallback;
|
||||
import jadx.gui.update.data.Release;
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
package jadx.gui.ui;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.Font;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.plaf.basic.BasicButtonUI;
|
||||
|
||||
import jadx.gui.treemodel.JClass;
|
||||
|
||||
@@ -16,9 +16,6 @@ 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;
|
||||
@@ -31,6 +28,9 @@ import jadx.gui.ui.codearea.AbstractCodeArea;
|
||||
import jadx.gui.ui.codearea.AbstractCodeContentPanel;
|
||||
import jadx.gui.ui.codearea.ClassCodeContentPanel;
|
||||
import jadx.gui.ui.codearea.SmaliArea;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.panel.HtmlPanel;
|
||||
import jadx.gui.ui.panel.ImagePanel;
|
||||
import jadx.gui.utils.JumpManager;
|
||||
import jadx.gui.utils.JumpPosition;
|
||||
|
||||
@@ -122,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();
|
||||
@@ -197,7 +197,7 @@ public class TabbedPane extends JTabbedPane {
|
||||
codeArea.scrollToLine(line);
|
||||
}
|
||||
}
|
||||
//codeArea.requestFocus();
|
||||
codeArea.requestFocus();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -240,7 +240,7 @@ public class TabbedPane extends JTabbedPane {
|
||||
smaliArea.scrollToDebugPos(pos);
|
||||
}
|
||||
smaliArea.scrollToPos(pos);
|
||||
//smaliArea.requestFocus();
|
||||
smaliArea.requestFocus();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -32,8 +32,8 @@ import jadx.core.utils.StringUtils;
|
||||
import jadx.gui.settings.JadxSettings;
|
||||
import jadx.gui.treemodel.JClass;
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.utils.DefaultPopupMenuListener;
|
||||
import jadx.gui.utils.JumpPosition;
|
||||
import jadx.gui.utils.NLS;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package jadx.gui.ui.codearea;
|
||||
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
|
||||
/**
|
||||
* The abstract base class for a content panel that show text based code or a.g. a resource
|
||||
@@ -15,5 +15,4 @@ public abstract class AbstractCodeContentPanel extends ContentPanel {
|
||||
}
|
||||
|
||||
public abstract AbstractCodeArea getCodeArea();
|
||||
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ import jadx.api.JavaNode;
|
||||
import jadx.gui.settings.JadxProject;
|
||||
import jadx.gui.treemodel.JClass;
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.utils.CaretPositionFix;
|
||||
import jadx.gui.utils.DefaultPopupMenuListener;
|
||||
import jadx.gui.utils.JNodeCache;
|
||||
@@ -37,13 +37,12 @@ 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());
|
||||
|
||||
isJavaCode = node instanceof JClass;
|
||||
boolean isJavaCode = node instanceof JClass;
|
||||
if (isJavaCode) {
|
||||
((RSyntaxDocument) getDocument()).setSyntaxStyle(new JadxTokenMaker(this));
|
||||
addMenuItems();
|
||||
@@ -244,8 +243,4 @@ public final class CodeArea extends AbstractCodeArea {
|
||||
public JadxProject getProject() {
|
||||
return getMainWindow().getProject();
|
||||
}
|
||||
|
||||
public boolean isJavaCode() {
|
||||
return isJavaCode;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package jadx.gui.ui.codearea;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
package jadx.gui.ui.codearea;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Point;
|
||||
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.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.Action;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPopupMenu;
|
||||
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;
|
||||
|
||||
@@ -124,23 +133,16 @@ public class CodePanel extends JPanel {
|
||||
if (codeArea instanceof SmaliArea) {
|
||||
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<Integer, Integer> lineMapping = codeInfo.getLineMapping();
|
||||
if (lineMapping.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
Set<Integer> uniqueSourceLines = new HashSet<>(lineMapping.values());
|
||||
return uniqueSourceLines.size() > 3;
|
||||
ICodeInfo codeInfo = codeArea.getNode().getCodeInfo();
|
||||
if (codeInfo == null) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
Map<Integer, Integer> lineMapping = codeInfo.getLineMapping();
|
||||
if (lineMapping.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
Set<Integer> uniqueSourceLines = new HashSet<>(lineMapping.values());
|
||||
return uniqueSourceLines.size() > 3;
|
||||
}
|
||||
|
||||
public SearchBar getSearchBar() {
|
||||
|
||||
@@ -3,7 +3,8 @@ package jadx.gui.ui.codearea;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.KeyStroke;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ package jadx.gui.ui.codearea;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.KeyStroke;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
||||
@@ -74,20 +74,13 @@ public class LineNumbers extends JPanel implements CaretListener {
|
||||
setPreferredWidth();
|
||||
|
||||
codeArea.addCaretListener(this);
|
||||
|
||||
// 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();
|
||||
}
|
||||
});
|
||||
addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
useSourceLines = !useSourceLines;
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setBorderGap(int borderGap) {
|
||||
|
||||
@@ -2,7 +2,8 @@ package jadx.gui.ui.codearea;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.KeyStroke;
|
||||
import javax.swing.event.PopupMenuEvent;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
package jadx.gui.ui.codearea;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.JToolBar;
|
||||
import javax.swing.text.BadLocationException;
|
||||
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
||||
@@ -25,10 +29,6 @@ class SearchBar extends JToolBar {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(SearchBar.class);
|
||||
|
||||
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 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");
|
||||
@@ -38,10 +38,11 @@ class SearchBar extends JToolBar {
|
||||
private final JTextField searchField;
|
||||
private final JCheckBox markAllCB;
|
||||
private final JCheckBox regexCB;
|
||||
|
||||
private final JCheckBox wholeWordCB;
|
||||
private final JCheckBox matchCaseCB;
|
||||
|
||||
private boolean notFound;
|
||||
|
||||
public SearchBar(RSyntaxTextArea textArea) {
|
||||
rTextArea = textArea;
|
||||
|
||||
@@ -148,7 +149,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) {
|
||||
if (direction == 0 && !notFound) {
|
||||
try {
|
||||
int caretPos = rTextArea.getCaretPosition();
|
||||
int lineNum = rTextArea.getLineOfOffset(caretPos) - 1;
|
||||
@@ -158,21 +159,23 @@ class SearchBar extends JToolBar {
|
||||
} catch (BadLocationException e) {
|
||||
LOG.error("Caret move error", e);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
SearchResult result = SearchEngine.find(rTextArea, context);
|
||||
if (!result.wasFound()) {
|
||||
notFound = !result.wasFound();
|
||||
if (notFound) {
|
||||
int pos = SearchEngine.getNextMatchPos(searchText, rTextArea.getText(), forward, matchCase, wholeWord);
|
||||
if (pos != -1) {
|
||||
rTextArea.setCaretPosition(forward ? 0 : rTextArea.getDocument().getLength() - 1);
|
||||
search(direction);
|
||||
//searchField.setBackground(COLOR_BG_WARN);
|
||||
return;
|
||||
searchField.putClientProperty("JComponent.outline", "warning");
|
||||
} else {
|
||||
searchField.putClientProperty("JComponent.outline", "error");
|
||||
}
|
||||
//searchField.setBackground(COLOR_BG_ERROR);
|
||||
} else {
|
||||
//searchField.setBackground(COLOR_BG_NORMAL);
|
||||
searchField.putClientProperty("JComponent.outline", "");
|
||||
}
|
||||
searchField.repaint();
|
||||
}
|
||||
|
||||
public void setRTextArea(RSyntaxTextArea rTextArea) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package jadx.gui.ui.codearea;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.Font;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
@@ -9,13 +10,28 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.KeyStroke;
|
||||
import javax.swing.text.BadLocationException;
|
||||
import javax.swing.text.EditorKit;
|
||||
import javax.swing.text.JTextComponent;
|
||||
|
||||
import org.fife.ui.rsyntaxtextarea.*;
|
||||
import org.fife.ui.rtextarea.*;
|
||||
import org.fife.ui.rsyntaxtextarea.FoldingAwareIconRowHeader;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaEditorKit;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaUI;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities;
|
||||
import org.fife.ui.rsyntaxtextarea.Style;
|
||||
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
|
||||
import org.fife.ui.rsyntaxtextarea.SyntaxScheme;
|
||||
import org.fife.ui.rsyntaxtextarea.Theme;
|
||||
import org.fife.ui.rtextarea.Gutter;
|
||||
import org.fife.ui.rtextarea.GutterIconInfo;
|
||||
import org.fife.ui.rtextarea.IconRowHeader;
|
||||
import org.fife.ui.rtextarea.RTextArea;
|
||||
import org.fife.ui.rtextarea.RTextAreaUI;
|
||||
|
||||
import jadx.gui.device.debugger.BreakpointManager;
|
||||
import jadx.gui.device.debugger.DbgUtils;
|
||||
|
||||
@@ -1,28 +1,52 @@
|
||||
package jadx.gui.ui.dialog;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.Label;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.Socket;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.tree.*;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.JTree;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.WindowConstants;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.DefaultTreeCellRenderer;
|
||||
import javax.swing.tree.DefaultTreeModel;
|
||||
import javax.swing.tree.TreePath;
|
||||
import javax.swing.tree.TreeSelectionModel;
|
||||
|
||||
import jadx.core.utils.StringUtils;
|
||||
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.ui.panel.IDebugController;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
import static jadx.gui.device.protocol.ADB.Device.*;
|
||||
import static jadx.gui.device.protocol.ADB.Device.ForwardResult;
|
||||
|
||||
public class ADBDialog extends JDialog implements ADB.DeviceStateListener, ADB.JDWPProcessListener {
|
||||
private static final long serialVersionUID = -1111111202102181630L;
|
||||
|
||||
@@ -1,9 +1,21 @@
|
||||
package jadx.gui.ui.dialog;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Container;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.net.URL;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.Box;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import jadx.api.JadxDecompiler;
|
||||
import jadx.gui.utils.NLS;
|
||||
|
||||
@@ -38,9 +38,6 @@ 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;
|
||||
@@ -51,7 +48,10 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.treemodel.JResSearchNode;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.codearea.AbstractCodeArea;
|
||||
import jadx.gui.ui.panel.ProgressPanel;
|
||||
import jadx.gui.utils.CacheObject;
|
||||
import jadx.gui.utils.JumpPosition;
|
||||
import jadx.gui.utils.NLS;
|
||||
|
||||
@@ -1,15 +1,35 @@
|
||||
package jadx.gui.ui.dialog;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Font;
|
||||
import java.awt.Label;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.tree.*;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTree;
|
||||
import javax.swing.WindowConstants;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.DefaultTreeCellRenderer;
|
||||
import javax.swing.tree.DefaultTreeModel;
|
||||
import javax.swing.tree.TreePath;
|
||||
|
||||
import jadx.api.JavaPackage;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
@@ -295,5 +315,4 @@ public class ExcludePkgDialog extends JDialog {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,15 +1,23 @@
|
||||
package jadx.gui.ui.dialog;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Container;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
||||
|
||||
import ch.qos.logback.classic.Level;
|
||||
|
||||
import jadx.gui.settings.JadxSettings;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.codearea.AbstractCodeArea;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.logs.ILogListener;
|
||||
|
||||
@@ -23,9 +23,6 @@ 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;
|
||||
@@ -52,8 +49,11 @@ import jadx.gui.treemodel.JMethod;
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.treemodel.JPackage;
|
||||
import jadx.gui.treemodel.JVariable;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.codearea.ClassCodeContentPanel;
|
||||
import jadx.gui.ui.codearea.CodeArea;
|
||||
import jadx.gui.ui.panel.ContentPanel;
|
||||
import jadx.gui.utils.CacheObject;
|
||||
import jadx.gui.utils.JNodeCache;
|
||||
import jadx.gui.utils.NLS;
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package jadx.gui.ui.dialog;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Container;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.Collections;
|
||||
@@ -21,7 +25,6 @@ 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;
|
||||
|
||||
@@ -33,6 +36,7 @@ import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.TextStandardActions;
|
||||
import jadx.gui.utils.layout.WrapLayout;
|
||||
|
||||
@@ -1,18 +1,30 @@
|
||||
package jadx.gui.ui.dialog;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Label;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.AbstractMap.SimpleEntry;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.ButtonGroup;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JRadioButton;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.KeyStroke;
|
||||
import javax.swing.WindowConstants;
|
||||
|
||||
import jadx.core.dex.instructions.args.ArgType;
|
||||
import jadx.core.utils.exceptions.JadxRuntimeException;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.TextStandardActions;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
package jadx.gui.ui.dialog;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Container;
|
||||
import java.awt.FlowLayout;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.WindowConstants;
|
||||
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package jadx.gui.ui.panel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import jadx.gui.treemodel.JClass;
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
|
||||
public abstract class ContentPanel extends JPanel {
|
||||
|
||||
@@ -33,7 +33,7 @@ public abstract class ContentPanel extends JPanel {
|
||||
/**
|
||||
* Allows to show a tool tip on the tab e.g. for displaying a long path of the
|
||||
* selected entry inside the APK file.
|
||||
*
|
||||
* <p>
|
||||
* If <code>null</code> is returned no tool tip will be displayed.
|
||||
*/
|
||||
@Nullable
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package jadx.gui.ui.panel;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.RenderingHints;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JScrollPane;
|
||||
|
||||
import jadx.gui.settings.JadxSettings;
|
||||
import jadx.gui.treemodel.JNode;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package jadx.gui.ui.panel;
|
||||
|
||||
import jadx.core.dex.instructions.args.ArgType;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode;
|
||||
|
||||
public interface IDebugController {
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package jadx.gui.ui.panel;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
|
||||
|
||||
import hu.kazocsaba.imageviewer.ImageViewer;
|
||||
@@ -18,6 +17,7 @@ import jadx.core.utils.Utils;
|
||||
import jadx.core.utils.exceptions.JadxRuntimeException;
|
||||
import jadx.core.xmlgen.ResContainer;
|
||||
import jadx.gui.treemodel.JResource;
|
||||
import jadx.gui.ui.TabbedPane;
|
||||
import jadx.gui.ui.codearea.AbstractCodeArea;
|
||||
|
||||
public class ImagePanel extends ContentPanel {
|
||||
|
||||
@@ -1,11 +1,43 @@
|
||||
package jadx.gui.ui.panel;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.CardLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.KeyEventDispatcher;
|
||||
import java.awt.KeyboardFocusManager;
|
||||
import java.awt.Label;
|
||||
import java.awt.Point;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.tree.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.Action;
|
||||
import javax.swing.Box;
|
||||
import javax.swing.DefaultComboBoxModel;
|
||||
import javax.swing.DefaultListModel;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JList;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JSplitPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.JToolBar;
|
||||
import javax.swing.JTree;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.DefaultTreeCellRenderer;
|
||||
import javax.swing.tree.DefaultTreeModel;
|
||||
import javax.swing.tree.TreeNode;
|
||||
import javax.swing.tree.TreePath;
|
||||
|
||||
import io.reactivex.annotations.Nullable;
|
||||
|
||||
@@ -13,9 +45,9 @@ 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.ui.popupmenu.VarTreePopupMenu;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
|
||||
@@ -4,11 +4,12 @@ import java.awt.event.ActionEvent;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPopupMenu;
|
||||
|
||||
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;
|
||||
@@ -16,6 +17,9 @@ import org.slf4j.LoggerFactory;
|
||||
import jadx.gui.JadxWrapper;
|
||||
import jadx.gui.treemodel.JClass;
|
||||
import jadx.gui.treemodel.JPackage;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.dialog.ExcludePkgDialog;
|
||||
import jadx.gui.ui.dialog.RenameDialog;
|
||||
import jadx.gui.utils.NLS;
|
||||
|
||||
public class JPackagePopupMenu extends JPopupMenu {
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
package jadx.gui.ui.popupmenu;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Component;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.datatransfer.Clipboard;
|
||||
import java.awt.datatransfer.StringSelection;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPopupMenu;
|
||||
|
||||
import jadx.core.dex.instructions.args.ArgType;
|
||||
import jadx.gui.ui.MainWindow;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode;
|
||||
import jadx.gui.ui.dialog.SetValueDialog;
|
||||
import jadx.gui.ui.panel.JDebuggerPanel.ValueTreeNode;
|
||||
import jadx.gui.utils.NLS;
|
||||
import jadx.gui.utils.UiUtils;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package jadx.gui.utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Font;
|
||||
import java.awt.GraphicsEnvironment;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.swing.text.StyleContext;
|
||||
|
||||
@@ -3,9 +3,17 @@ package jadx.gui.utils;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import jadx.api.*;
|
||||
import jadx.api.JavaClass;
|
||||
import jadx.api.JavaField;
|
||||
import jadx.api.JavaMethod;
|
||||
import jadx.api.JavaNode;
|
||||
import jadx.api.JavaVariable;
|
||||
import jadx.core.utils.exceptions.JadxRuntimeException;
|
||||
import jadx.gui.treemodel.*;
|
||||
import jadx.gui.treemodel.JClass;
|
||||
import jadx.gui.treemodel.JField;
|
||||
import jadx.gui.treemodel.JMethod;
|
||||
import jadx.gui.treemodel.JNode;
|
||||
import jadx.gui.treemodel.JVariable;
|
||||
|
||||
public class JNodeCache {
|
||||
|
||||
|
||||
@@ -1,16 +1,26 @@
|
||||
package jadx.gui.utils;
|
||||
|
||||
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 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 org.reflections.Reflections;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.*;
|
||||
import com.formdev.flatlaf.FlatLaf;
|
||||
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
||||
|
||||
import ch.qos.logback.classic.Level;
|
||||
|
||||
import jadx.cli.LogHelper;
|
||||
import jadx.gui.settings.JadxSettings;
|
||||
|
||||
public class LafManager {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(LafManager.class);
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
package jadx.gui.utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Desktop;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JTextArea;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package jadx.gui.utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Component;
|
||||
import java.awt.Graphics;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.Icon;
|
||||
|
||||
public class OverlayIcon implements Icon {
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package jadx.gui.utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Rectangle;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.google.gson.TypeAdapter;
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
package jadx.gui.utils;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.datatransfer.DataFlavor;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.Action;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.KeyStroke;
|
||||
import javax.swing.text.JTextComponent;
|
||||
import javax.swing.undo.UndoManager;
|
||||
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
package jadx.gui.utils;
|
||||
|
||||
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.Component;
|
||||
import java.awt.Image;
|
||||
import java.awt.MouseInfo;
|
||||
import java.awt.Point;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.Window;
|
||||
import java.awt.datatransfer.Clipboard;
|
||||
import java.awt.datatransfer.StringSelection;
|
||||
import java.awt.datatransfer.Transferable;
|
||||
@@ -20,6 +15,26 @@ 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 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;
|
||||
|
||||
public class UiUtils {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(UiUtils.class);
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@ package jadx.gui.utils.search;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
@@ -20,7 +22,8 @@ import jadx.gui.treemodel.JResSearchNode;
|
||||
import jadx.gui.treemodel.JResource;
|
||||
import jadx.gui.utils.CacheObject;
|
||||
|
||||
import static jadx.core.utils.StringUtils.*;
|
||||
import static jadx.core.utils.StringUtils.countLinesByPos;
|
||||
import static jadx.core.utils.StringUtils.getLine;
|
||||
|
||||
public class ResourceIndex {
|
||||
private final List<JResource> resNodes = new ArrayList<>();
|
||||
@@ -190,7 +193,6 @@ public class ResourceIndex {
|
||||
resNodes.add(resNode);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,6 @@ public class TestI18n {
|
||||
} else {
|
||||
compareToReference(p);
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
Assertions.fail("Error " + e.getMessage());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user