mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
Reduced the number of build progress events received from Tooling API
This commit is contained in:
Binary file not shown.
@@ -18,12 +18,12 @@
|
||||
package com.itsaky.androidide.handlers
|
||||
|
||||
import com.itsaky.androidide.EditorActivity
|
||||
import com.itsaky.androidide.resources.R.string
|
||||
import com.itsaky.androidide.preferences.internal.isFirstBuild
|
||||
import com.itsaky.androidide.resources.R.string
|
||||
import com.itsaky.androidide.services.GradleBuildService
|
||||
import com.itsaky.androidide.tooling.events.ProgressEvent
|
||||
import com.itsaky.androidide.tooling.events.download.FileDownloadFinishEvent
|
||||
import com.itsaky.androidide.tooling.events.task.TaskProgressEvent
|
||||
import com.itsaky.androidide.tooling.events.configuration.ProjectConfigurationStartEvent
|
||||
import com.itsaky.androidide.tooling.events.task.TaskStartEvent
|
||||
import com.itsaky.androidide.utils.ILogger
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
@@ -64,10 +64,8 @@ class EditorEventListener : GradleBuildService.EventListener {
|
||||
}
|
||||
|
||||
override fun onProgressEvent(event: ProgressEvent) {
|
||||
if (event is FileDownloadFinishEvent) {
|
||||
activity().setStatus("")
|
||||
} else if (event is TaskProgressEvent) {
|
||||
activity().setStatus(activity().getString(string.msg_running_task, event.descriptor.taskPath))
|
||||
if (event is ProjectConfigurationStartEvent || event is TaskStartEvent) {
|
||||
activity().setStatus(event.descriptor.displayName)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,12 +45,12 @@ import com.blankj.utilcode.util.ResourceUtils;
|
||||
import com.blankj.utilcode.util.ThreadUtils;
|
||||
import com.blankj.utilcode.util.ZipUtils;
|
||||
import com.itsaky.androidide.BuildConfig;
|
||||
import com.itsaky.androidide.resources.R;
|
||||
import com.itsaky.androidide.app.BaseApplication;
|
||||
import com.itsaky.androidide.lookup.Lookup;
|
||||
import com.itsaky.androidide.models.LogLine;
|
||||
import com.itsaky.androidide.projects.ProjectManager;
|
||||
import com.itsaky.androidide.projects.builder.BuildService;
|
||||
import com.itsaky.androidide.resources.R;
|
||||
import com.itsaky.androidide.shell.CommonProcessExecutor;
|
||||
import com.itsaky.androidide.shell.ProcessStreamsHolder;
|
||||
import com.itsaky.androidide.tooling.api.IProject;
|
||||
@@ -65,6 +65,8 @@ import com.itsaky.androidide.tooling.api.messages.result.InitializeResult;
|
||||
import com.itsaky.androidide.tooling.api.messages.result.TaskExecutionResult;
|
||||
import com.itsaky.androidide.tooling.api.util.ToolingApiLauncher;
|
||||
import com.itsaky.androidide.tooling.events.ProgressEvent;
|
||||
import com.itsaky.androidide.tooling.events.configuration.ProjectConfigurationStartEvent;
|
||||
import com.itsaky.androidide.tooling.events.task.TaskStartEvent;
|
||||
import com.itsaky.androidide.utils.Environment;
|
||||
import com.itsaky.androidide.utils.ILogger;
|
||||
import com.itsaky.androidide.utils.InputStreamLineReader;
|
||||
@@ -146,7 +148,6 @@ public class GradleBuildService extends Service implements BuildService, IToolin
|
||||
public void onDestroy() {
|
||||
LOG.info("Service is being destroyed.", "Dismissing the shown notification...");
|
||||
notificationManager.cancel(NOTIFICATION_ID);
|
||||
|
||||
if (server != null) {
|
||||
server.cancelCurrentBuild();
|
||||
server.shutdown();
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:nestedScrollingEnabled="true">
|
||||
@@ -40,9 +39,9 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@+id/exec"
|
||||
android:layout_alignBottom="@+id/exec"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="-8dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:layout_toStartOf="@id/exec"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/title_run_tasks"
|
||||
android:textAppearance="@style/TextAppearance.Material3.ActionBar.Title" />
|
||||
|
||||
+15
-2
@@ -29,10 +29,14 @@ import com.itsaky.androidide.utils.ILogger;
|
||||
import com.itsaky.androidide.utils.JvmLogger;
|
||||
|
||||
import org.gradle.tooling.ConfigurableLauncher;
|
||||
import org.gradle.tooling.events.OperationType;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
@@ -87,8 +91,7 @@ public class Main {
|
||||
launcher.setStandardError(out);
|
||||
launcher.setStandardOutput(out);
|
||||
launcher.setStandardInput(new ByteArrayInputStream("NoOp".getBytes(StandardCharsets.UTF_8)));
|
||||
|
||||
launcher.addProgressListener(new ForwardingProgressListener());
|
||||
launcher.addProgressListener(new ForwardingProgressListener(), progressUpdateTypes());
|
||||
|
||||
if (client != null) {
|
||||
try {
|
||||
@@ -109,4 +112,14 @@ public class Main {
|
||||
client.logMessage(line);
|
||||
}
|
||||
}
|
||||
|
||||
public static Set<OperationType> progressUpdateTypes() {
|
||||
final Set<OperationType> types = new HashSet<>();
|
||||
|
||||
// AndroidIDE currently does not handle any other type of events
|
||||
types.add(OperationType.TASK);
|
||||
types.add(OperationType.PROJECT_CONFIGURATION);
|
||||
|
||||
return types;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-4
@@ -39,10 +39,11 @@ import com.itsaky.androidide.tooling.api.messages.result.TaskExecutionResult.Fai
|
||||
import com.itsaky.androidide.tooling.api.messages.result.TaskExecutionResult.Failure.UNSUPPORTED_GRADLE_VERSION
|
||||
import com.itsaky.androidide.tooling.api.model.IdeGradleProject
|
||||
import com.itsaky.androidide.tooling.impl.model.InternalForwardingProject
|
||||
import com.itsaky.androidide.tooling.impl.progress.ForwardingProgressListener
|
||||
import com.itsaky.androidide.tooling.impl.util.ProjectReader
|
||||
import com.itsaky.androidide.tooling.impl.util.StopWatch
|
||||
import com.itsaky.androidide.utils.ILogger
|
||||
import java.io.File
|
||||
import java.util.concurrent.*
|
||||
import org.eclipse.lsp4j.jsonrpc.CompletableFutures
|
||||
import org.gradle.tooling.BuildCancelledException
|
||||
import org.gradle.tooling.BuildException
|
||||
@@ -52,8 +53,6 @@ import org.gradle.tooling.GradleConnector
|
||||
import org.gradle.tooling.UnsupportedVersionException
|
||||
import org.gradle.tooling.exceptions.UnsupportedBuildArgumentException
|
||||
import org.gradle.tooling.exceptions.UnsupportedOperationConfigurationException
|
||||
import java.io.File
|
||||
import java.util.concurrent.*
|
||||
|
||||
/**
|
||||
* Implementation for the Gradle Tooling API server.
|
||||
@@ -160,7 +159,6 @@ internal class ToolingApiServerImpl(private val forwardingProject: InternalForwa
|
||||
|
||||
val connection = this.connector!!.connect()
|
||||
val builder = connection.newBuild()
|
||||
builder.addProgressListener(ForwardingProgressListener())
|
||||
|
||||
// System.in and System.out are used for communication between this server and the
|
||||
// client.
|
||||
|
||||
-1
@@ -393,7 +393,6 @@ public class ProjectReader {
|
||||
for (Object msg : messages) {
|
||||
sb.append(msg instanceof Throwable ? "\n" : MSG_SEPARATOR);
|
||||
sb.append(msg instanceof Throwable ? LogUtils.getFullStackTrace(((Throwable) msg)) : msg);
|
||||
sb.append(msg instanceof Throwable ? "\n" : MSG_SEPARATOR);
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user