-
-
Wake on touch would be more accurately named wake on tap - leaving the touchscreen on would draw too much power, so instead it detects the vibration from you tapping the watch.
Is it possible that something caused the watch to vibrate? If I enable wake on touch, I can unlock my watch by shaking or banging on the table it's sitting on.
-
-
-
Specifically, on your phone you want to install the F-Droid version of GadgetBridge from https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge/
-
Bangle.js can send the commands "DISMISS,DISMISS_ALL/OPEN/MUTE/REPLY back, but I wonder whether it's currently sending the wrong ones
From a bit of quick testing, it looks like it's sending the correct commands but it's not including the notification id in the response object.
Edit: I created a pull request to fix the issue: https://github.com/espruino/BangleApps/pull/1077
-
Sounds conceptually similar to EPX/Scale2x: https://en.wikipedia.org/wiki/Pixel-art_scaling_algorithms#EPX/Scale2%C3%97/AdvMAME2%C3%97
There are a number of pixel art scaling algorithms, if you want to generalize this they're worth looking into.
-
The buzz call isn't the only thing that needs to be suppressed... I charge my watch by my bed, so I don't want the screen turning on and shining in my eyes for that 3am update notification either. However, I do want the screen to turn on if I interact with the watch directly, so a bit more nuance is required than just "suppress the setLCDPower call".
Similarly, I wonder if there are cases where one would expect vibration to work even when quiet mode is enabled, similar to how do not disturb on Android does not prevent games or media apps from playing sound.
-
-
-
-
I suspect the issue is that since
layout.time.label
is initially empty, and you don't calllayout.update
after setting it, the layout code thinks it still has zero width and thus tries to clear an area with zero width.Try either setting the label to a placeholder value of
"00:00"
when you construct the layout or calllayout.update()
before each render. -
-
-
-
if I update a layout txt with the exact same text, will this cause a screen update on a render pass
As long as the contents of the layout element are identical the lazy renderer should be able to avoid re-rendering it.
I can just set screen with all current data and have the lazy renderer decide what work actually needs done
That's the idea :)
One caveat is that the lazy rendering algorithm itself has a small performance cost, so while it can help a great deal with reducing flicking on the Bangle 1, it's not always that much faster than a full re-render.
-
-
Maybe some exception in the non-configured weather widget causes other widgets to crash / not being shown?
I think you're right on the money here, this is a bug that slipped in last time I updated the weather app. I've submitted a pull request to fix.
-
-
Try using the File Converter to convert it to Base 64.
-
How hard would it be to make the only the selected item bigger? That would allow us to fit nearly as many items on screen, while simultaneously allowing the user to clearly read what they're about to select. It might also make it more obvious that you have to scroll to highlight the item before tapping on it.
If text overrun is a problem, maybe we could add some sort of marquee affect?
-
I imagine for the vast majority of apps you probably don't want things to start moving around on the screen when text changes?
Having things move around on screen when the text changes was pretty much the entire original motivation behind my 'trui' library 🙂
I think for most apps the question is how well they can predict the maximum size of each element - if each piece of text has a predictable maximum size they can calculate the layout once and leave it fixed, but if there's a chance of the text overflowing its original bounds that risks breaking the layout. This can especially be an issue due to localization, if the localized strings end up being longer than the app developer was imagining.
No, you can have more than one in layout.
I stand corrected!
-
Since there appears to be some interest in lazy rendering, I've created pull request implementing it in the Layout library.
Just pass the third argument
{lazy: true}
to the layout constructor, and updates are as easy as:layout.time.label = require("locale").time(d,1); layout.update(); // Only needed if there's a chance that something moved layout.render();
Demo here: https://www.espruino.com/ide/?gist=cc5f26ad897ecaa531b698781d47964a#
Edit: I see my demo has the same issue as before. If it gives you any errors enable "Pretokenise code before upload" in the web ide settings.
-
You aren't dreaming, the Bangle.js will use dithering to emulate colors that it can't display. 0.5 values will result in a very fine checkerboard pattern.