From 86c1371e93b7153f93ca6b99a74b234ec222f88a Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Tue, 27 Feb 2018 09:39:58 +0800 Subject: [PATCH] touch record lazy initialize --- .../autojs/record/GlobalActionRecorder.java | 24 ++++++++++++------- .../ui/edit/editor/CodeEditText.java | 7 +++--- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java b/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java index 829bea8a..db6b2511 100644 --- a/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java +++ b/app/src/main/java/com/stardust/scriptdroid/autojs/record/GlobalActionRecorder.java @@ -43,7 +43,21 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener { public GlobalActionRecorder(Context context) { mContext = new ContextThemeWrapper(context.getApplicationContext(), R.style.AppTheme); - mTouchRecorder = new TouchRecorder(context) { + } + + + public void start() { + if (mTouchRecorder == null) { + mTouchRecorder = createTouchRecorder(); + } + mTouchRecorder.reset(); + mDiscard = false; + mTouchRecorder.setOnStateChangedListener(this); + mTouchRecorder.start(); + } + + private TouchRecorder createTouchRecorder() { + return new TouchRecorder(mContext) { @Override protected InputEventRecorder createInputEventRecorder() { if (Pref.rootRecordGeneratesBinary()) @@ -54,14 +68,6 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener { }; } - - public void start() { - mTouchRecorder.reset(); - mDiscard = false; - mTouchRecorder.setOnStateChangedListener(this); - mTouchRecorder.start(); - } - public void pause() { mTouchRecorder.pause(); } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java b/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java index 0090c2b2..5228a717 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java @@ -151,6 +151,7 @@ public class CodeEditText extends AppCompatEditText { int lineNumberColor = mTheme.getLineNumberColor(); if (DEBUG) Log.d(LOG_TAG, "draw line: " + (mLastLineForDraw - mFirstLineForDraw + 1)); + mLogger.addSplit("before draw line"); for (int line = mFirstLineForDraw; line <= mLastLineForDraw && line < lineCount; line++) { int lineBottom = layout.getLineTop(line + 1); int lineBaseline = lineBottom - layout.getLineDescent(line); @@ -181,8 +182,6 @@ public class CodeEditText extends AppCompatEditText { } else { previousColor = highlightTokens.colors[previousColorPos]; } - if (DEBUG) - Log.d(LOG_TAG, "draw line " + line + ": " + (visibleCharEnd - visibleCharStart)); int i; for (i = visibleCharStart; i < visibleCharEnd; i++) { int color; @@ -204,7 +203,9 @@ public class CodeEditText extends AppCompatEditText { paint.setColor(previousColor); float offsetX = paint.measureText(text, lineStart, previousColorPos); canvas.drawText(text, previousColorPos, visibleCharEnd, paddingLeft + offsetX, lineBaseline, paint); - + if (DEBUG) { + mLogger.addSplit("draw line " + line + " (" + (visibleCharEnd - visibleCharStart) + ") "); + } } }