fix(ui): Don't call setOn(Long)ClickListener for an AdapterView

This commit is contained in:
hyb1996
2018-04-11 16:41:16 +08:00
parent b49ea34585
commit 8b82a294d7
3 changed files with 25 additions and 9 deletions

View File

@@ -0,0 +1,9 @@
var J = {};
J.instanceOf = function(obj, clazz){
return java.lang.Class.forName(clazz).isAssignableFrom(obj.getClass());
}
module.exports = J;

View File

@@ -3,6 +3,8 @@ module.exports = function (runtime, global) {
require("object-observe-lite.min")(); require("object-observe-lite.min")();
require("array-observe.min")(); require("array-observe.min")();
var J = require("__java_util__");
var ui = {}; var ui = {};
ui.__view_cache__ = {}; ui.__view_cache__ = {};
@@ -234,16 +236,19 @@ module.exports = function (runtime, global) {
event.consumed = false; event.consumed = false;
emit("touch", event, view); emit("touch", event, view);
return event.consumed; 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) { view.setOnKeyListener(function (v, keyCode, event) {
event = wrapMotionEvent(event); event = wrapMotionEvent(event);
emit("key", keyCode, event, v); emit("key", keyCode, event, v);

View File

@@ -1,5 +1,7 @@
package com.stardust.autojs.core.http; package com.stardust.autojs.core.http;
import android.widget.AdapterView;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;