From ce2d8df9eb8e8c5d7d12559e5c554d3dfebd3b89 Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 12 Jul 2022 14:49:18 +0530 Subject: [PATCH 1/7] Update MainActivity.java --- .../main/java/com/pranav/java/ide/MainActivity.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/pranav/java/ide/MainActivity.java b/app/src/main/java/com/pranav/java/ide/MainActivity.java index 39dd08265..6901b5b3a 100644 --- a/app/src/main/java/com/pranav/java/ide/MainActivity.java +++ b/app/src/main/java/com/pranav/java/ide/MainActivity.java @@ -124,7 +124,7 @@ protected void onCreate(final Bundle savedInstanceState) { try { indexer = new Indexer(getProject().getProjectName(), getProject().getCacheDirPath()); if (indexer.notHas("currentFile")) { - indexer.put("currentFile", getProject().getSrcDirPath() + "Main.java"); + indexer.put("currentFile", getProject().getSrcDirPath() + "Main.kt"); indexer.flush(); } currentWorkingFilePath = indexer.getString("currentFile"); @@ -139,15 +139,6 @@ protected void onCreate(final Bundle savedInstanceState) { } catch (IOException e) { dialog("Cannot read file", getString(e), true); } - } else { - try { - FileUtil.writeFileFromString( - getProject().getSrcDirPath() + - "Main.java", JavaTemplate.getClassTemplate(null, "Main", true)); - editor.setText(JavaTemplate.getClassTemplate(null, "Main", true)); - } catch (Exception e) { - dialog("Cannot create file", getString(e), true); - } } if (!new File(FileUtil.getClasspathDir(), "android.jar").exists()) { @@ -181,6 +172,7 @@ protected void onCreate(final Bundle savedInstanceState) { /* Create Loading Dialog */ buildLoadingDialog(); + System.setProperty("androidide.java.home", FileUtil.getDataDir() + "compiler-modules"); findViewById(R.id.btn_disassemble).setOnClickListener(v -> disassemble()); findViewById(R.id.btn_smali2java).setOnClickListener(v -> decompile()); findViewById(R.id.btn_smali).setOnClickListener(v -> smali()); From cd9edabc2c0211997d2d72cf642230b749505781 Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 12 Jul 2022 17:51:39 +0530 Subject: [PATCH 2/7] Make use of IllegalStateException instead of a RuntimeException --- .../com/pranav/java/ide/MainActivity.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/pranav/java/ide/MainActivity.java b/app/src/main/java/com/pranav/java/ide/MainActivity.java index 6901b5b3a..75090f25c 100644 --- a/app/src/main/java/com/pranav/java/ide/MainActivity.java +++ b/app/src/main/java/com/pranav/java/ide/MainActivity.java @@ -172,13 +172,12 @@ protected void onCreate(final Bundle savedInstanceState) { /* Create Loading Dialog */ buildLoadingDialog(); - System.setProperty("androidide.java.home", FileUtil.getDataDir() + "compiler-modules"); findViewById(R.id.btn_disassemble).setOnClickListener(v -> disassemble()); findViewById(R.id.btn_smali2java).setOnClickListener(v -> decompile()); findViewById(R.id.btn_smali).setOnClickListener(v -> smali()); editor.getText().addContentListener(new ProblemMarker(editor, currentWorkingFilePath, getProject())); - var scrollView = (HorizontalScrollView) findViewById(R.id.scrollview); + HorizontalScrollView scrollView = findViewById(R.id.scrollview); UiUtilsKt.addSystemWindowInsetToPadding(scrollView, false, false, false, true); } @@ -331,18 +330,18 @@ private TextMateColorScheme getColorScheme() { private IRawTheme getDarculaTheme() { try { - var rawTheme = + final var rawTheme = ThemeReader.readThemeSync( "darcula.json", getAssets().open("textmate/darcula.json")); return rawTheme; } catch (Exception e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } } private TextMateLanguage getTextMateLanguageForJava() { try { - var language = + final var language = TextMateLanguage.create( "java.tmLanguage.json", getAssets().open("textmate/java/syntaxes/java.tmLanguage.json"), @@ -351,13 +350,13 @@ private TextMateLanguage getTextMateLanguageForJava() { getDarculaTheme()); return language; } catch (Exception e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } } private TextMateLanguage getTextMateLanguageForSmali() { try { - var language = + final var language = TextMateLanguage.create( "smali.tmLanguage.json", getAssets().open("textmate/smali/syntaxes/smali.tmLanguage.json"), @@ -366,28 +365,28 @@ private TextMateLanguage getTextMateLanguageForSmali() { getDarculaTheme()); return language; } catch (Exception e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } } public void smali() { try { - var classes = getClassesFromDex(); + final var classes = getClassesFromDex(); if (classes == null) return; listDialog( "Select a class to extract source", classes, (d, pos) -> { - var claz = classes[pos]; - var smaliFile = + final var claz = classes[pos]; + dinal var smaliFile = new File( getProject().getBinDirPath(), "smali" + "/" + claz.replace(".", "/") + ".smali"); try { - var opcodes = Opcodes.forApi(32); - var options = new BaksmaliOptions(); + final var opcodes = Opcodes.forApi(32); + final var options = new BaksmaliOptions(); - var dexFile = + final var dexFile = DexFileFactory.loadDexFile( new File(getProject().getBinDirPath(), "classes.dex"), opcodes); options.apiLevel = 26; From d2e15e0461b4cd3fa0289dc31acee83a9bc0d8b2 Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 12 Jul 2022 17:53:23 +0530 Subject: [PATCH 3/7] Create Environment.kt --- .../java/com/pranav/common/util/Environment.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 common/src/main/java/com/pranav/common/util/Environment.kt diff --git a/common/src/main/java/com/pranav/common/util/Environment.kt b/common/src/main/java/com/pranav/common/util/Environment.kt new file mode 100644 index 000000000..32477f71f --- /dev/null +++ b/common/src/main/java/com/pranav/common/util/Environment.kt @@ -0,0 +1,16 @@ +package com.itsaky.androidide.utils + +import java.io.File + +/* + * Required by nb-javac-android + */ + object Environment { + @JvmStatic + lateinit var COMPILER_MODULE: File + + @JvmStatic + fun init(module: File) { + COMPILER_MODULE = module + } +} From e42715be6e70b903a03f26819f5b878760212cab Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 12 Jul 2022 17:54:15 +0530 Subject: [PATCH 4/7] downgrade nb-javac-android --- android-compiler/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android-compiler/build.gradle b/android-compiler/build.gradle index 945c6fc62..058cdfdc0 100644 --- a/android-compiler/build.gradle +++ b/android-compiler/build.gradle @@ -32,7 +32,7 @@ dependencies { implementation 'com.android.tools:r8:3.3.28' implementation project(path: ':google-java-format') implementation project(path: ':eclipse-jdt') - implementation 'io.github.itsaky:nb-javac-android:17.0.0.2' + implementation 'io.github.itsaky:nb-javac-android:17.0.0.1' implementation project(path: ':common') implementation project(path: ':project-creator') implementation project(':kotlinc') From 3b0d45ba376af368cc5ffd5b18d9a5004ea4dd01 Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 12 Jul 2022 17:55:36 +0530 Subject: [PATCH 5/7] downgrade nb-javac-android --- code-analyzer/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code-analyzer/build.gradle b/code-analyzer/build.gradle index 29b45624b..0e1fb5bc2 100644 --- a/code-analyzer/build.gradle +++ b/code-analyzer/build.gradle @@ -23,7 +23,7 @@ android { } dependencies { - implementation 'io.github.itsaky:nb-javac-android:17.0.0.2' + implementation 'io.github.itsaky:nb-javac-android:17.0.0.1' implementation project(path: ':common') implementation project(path: ':sora-editor') implementation project(path: ':project-creator') From d15a485402f775dce53450835de1fe6d299941fe Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 12 Jul 2022 17:56:14 +0530 Subject: [PATCH 6/7] downgrade nb-javac android --- google-java-format/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-java-format/build.gradle b/google-java-format/build.gradle index e81526db9..2c9944c5e 100644 --- a/google-java-format/build.gradle +++ b/google-java-format/build.gradle @@ -12,5 +12,5 @@ dependencies { compileOnly 'com.google.guava:guava:31.1-jre' implementation 'com.google.auto.value:auto-value-annotations:1.9' annotationProcessor 'com.google.auto.value:auto-value:1.9' - implementation 'io.github.itsaky:nb-javac-android:17.0.0.2' + implementation 'io.github.itsaky:nb-javac-android:17.0.0.1' } From e0cb3d82bbb24bac1358ed3059d67970eb236830 Mon Sep 17 00:00:00 2001 From: Pranav Date: Tue, 12 Jul 2022 17:58:21 +0530 Subject: [PATCH 7/7] fix typo --- app/src/main/java/com/pranav/java/ide/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/pranav/java/ide/MainActivity.java b/app/src/main/java/com/pranav/java/ide/MainActivity.java index 75090f25c..fbaf5442a 100644 --- a/app/src/main/java/com/pranav/java/ide/MainActivity.java +++ b/app/src/main/java/com/pranav/java/ide/MainActivity.java @@ -378,7 +378,7 @@ public void smali() { classes, (d, pos) -> { final var claz = classes[pos]; - dinal var smaliFile = + final var smaliFile = new File( getProject().getBinDirPath(), "smali" + "/" + claz.replace(".", "/") + ".smali");