Use gradlew instead of custom gradle installation

This commit is contained in:
Akash Yadav
2021-10-27 14:21:11 +05:30
parent b2db9992fb
commit 85d72bc53c
5 changed files with 22 additions and 45 deletions
@@ -199,7 +199,6 @@ public class EditorActivity extends StudioActivity implements FileTreeFragment.F
mBuildServiceHandler = new BuildServiceHandler(this);
mFileOptionsHandler = new FileOptionsHandler(this);
getApp().checkAndUpdateGradle();
startServices();
KeyboardUtils.registerSoftInputChangedListener(this, __ -> onSoftInputChanged());
@@ -73,7 +73,6 @@ public class SplashActivity extends StudioActivity
}
private void goToMain() {
getApp().checkAndUpdateGradle();
mHandler.removeCallbacks(mRunnable);
mHandler.postDelayed(mRunnable, 1000);
}
@@ -314,22 +314,6 @@ public class StudioApp extends MultiDexApplication
return new StringBuffer().append(getAssetsDataFile()).append(str).toString();
}
public void checkAndUpdateGradle() {
File gradle = new File(Environment.GRADLE_HOME, "bin/gradle");
if(gradle.exists()) {
String[] txt = FileUtil.readFile(gradle.getAbsolutePath()).split("\n");
if(txt != null && txt.length > 1) {
String line1 = txt[0];
if(line1.startsWith("#!")) {
txt[0] = "";
}
FileUtil.writeFile(gradle.getAbsolutePath(), TextUtils.join("\n", txt));
if(!gradle.canExecute())
gradle.setExecutable(true);
}
}
}
public StudioUtils getUtils() {
return mUtils == null ? mUtils = new StudioUtils(this) : mUtils;
}
@@ -33,6 +33,8 @@ import org.eclipse.lsp4j.DidChangeWatchedFilesParams;
import org.eclipse.lsp4j.FileChangeType;
import org.eclipse.lsp4j.FileEvent;
import com.blankj.utilcode.util.ThreadUtils;
import java.util.Collection;
import java.util.stream.Collectors;
public class IDEService implements ShellServer.Callback {
@@ -238,8 +240,9 @@ public class IDEService implements ShellServer.Callback {
final PreferenceManager prefs = app.getPrefManager();
final List<String> args = new ArrayList<>();
args.add("gradle");
args.addAll(tasks);
args.add("sh");
args.add("gradlew");
args.addAll(asAppTasks(tasks));
args.add("--init-script");
args.add(Environment.INIT_SCRIPT.getAbsolutePath());
@@ -262,6 +265,17 @@ public class IDEService implements ShellServer.Callback {
return TextUtils.join(" ", args);
}
private Collection<? extends String> asAppTasks(List<String> tasks) {
return tasks.stream()
.filter(t -> t != null)
.map(t -> asAppModuleTask(t))
.collect(Collectors.toList());
}
private String asAppModuleTask (String name) {
return name.startsWith(":app:") ? name : ":app:" + name;
}
public IDEProject getIDEProject () {
return mIDEProject;
@@ -283,7 +297,7 @@ public class IDEService implements ShellServer.Callback {
Environment.mkdirIfNotExits(Environment.TMP_DIR);
currentTask = task;
listener.appendOutput(task, getString(R.string.msg_task_begin, currentTime(), task.getName()));
shell.bgAppend(String.format("cd \"%s\"", new File(projectRoot, "app").getAbsolutePath()));
shell.bgAppend(String.format("cd '%s'", projectRoot.getAbsolutePath()));
shell.bgAppend(getArguments(task.getTasks()));
isBuilding = true;
listener.prepareBuild();
@@ -330,7 +344,7 @@ public class IDEService implements ShellServer.Callback {
}
public void stopAllDaemons() {
app.newShell(null).bgAppend("gradle --stop");
app.newShell(null).bgAppend(String.format(Locale.US, "cd '%s' && sh gradlew --stop", projectRoot.getAbsolutePath()));
if(isBuilding()) {
if(listener != null)
listener.onBuildFailed(currentTask, getString(R.string.msg_daemons_stopped));
@@ -351,9 +365,7 @@ public class IDEService implements ShellServer.Callback {
}
public void updateResourceClasses() {
if(mAppModule != null) {
execTask(new UpdateResourceClassesTask(mAppModule.viewBindingEnabled));
}
execTask(new UpdateResourceClassesTask(mAppModule != null && mAppModule.viewBindingEnabled));
}
public String typeString(int type) {
@@ -33,11 +33,9 @@ public final class Environment {
public static final File PROJECT_DATA_FILE;
public static final File JLS_JAR;
public static final File GRADLE_HOME;
public static final File GRADLE_PROPS;
public static final File GRADLE_USER_HOME;
public static final File GRADLE;
public static final File JAVA;
public static final File BUSYBOX;
public static final File SHELL;
@@ -51,7 +49,6 @@ public final class Environment {
private static final String DEFAULT_JAVA_HOME = "/data/data/com.itsaky.androidide/files/framework/jdk";
private static final String DEFAULT_ANDROID_HOME = "/data/data/com.itsaky.androidide/files/framework/android-sdk";
private static final String DEFAULT_GRADLE_HOME = "/data/data/com.itsaky.androidide/files/framework/gradle-7.1.1";
private static final Logger LOG = Logger.instance("Environment");
@@ -79,17 +76,11 @@ public final class Environment {
IDE_PROPS.putAll(readProperties());
ANDROID_HOME = new File(readProp("ANDROID_HOME", DEFAULT_ANDROID_HOME));
JAVA_HOME = new File(readProp("JAVA_HOME", DEFAULT_JAVA_HOME));
GRADLE_HOME = new File(readProp("GRADLE_HOME", DEFAULT_GRADLE_HOME));
GRADLE = new File(GRADLE_HOME, "bin/gradle");
JAVA = new File(JAVA_HOME, "bin/java");
BUSYBOX = new File(BINDIR, "busybox");
SHELL = new File(BINDIR, "sh.sh");
if(!GRADLE.canExecute()) {
GRADLE.setExecutable(true);
}
if(!JAVA.canExecute()) {
JAVA.setExecutable(true);
}
@@ -119,11 +110,7 @@ public final class Environment {
}
return props;
}
public static File getGradleDir() {
return GRADLE_HOME;
}
public static void setBootClasspath(File file) {
BOOTCLASSPATH = new File(file.getAbsolutePath());
}
@@ -131,8 +118,9 @@ public final class Environment {
public static Map<String, String> getEnvironment(boolean publicUse) {
final Map<String, String> map = new HashMap<>();
map.put("HOME", HOME.getAbsolutePath());
map.put("ANDROID_HOME", ANDROID_HOME.getAbsolutePath());
map.put("JAVA_HOME", JAVA_HOME.getAbsolutePath());
map.put("GRADLE_USER_HOME", GRADLE_USER_HOME.getAbsolutePath());
map.put("GRADLE_HOME", GRADLE_HOME.getAbsolutePath());
map.put("TMPDIR", TMP_DIR.getAbsolutePath());
map.put("PROJECTS", PROJECTS_DIR.getAbsolutePath());
map.put("LANG", "en_US.UTF-8");
@@ -150,10 +138,6 @@ public final class Environment {
map.put("CONFIG_SHELL", SHELL.getAbsolutePath());
map.put("TERM", "screen");
map.put("ANDROID_HOME", ANDROID_HOME.getAbsolutePath());
map.put("GRADLE_HOME", GRADLE_HOME.getAbsolutePath());
map.put("JAVA_HOME", JAVA_HOME.getAbsolutePath());
/**
* If LD_LIBRARY_PATH is set, append $SYSROOT/lib to it,
* else set it to $SYSROOT/lib
@@ -177,7 +161,6 @@ public final class Environment {
String path = "";
path += String.format("%s/bin", JAVA_HOME.getAbsolutePath());
path += String.format(":%s/bin", GRADLE_HOME.getAbsolutePath());
path += String.format(":%s/cmdline-tools/latest/bin", ANDROID_HOME.getAbsolutePath());
path += String.format(":%s/cmake/bin", ANDROID_HOME.getAbsolutePath());
path += String.format(":%s/bin", SYSROOT.getAbsolutePath());