There was a dubious line that I never felt good about and today
I found out why. By flipping every canvas to drawable before doing
the intersection computation we also throw away the defacement state,
so previously defaced canvases would lose their status bit, causing
thrashing of the canvases anytime there is a re-computation of
the canvas ordering.
This fix caches if a canvas was already defaced, and if it turns out
that an on-screen canvas should not be drawable but was already
defaced, the setting is re-applied, preventing thrashing.
also defer the preference thread from loading until after the
PDDB mount thread is started -- doesn't make sense to start it
any earlier than that, since it depends on the PDDB being mounted.
This commit draws a Wi-Fi signal bar with 5 bars (lowest to highest signal), to the right of SSID name.
Signal power is calculated from a lowest of -90dBm to a maximum of -30dBm, by increments of 13dBm.
- instructions for BBRAM flow (refers to wiki)
- consent for efuse flow
- fix a blocking issue on backup prep (minor problem, just gives
users more time to contemplate without a panic)
this fixes a problem where backups fail when autobacklight is
enabled, because autobacklight is constantly querying the PDDB
for the length of the autobacklight timeout, even after the
PDDB is unmounted.
even if persist is set, if the field has been edited, don't
restore the default text. otherwise, the default text re-appears
if you backspace to an empty string.
this adds a method field_placeholder_persist() to the
text entry box builder. When this is used (instead of
field()), the placeholder, if provided, is treated as
"persistent" data, that is, when you press a key, it is
not automatically cleared, but instead, the user starts
editing the existing data.
this now refers the keyboard preference setting to the
correct, specialized location because it is the only parameter
that must strictly be available before the system is secured.
previously a busy-wait loop was used to poll the PDDB,
this makes it a blocking loop so the wait is more efficient.
also, allow the autobacklight to turn on before the PDDB
is mounted (so you can type your unlock PIN in the dark).