diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java b/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java
index d3fcecd2..53b82815 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/debug/CodeEvaluateDialogBuilder.java
@@ -33,7 +33,7 @@ public class CodeEvaluateDialogBuilder extends ThemeColorMaterialDialogBuilder {
customView(view, true);
mResult = view.findViewById(R.id.result);
mCode = view.findViewById(R.id.code);
- positiveText(R.string.text_run);
+ positiveText(R.string.text_execute);
negativeText(R.string.text_close);
autoDismiss(false);
onNegative((dialog, which) -> dialog.dismiss());
diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.java b/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.java
index fab5e057..277591a1 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.java
@@ -31,6 +31,7 @@ import android.util.AttributeSet;
import android.util.Log;
import android.util.TimingLogger;
import android.view.Gravity;
+import android.view.MotionEvent;
import org.autojs.autojs.ui.edit.theme.Theme;
import org.autojs.autojs.ui.edit.theme.TokenMapping;
@@ -270,7 +271,7 @@ public class CodeEditText extends AppCompatEditText {
return;
}
Layout layout = getLayout();
- if(layout == null){
+ if (layout == null) {
return;
}
int lineTop = layout.getLineTop(line);
@@ -390,7 +391,7 @@ public class CodeEditText extends AppCompatEditText {
return;
String line = text.subSequence(lineStart, lineEnd).toString();
int cursor = sel - lineStart;
- for(CodeEditor.CursorChangeCallback callback : mCursorChangeCallbacks){
+ for (CodeEditor.CursorChangeCallback callback : mCursorChangeCallbacks) {
callback.onCursorChange(line, cursor);
}
}
@@ -404,7 +405,6 @@ public class CodeEditText extends AppCompatEditText {
}
-
public void updateHighlightTokens(JavaScriptHighlighter.HighlightTokens highlightTokens) {
mHighlightTokens = highlightTokens;
postInvalidate();
@@ -451,4 +451,39 @@ public class CodeEditText extends AppCompatEditText {
super.onRestoreInstanceState(superData);
}
+ private int mTouchedLine = -1;
+ private boolean mTouchValid = true;
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ //如果行号区域被按下
+ if (event.getAction() == MotionEvent.ACTION_DOWN && event.getX() < getPaddingLeft()) {
+ //则计算当前行,如果行号有效,记录起来
+ int line = getLayout().getLineForVertical((int) event.getY());
+ if (line >= 0) {
+ mTouchedLine = line;
+ mTouchValid = true;
+ return true;
+ }
+ } else if (mTouchedLine >= 0) {
+ //如果之前已经是行号区域被按下了,则之后的事件也要处理
+ //如果之后的触摸区域超出行号区域,或者触摸的行号与第一次触摸事件时的不同,则这一系列的触摸无效
+ if (event.getX() >= getPaddingLeft() || (getLayout().getLineForVertical((int) event.getY()) != mTouchedLine)) {
+ mTouchValid = false;
+ }
+ if (event.getAction() == MotionEvent.ACTION_UP) {
+ //当触摸有效时,对那一行设置断点或取消断点
+ if (mTouchValid) {
+ if (mBreakpoints.remove(mTouchedLine) == null) {
+ mBreakpoints.put(mTouchedLine, new CodeEditor.Breakpoint(mTouchedLine));
+ }
+ invalidate();
+ }
+ mTouchedLine = -1;
+ }
+ return true;
+ }
+
+ return super.onTouchEvent(event);
+ }
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java b/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java
index 26d03919..5d9b0c3f 100644
--- a/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java
+++ b/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java
@@ -3,6 +3,7 @@ package org.autojs.autojs.ui.edit.editor;
import android.content.pm.PackageManager;
import android.graphics.Canvas;
import android.graphics.Rect;
+import android.os.Parcelable;
import android.text.Layout;
import android.text.TextUtils;
@@ -71,4 +72,10 @@ public class LayoutHelper {
return low;
}
+ public static int getVisibleLineAt(Layout layout, float x, float y) {
+ if(layout == null) {
+ return -1;
+ }
+ return 0;
+ }
}
diff --git a/app/src/main/res/layout/dialog_code_evaluate.xml b/app/src/main/res/layout/dialog_code_evaluate.xml
index 4421dc07..3070df80 100644
--- a/app/src/main/res/layout/dialog_code_evaluate.xml
+++ b/app/src/main/res/layout/dialog_code_evaluate.xml
@@ -7,15 +7,15 @@
@@ -23,14 +23,14 @@
代码
结果
关闭
+ 执行