fix(ui): Don't call setOn(Long)ClickListener for an AdapterView
This commit is contained in:
9
autojs/src/main/assets/modules/__java_util__.js
Normal file
9
autojs/src/main/assets/modules/__java_util__.js
Normal file
@@ -0,0 +1,9 @@
|
||||
var J = {};
|
||||
|
||||
J.instanceOf = function(obj, clazz){
|
||||
return java.lang.Class.forName(clazz).isAssignableFrom(obj.getClass());
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = J;
|
||||
@@ -3,6 +3,8 @@ module.exports = function (runtime, global) {
|
||||
require("object-observe-lite.min")();
|
||||
require("array-observe.min")();
|
||||
|
||||
var J = require("__java_util__");
|
||||
|
||||
|
||||
var ui = {};
|
||||
ui.__view_cache__ = {};
|
||||
@@ -234,16 +236,19 @@ module.exports = function (runtime, global) {
|
||||
event.consumed = false;
|
||||
emit("touch", event, view);
|
||||
return event.consumed;
|
||||
})
|
||||
view.setOnLongClickListener(function (v) {
|
||||
var event = {};
|
||||
event.consumed = false;
|
||||
emit("long_click", event, view);
|
||||
return event.consumed;
|
||||
});
|
||||
view.setOnClickListener(function (v) {
|
||||
emit("click", view);
|
||||
});
|
||||
if(!J.instanceOf(view, "android.widget.AdapterView")){
|
||||
view.setOnLongClickListener(function (v) {
|
||||
var event = {};
|
||||
event.consumed = false;
|
||||
emit("long_click", event, view);
|
||||
return event.consumed;
|
||||
});
|
||||
view.setOnClickListener(function (v) {
|
||||
emit("click", view);
|
||||
});
|
||||
}
|
||||
|
||||
view.setOnKeyListener(function (v, keyCode, event) {
|
||||
event = wrapMotionEvent(event);
|
||||
emit("key", keyCode, event, v);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.stardust.autojs.core.http;
|
||||
|
||||
import android.widget.AdapterView;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
Reference in New Issue
Block a user