Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improves UX for charging indicator on Quick Settings #2257

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

SteveAmor
Copy link
Contributor

@SteveAmor SteveAmor commented Feb 19, 2025

The current Quick Settings lv_task period is 5000 msecs.
With a screen timeout of 5 seconds, you only just see the charge icon appear in the status bar at the top of the watchface.
This PR reduces the period to 100 msecs so as soon as you put it on the charger, the charge icon appears. And when you take it off the charger, it quickly disappears.
There are a couple of other screens which this charging UX is poor (it's just not "snappy"):
Tile.cpp
BatteryInfo.cpp

Copy link

Build size and comparison to main:

Section Size Difference
text 373024B 0B
data 948B 0B
bss 22536B 0B

Run in InfiniEmu

@mark9064
Copy link
Member

mark9064 commented Feb 23, 2025

If you're feeling up to it, I think a review of every screen not using LV_DISP_DEF_REFR_PERIOD would be good step forward in terms of improving responsiveness. There's probably a reason for the slow refreshes in some places - maybe performance of other things on the screen, maybe designs that don't use DirtyValue and therefore redraw things every frame, maybe bugs which have long been fixed, who knows! In most cases I think updating every refresh should be fine as there should be no drawing to do if nothing has changed (but some refactoring may be needed to allow this e.g if DirtyValue needs to be added)

@SteveAmor
Copy link
Contributor Author

SteveAmor commented Feb 23, 2025

I've been getting my head around the drawing of each screen and the lv_task callbacks and will try to have a further look at a general review.
There appears to be an intention in doc/code/Apps.md but no code, that I can see, uses Refresh() as the callback.

@mark9064
Copy link
Member

Sounds good, feel free to ask any questions (here or the pinetime-dev chat channel). I'm happy to explain general things too if an overview on a part would be useful

@mark9064 mark9064 added the UI/UX User interface/User experience label Feb 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
UI/UX User interface/User experience
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants