mirror of https://github.com/espruino/BangleApps
sensortools - Fix sensortools breaking Bangle.emit with multiple arguments (e.g. "message")
parent
61a3b406af
commit
a2d1b9c0fb
|
@ -4,3 +4,4 @@
|
|||
0.04: Correct type of time attribute in gps to Date
|
||||
0.05: Fix gps emulation interpolation
|
||||
Add setting for log output
|
||||
0.06: Fix sensortools breaking Bangle.emit with multiple arguments (e.g. "message")
|
||||
|
|
|
@ -20,37 +20,44 @@ exports.enable = () => {
|
|||
Bangle.sensortoolsOrigEmit = Bangle.emit;
|
||||
Bangle.sensortoolsOrigRemoveListener = Bangle.removeListener;
|
||||
|
||||
const modifyArguments = function(args, value) {
|
||||
if (args.length >= 1)
|
||||
args[0] = value;
|
||||
return args;
|
||||
};
|
||||
|
||||
Bangle.on = function(name, callback) {
|
||||
if (onEvents[name]) {
|
||||
log("Redirecting listener for", name, "to", name + "_mod");
|
||||
Bangle.sensortoolsOrigOn(name + "_mod", callback);
|
||||
Bangle.sensortoolsOrigOn(name, (e) => {
|
||||
log("Redirected event for", name, "to", name + "_mod");
|
||||
Bangle.sensortoolsOrigEmit(name + "_mod", onEvents[name](e));
|
||||
let origName = name;
|
||||
Bangle.sensortoolsOrigOn(origName, (e) => {
|
||||
log("Redirected event for", origName, "to", origName + "_mod");
|
||||
Bangle.sensortoolsOrigEmit(origName + "_mod", onEvents[origName](e));
|
||||
});
|
||||
Bangle.sensortoolsOrigOn.apply(this, modifyArguments(arguments, name + "_mod"));
|
||||
} else {
|
||||
log("Pass through on call for", name, callback);
|
||||
Bangle.sensortoolsOrigOn(name, callback);
|
||||
Bangle.sensortoolsOrigOn.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
Bangle.removeListener = function(name, callback) {
|
||||
Bangle.removeListener = function(name) {
|
||||
if (onEvents[name]) {
|
||||
log("Removing augmented listener for", name, onEvents[name]);
|
||||
Bangle.sensortoolsOrigRemoveListener(name + "_mod", callback);
|
||||
Bangle.sensortoolsOrigRemoveListener.apply(this, modifyArguments(arguments, name + "_mod"));
|
||||
} else {
|
||||
log("Pass through remove listener for", name);
|
||||
Bangle.sensortoolsOrigRemoveListener(name, callback);
|
||||
Bangle.sensortoolsOrigRemoveListener.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
Bangle.emit = function(name, event) {
|
||||
Bangle.emit = function(name) {
|
||||
if (onEvents[name]) {
|
||||
log("Augmenting emit call for", name, onEvents[name]);
|
||||
Bangle.sensortoolsOrigEmit(name + "_mod", event);
|
||||
Bangle.sensortoolsOrigEmit.apply(this, modifyArguments(arguments, name + "_mod"));
|
||||
} else {
|
||||
log("Pass through emit call for", name);
|
||||
Bangle.sensortoolsOrigEmit(name, event);
|
||||
Bangle.sensortoolsOrigEmit.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"id": "sensortools",
|
||||
"name": "Sensor tools",
|
||||
"shortName": "Sensor tools",
|
||||
"version": "0.05",
|
||||
"version": "0.06",
|
||||
"description": "Tools for testing and debugging apps that use sensor input",
|
||||
"icon": "icon.png",
|
||||
"type": "bootloader",
|
||||
|
|
Loading…
Reference in New Issue