|
1 | | -#### ⚠️EXPERIMENTAL⚠️ |
2 | | - |
3 | | -# Fastload Utils |
4 | | - |
5 | | -**Use this with caution.** When you find something misbehaving please check if the problem actually persists without Fastload Utils |
6 | | -before filing an issue. |
7 | | - |
8 | | -This allows fast loading of all apps with two conditions: |
9 | | -* Loaded app contains `Bangle.loadWidgets`. This is needed to prevent problems with apps not expecting widgets to be already loaded. |
10 | | -* Current app can be removed completely from RAM. |
11 | | - |
12 | | -**Fastload has no way of knowing whether an app can be removed completely from RAM, so if it can't your |
13 | | -Bangle will just end up with a memory leak or undefined behaviour** |
14 | | - |
15 | | -#### ⚠️ KNOWN ISSUES ⚠️ |
16 | | - |
17 | | -* Fastload currently does not play nice with the automatic reload option of the apploader. App installs and upgrades are unreliable since the fastload causes code to run after reset and interfere with the upload process. |
18 | | - |
19 | | -## Settings |
20 | | - |
21 | | -* Activate app history and navigate back through recent apps instead of immediately loading the clock face |
22 | | -* If Quick Launch is installed it can be excluded from app history |
23 | | -* Allows to redirect all loads usually loading the clock to the launcher instead |
24 | | -* The "Fastloading..." screen can be switched off |
25 | | -* Enable checking `setting.json` and force a complete load on changes |
26 | | - |
27 | | -## App history |
28 | | - |
29 | | -* Long press of hardware button clears the app history and loads the clock face |
30 | | -* Installing the 'Fast Reset' app allows doing fastloads directly to the clock face by pressing the hardware button just a little longer than a click. Useful if there are many apps in the history and the user want to access the clock quickly. |
31 | | - |
32 | | -## Technical Notes |
33 | | - |
34 | | -Fastload uses the same mechanism as `.bootcde` does to check the app to be loaded for widget use and stores the result of that and a hash of the js in a cache. |
35 | | - |
36 | | -Fastload calls `Bangle.load` to fast load an app, and this checks if `Bangle.uiRemove` exists and if so calls it to upload the app, and loads a new app using `eval`. `Bangle.uiRemove` is set when |
37 | | -UI elements (`layout`, `Bangle.setUI`, scrollers, etc) are supplied with a `remove` callback - and so it's assumed that the remove callback will remove *everything* related to the app from RAM. |
38 | | - |
39 | | -The problem is that apart from clocks, very few apps do actually completely remove themselves from RAM when the `remove` callback is called, so the possibility of memory leaks is very high. |
| 1 | +# App history |
40 | 2 |
|
| 3 | +* Lets you navigate back trough the series of apps since last you were on the clock face. Works with the software back button and hardware button. |
| 4 | +* Long press of hardware button clears the app history and loads the clock face (Sometimes triggered if your not very quickly releasing the button) |
41 | 5 |
|
42 | 6 | # Creator |
43 | 7 |
|
44 | | -[halemmerich](https://github.com/halemmerich) |
| 8 | +[thyttan](https://github.com/thyttan) |
| 9 | +[halemmerich](https://github.com/halemmerich) (Fastload Utils) |
45 | 10 |
|
46 | 11 | # Contributors |
47 | 12 |
|
48 | | -[thyttan](https://github.com/thyttan) |
0 commit comments