Skip to content

Commit 5cbb72e

Browse files
author
thyttan
committed
swipeinv: refactor to modify at listener registration
1 parent 2a706a2 commit 5cbb72e

File tree

1 file changed

+37
-31
lines changed

1 file changed

+37
-31
lines changed

apps/swipeinv/boot.js

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,51 @@
55
}, require("Storage").readJSON("swipeinv.json", true) || {});
66

77
let getAppIdFromSrc = ()=> {
8+
"ram"
89
if (!global.__FILE__ || global.__FILE__===".bootcde") {
910
return require("Storage").readJSON("setting.json",true).clock
1011
} else {return global.__FILE__.split(".")[0];}
1112
}
1213

13-
setTimeout(() => { // Timeout so we prepend listeners late, hopefully after all other listerners were added.
14-
if (settings.global || Object.keys(settings.apps).length > 0) {
15-
16-
let swipeInverter = (dirLR, dirUD, obj) => {
17-
if (settings.global ^ Object.keys(settings.apps).includes(getAppIdFromSrc())) {
18-
if (!(obj && obj.inverted)) {
19-
E.stopEventPropagation();
20-
obj = Object.assign({inverted:true}, obj);
21-
22-
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].swipeH)) {dirLR *= -1;}
23-
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].swipeV)) {dirUD *= -1;}
24-
25-
Bangle.emit("swipe", dirLR, dirUD, obj)
26-
}
27-
}
14+
if (settings.global || Object.keys(settings.apps).length > 0) {
15+
print("hi")
16+
const Object_on = Object.on;
17+
const Object_prependListener = Object.prependListener;
18+
19+
const invertBeforeRegisteringListener = function(eventType, eventCallback){
20+
"ram"
21+
print("hi2")
22+
if (eventType === "swipe") {
23+
return (function(dirLR, dirUD) {
24+
print(dirLR, dirUD)
25+
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].swipeH)) {dirLR *= -1;}
26+
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].swipeV)) {dirUD *= -1;}
27+
print(dirLR, dirUD)
28+
eventCallback(dirLR, dirUD);
29+
})
2830
}
29-
30-
let dragInverter = (e) => {
31-
if (settings.global ^ Object.keys(settings.apps).includes(getAppIdFromSrc())) {
32-
if (!e.inverted) {
33-
E.stopEventPropagation();
34-
e.inverted = true;
35-
36-
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].dragH)) {e.dx *= -1;}
37-
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].dragV)) {e.dy *= -1;}
38-
39-
Bangle.emit("drag", e);
40-
}
41-
}
31+
if (eventType === "drag") {
32+
return (function(e) {
33+
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].dragH)) {e.dx *= -1;}
34+
if (settings.global ^ (settings.apps[getAppIdFromSrc()]&&settings.apps[getAppIdFromSrc()].dragV)) {e.dy *= -1;}
35+
eventCallback(e);
36+
})
4237
}
38+
return eventCallback;
39+
}
4340

44-
Bangle.prependListener("swipe", swipeInverter);
45-
Bangle.prependListener("drag", dragInverter);
41+
Object.on = (parent, eventType /*string*/, eventCallback /*function reacting to event*/, addFirst)=>{
42+
"ram"
43+
print("hi3")
44+
const eventCallbackWrapped = invertBeforeRegisteringListener(eventType, eventCallback);
45+
print(eventType, eventCallbackWrapped)
46+
Object_on(parent, eventType, eventCallbackWrapped, addFirst);
47+
}
4648

49+
Object.prependListener = function(parent, eventType /*string*/, eventCallback /*function reacting to event*/) {
50+
"ram"
51+
const eventCallbackWrapper = invertBeforeRegisteringListener(eventType, eventCallback);
52+
Object_prependListener(parent, eventType, eventCallbackWrapper);
4753
}
48-
}, 0)
54+
}
4955
}

0 commit comments

Comments
 (0)