From c664e45eb054eeaddf9ac29ff89a314951fb5996 Mon Sep 17 00:00:00 2001 From: crazysaem Date: Wed, 22 Dec 2021 20:58:26 +0000 Subject: [PATCH] swp2clk: Remove unused app icon (since we are settings-only). Add comment explaining boot.js code. Add credits and motivation. --- apps.json | 3 +-- apps/swp2clk/README.md | 12 +++++++++++- apps/swp2clk/app-icon.js | 1 - apps/swp2clk/app.pdn | Bin 7005 -> 0 bytes apps/swp2clk/boot.js | 17 +++++++++++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) delete mode 100644 apps/swp2clk/app-icon.js delete mode 100644 apps/swp2clk/app.pdn diff --git a/apps.json b/apps.json index 0a537d676..51b17e7f5 100644 --- a/apps.json +++ b/apps.json @@ -5075,8 +5075,7 @@ "readme": "README.md", "storage": [ { "name": "swp2clk.boot.js", "url": "boot.js" }, - {"name":"swp2clk.settings.js","url":"settings.js"}, - { "name": "swp2clk.img", "url": "app-icon.js", "evaluate": true } + {"name":"swp2clk.settings.js","url":"settings.js"} ], "data": [{"name":"swp2clk.data.json"}] } diff --git a/apps/swp2clk/README.md b/apps/swp2clk/README.md index f6d0dd2b4..877a13ecc 100644 --- a/apps/swp2clk/README.md +++ b/apps/swp2clk/README.md @@ -9,4 +9,14 @@ The swipe modes can be configured in the settings app, under "Swipe to Clock". - Always Off: Deactivated for all apps (Default) - White List: Only activate for chosen apps, otherwise deactivated for all apps. - Black List: Only disabled for chosen apps, otherwise activated for all apps. -- Always On: Active for all apps (Not actually recommended! E.g. Games need to be able to deal with swipe gestures) \ No newline at end of file +- Always On: Active for all apps (Not actually recommended! E.g. Games need to be able to deal with swipe gestures) + +## Motivation: + +The goal is to further support touch-only usage of the BangleJS 2 watch. You can use the [Swiper Clock Launch](https://banglejs.com/apps/#swiper%20clock%20launch) or the [Pattern Launcher](https://banglejs.com/apps/#pattern%20launcher) to further enable touch-only support of the watch. + +## Credits: + +Initial creation: [crazysaem](https://github.com/crazysaem) + +Inspired by: [Swiper Clock Launch](https://banglejs.com/apps/#swiper%20clock%20launch) \ No newline at end of file diff --git a/apps/swp2clk/app-icon.js b/apps/swp2clk/app-icon.js deleted file mode 100644 index e59cd6244..000000000 --- a/apps/swp2clk/app-icon.js +++ /dev/null @@ -1 +0,0 @@ -require("heatshrink").decompress(atob("mEwwkE/4A2+cyiJABiMjn4WPiAVCDIUBDBsyiEBiUzAwMzkIHBl4tMBw/yBIIxKkIME+YEEiESIpMBkYGD+MfKQoMEEQcgiYHE+EPAwkxgRJG+RSGC4xJBNYwuGC44wCD4sRG4wXHCAweGC5JABQAhGHC5IpFiDIHC5HzgIEHC5oqE+JeHC5RgDmBkEC5vxgYXZkDdGC5fyLYSOIC5SLDC5MgQJAXDUxHygEAKREQC5XxC4KCIC8xHLO4/ziERiSPTmI4IC4rXGFwMTC5LXDmBsFFwLHINQUDC44uH+fc54XG+LlE+QuFnvM5gXDkArCMYYFCkYsECwIAHSBIsDC5cgLIoVMC4ZgFC6PziJIFLpYXDJA53PUY6nHZQMvEwwwIa4kxgQmHmUBXoYMHiAMJkJJJIoMSEZIMBgJTG+QJBERAOFiUzAwMzkIgIGJEAgERiIDBFpgYEmQVCiMjCx4AoA=")) \ No newline at end of file diff --git a/apps/swp2clk/app.pdn b/apps/swp2clk/app.pdn deleted file mode 100644 index 60baf6cab3ff2c1a4c0ed0f096d691b636627b77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7005 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 LKL52a!)x_F<_%{L diff --git a/apps/swp2clk/boot.js b/apps/swp2clk/boot.js index 54486742a..3119ce06b 100644 --- a/apps/swp2clk/boot.js +++ b/apps/swp2clk/boot.js @@ -1,3 +1,20 @@ +/** + * How does this work? + * + * Every *boot.js file is executed everytime any app is loaded, including this one. + * We just need to figure out which app is currently loaded, in case we are in the white list / black list mode, + * to figure out if the swipe handler should be attached or not. + * It does not seem to be the case that this can be done easily, but we can work around it. + * It seems that every app is loaded via the global "load" function, which takes a fileName as it's first parameter to load any app + * or the default clock when the fileName is undefined. + * To be able to use this for us, we wrap the global "load" function, and determine before loading the next app, + * whether the swipe handler should be added or not, since we now know which app will be loaded. + * Note: We cannot add the swipe handler inside the wrapped "load" function, because once the "load" function is complete + * everything is cleaned up. That's why we merely save a flag, whether the swipe handler should be attached or not, + * which is evaluated once this file is executed again, which will be right after the load function completes + * (since every *boot.js file is executed everytime any app is loaded). + */ + (function () { var DEBUG = true; var FILE = "swp2clk.data.json";