diff --git a/.idea/misc.xml b/.idea/misc.xml index c69e71bb..274735b3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -48,7 +48,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 37d1004d..c5e6e837 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.stardust.scriptdroid" minSdkVersion 17 targetSdkVersion 23 - versionCode 154 - versionName "2.0.15 Alpha2" + versionCode 155 + versionName "2.0.15 Alpha3" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true ndk { diff --git a/app/src/main/assets/help/documentation/事件与按键、触摸监听.md b/app/src/main/assets/help/documentation/事件与按键、触摸监听.md index cb792810..2512ff83 100644 --- a/app/src/main/assets/help/documentation/事件与按键、触摸监听.md +++ b/app/src/main/assets/help/documentation/事件与按键、触摸监听.md @@ -89,15 +89,15 @@ loop(); 返回触摸事件的最小时间间隔。 ### events.onTouch(listener) -* listener \ 参数为(x, y)的函数 +* listener \ 参数为Point的函数 注册一个触摸监听函数。 例如: ``` events.observeTouch(); -events.onTouch(function(x, y){ - log(x + ", " + y); +events.onTouch(function(p){ + log(p.x + ", " + p.y); }); events.loop(); ``` @@ -106,21 +106,6 @@ events.loop(); 删除所有事件监听函数。 -### events.setTimeout(callback, delay) -* callback \ 回调函数 -* delay \ 延迟 - -延迟大约delay毫秒后执行callback。该函数只有在events.loop()被使用时才有效。 - -返回一个整数表示这个设置的timeout, 可由clearTimeout取消。 - - -### events.clearTimeout(id) - -* id \ 由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行回调。 - -取消由 setTimeout() 方法设置的 timeout。 - ### key事件 当有按键被按下或弹起时会触发该事件。 diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/CodeCompletion.java b/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/CodeCompletion.java index da74edb0..e6bdae80 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/CodeCompletion.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/CodeCompletion.java @@ -95,7 +95,6 @@ public class CodeCompletion implements TextWatcher { @Override public void afterTextChanged(Editable s) { int position = mEditText.getSelectionStart(); - String[] str = parseWordBefore(s, position); if (str != null) { if (str[1] != null) { @@ -163,8 +162,13 @@ public class CodeCompletion implements TextWatcher { private boolean searchCodeCompletionForVariable(String variable, String str) { List properties = getPropertiesForVariable(variable); Collection c = searchCodeCompletion(str, properties); - mOnCodeCompletionChangeListener.OnCodeCompletionChange(c, Collections.emptyList()); - return !c.isEmpty(); + if (c.isEmpty()) { + mOnCodeCompletionChangeListener.OnCodeCompletionChange(DEFAULT_CODE_COMPLETION_LIST, Collections.emptyList()); + return false; + } else { + mOnCodeCompletionChangeListener.OnCodeCompletionChange(c, Collections.emptyList()); + return true; + } } private List getPropertiesForVariable(String str) { diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/InputMethodEnhanceBar.java b/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/InputMethodEnhanceBar.java index 72c520f9..c030f5ac 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/InputMethodEnhanceBar.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/edit/completion/InputMethodEnhanceBar.java @@ -109,7 +109,11 @@ public class InputMethodEnhanceBar extends RecyclerView implements CodeCompletio mCodeCompletion.setVariableProperties(variables); } }); + }else { + mCodeCompletion.setGlobal(global); + mCodeCompletion.setVariableProperties(variables); } + } public void setEditTextBridge(EditTextBridge editTextBridge) { diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java index ea949b0d..3746008e 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java @@ -22,14 +22,14 @@ public class Timers { mBridges = bridges; } - public int setTimeout(final Object listener, long delay, final Object... args) { + public int setTimeout(final Object callback, long delay, final Object... args) { prepareLoopIfNeeded(); mCallbackMaxId++; final int id = mCallbackMaxId; Runnable r = new Runnable() { @Override public void run() { - mBridges.callFunction(listener, null, args); + mBridges.callFunction(callback, null, args); mHandlerCallbacks.remove(id); } }; @@ -98,7 +98,11 @@ public class Timers { if (Looper.myLooper() != null) return; Looper.prepare(); - sLoopers.put(Thread.currentThread(), Looper.myLooper()); + Looper looper = Looper.myLooper(); + if (looper != null) { + // null check is not necessary, just to make Android Studio happy + sLoopers.put(Thread.currentThread(), looper); + } mHandler = new Handler(); }