From df9ae295db40a051fcd5e8f94454353957cc8544 Mon Sep 17 00:00:00 2001 From: Jan S Date: Thu, 25 Oct 2018 15:36:37 +0200 Subject: [PATCH] feat: make the import class name clickable (#378) --- .../main/java/jadx/core/codegen/ClassGen.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java index 3b28212bf..344c07fe3 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java @@ -91,7 +91,24 @@ public class ClassGen { Collections.sort(sortImports); for (String imp : sortImports) { - clsCode.startLine("import ").add(imp).add(';'); + ClassInfo importClassInfo = ClassInfo.fromName(cls.dex().root(), imp); + ClassNode classNode = cls.dex().resolveClass(importClassInfo); + // Clickable element seems to be limited by the next dot, therefore + // we can't just use the complete class name including packagename + int clsDotIdx = imp.lastIndexOf('.'); + String pkg = ""; + if (clsDotIdx >= 0) { + pkg = imp.substring(0, clsDotIdx + 1); + imp = imp.substring(clsDotIdx + 1); + } + clsCode.startLine("import "); + clsCode.add(pkg); + if (classNode != null) { + // attach the clickable link info to the class name + clsCode.attachAnnotation(classNode); + } + clsCode.add(imp); + clsCode.add(';'); } clsCode.newLine();