diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java b/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java index 815be886..ef8a59a5 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java @@ -80,19 +80,15 @@ public class CircularMenu implements Recorder.OnStateChangedListener { } private void setupListeners() { - mWindow.setOnActionViewClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (mState == STATE_RECORDING) { - stopRecord(); - } else if (mWindow.isExpanded()) { - mWindow.collapse(); - } else { - AutoJs.getInstance().getLayoutInspector().captureCurrentWindow(); - mWindow.expand(); - } + mWindow.setOnActionViewClickListener(v -> { + if (mState == STATE_RECORDING) { + stopRecord(); + } else if (mWindow.isExpanded()) { + mWindow.collapse(); + } else { + AutoJs.getInstance().getLayoutInspector().captureCurrentWindow(); + mWindow.expand(); } - }); } @@ -130,12 +126,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener { .customView(listView, false) .positiveText(R.string.cancel) .build(); - listView.setOnItemOperatedListener(new ScriptListView.OnItemOperatedListener() { - @Override - public void OnItemOperated(ScriptFile file) { - dialog.dismiss(); - } - }); + listView.setOnItemOperatedListener(file -> dialog.dismiss()); DialogUtils.showDialog(dialog); } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/scripts/ScriptListView.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/scripts/ScriptListView.java index 1db73ba7..1a763414 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/scripts/ScriptListView.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/scripts/ScriptListView.java @@ -307,7 +307,6 @@ public class ScriptListView extends SwipeRefreshLayout implements SwipeRefreshLa @Override public void onBindViewHolder(BindableViewHolder holder, int position) { int positionOfCategoryFile = positionOfCategoryFile(); - Log.d(LOG_TAG, String.format("view holder = %s, pos = %d, posOfCategory = %d, size = %d", holder.getClass().toString(), position, positionOfCategoryFile, mScriptList.count())); BindableViewHolder bindableViewHolder = (BindableViewHolder) holder; if (position == positionOfCategoryDir || position == positionOfCategoryFile) { // FIXME: 2017/10/20 java.lang.ClassCastException: java.lang.Boolean cannot be cast to com.stardust.scriptdroid.model.script.ScriptFile @@ -323,17 +322,14 @@ public class ScriptListView extends SwipeRefreshLayout implements SwipeRefreshLa @Override public int getItemViewType(int position) { - int viewType; int positionOfCategoryFile = positionOfCategoryFile(); if (position == positionOfCategoryDir || position == positionOfCategoryFile) { - viewType = VIEW_TYPE_CATEGORY; + return VIEW_TYPE_CATEGORY; } else if (position < positionOfCategoryFile) { - viewType = VIEW_TYPE_DIRECTORY; + return VIEW_TYPE_DIRECTORY; } else { - viewType = VIEW_TYPE_FILE; + return VIEW_TYPE_FILE; } - Log.d(LOG_TAG, String.format("view type = %d, pos = %d, posOfCategory = %d, size = %d", viewType, position, positionOfCategoryFile, mScriptList.count())); - return viewType; } @Override diff --git a/app/src/test/java/com/stardust/scriptdroid/ExampleUnitTest.java b/app/src/test/java/com/stardust/scriptdroid/ExampleUnitTest.java index a479ada1..0c2a9962 100644 --- a/app/src/test/java/com/stardust/scriptdroid/ExampleUnitTest.java +++ b/app/src/test/java/com/stardust/scriptdroid/ExampleUnitTest.java @@ -3,6 +3,8 @@ package com.stardust.scriptdroid; import org.junit.Test; import java.util.concurrent.Callable; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import io.reactivex.Observable; import io.reactivex.annotations.NonNull; @@ -20,28 +22,10 @@ public class ExampleUnitTest { @Test public void test() { - Observable.fromCallable(new Callable() { - @Override - public String call() throws Exception { - System.out.println(Thread.currentThread()); - return ""; - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(Schedulers.newThread()) - .doOnComplete(new Action() { - @Override - public void run() throws Exception { - System.out.println(Thread.currentThread()); - } - }) - .observeOn(Schedulers.newThread()) - .subscribe(new Consumer() { - @Override - public void accept(@NonNull String s) throws Exception { - System.out.println(Thread.currentThread()); - } - }); + Matcher matcher = Pattern.compile("[0-9]+").matcher("2937Finish!"); + if (matcher.find()) { + System.out.println(matcher.group()); + } } @Test diff --git a/autojs/src/main/java/com/stardust/autojs/core/console/StardustConsole.java b/autojs/src/main/java/com/stardust/autojs/core/console/StardustConsole.java index 1045f271..c1462d2f 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/console/StardustConsole.java +++ b/autojs/src/main/java/com/stardust/autojs/core/console/StardustConsole.java @@ -14,6 +14,7 @@ import com.stardust.enhancedfloaty.FloatyService; import com.stardust.enhancedfloaty.ResizableExpandableFloatyWindow; import com.stardust.util.UiHandler; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; @@ -67,7 +68,7 @@ public class StardustConsole extends AbstractConsole { private LogListener mLogListener; private UiHandler mUiHandler; private BlockingQueue mInput = new ArrayBlockingQueue<>(1); - private ConsoleView mConsoleView; + private WeakReference mConsoleView; private volatile boolean mShown = false; public StardustConsole(UiHandler uiHandler) { @@ -88,7 +89,7 @@ public class StardustConsole extends AbstractConsole { } public void setConsoleView(ConsoleView consoleView) { - mConsoleView = consoleView; + mConsoleView = new WeakReference<>(consoleView); setLogListener(consoleView); synchronized (this) { this.notify(); @@ -177,13 +178,13 @@ public class StardustConsole extends AbstractConsole { @ScriptInterface public String rawInput() { - if (mConsoleView == null) { + if (mConsoleView == null || mConsoleView.get() == null) { if (!mShown) { show(); } waitForConsoleView(); } - mConsoleView.showEditText(); + mConsoleView.get().showEditText(); try { return mInput.take(); } catch (InterruptedException e) { diff --git a/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java index 8245cdc4..6fd9c6e1 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java +++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java @@ -56,7 +56,7 @@ public class InputEventToAutoFileRecorder extends InputEventRecorder { public void recordInputEvent(@NonNull InputEventObserver.InputEvent event) { try { convertEventOrThrow(event); - //Log.d(LOG_TAG, "recordInputEvent: " + event); + Log.d(LOG_TAG, "recordInputEvent: " + event); } catch (IOException e) { e.printStackTrace(); } diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java b/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java index 05c53635..347fb089 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java +++ b/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java @@ -3,14 +3,23 @@ package com.stardust.autojs.engine; import android.content.Context; import android.preference.PreferenceManager; import android.util.Log; +import android.util.Patterns; import com.stardust.autojs.runtime.api.AbstractShell; import com.stardust.autojs.runtime.api.ProcessShell; import com.stardust.autojs.core.inputevent.InputDevices; +import com.stardust.autojs.runtime.exception.ScriptException; +import com.stardust.autojs.runtime.exception.ScriptInterruptedException; import com.stardust.autojs.script.AutoFileSource; import com.stardust.pio.PFiles; +import java.io.BufferedReader; +import java.io.DataOutputStream; import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Created by Stardust on 2017/8/1. @@ -22,6 +31,7 @@ public class RootAutomatorEngine extends ScriptEngine.AbstractScriptEngine