Skip to content

Conversation

@tituscmd
Copy link
Contributor

@tituscmd tituscmd commented Jul 26, 2025

Hey everybody,

Since creating PR #2292 and introducing a small little redesign of the music app, I've had some more time on my hands and finally came around to creating a better version of it.

I've moved the artist and track name up a bit to add a new progress bar that shows the progress of the song you're listening to, with the time that has passed shown on the left and the time remaining shown on the right.
Sadly, I've had to remove (comment out) the disc animation in the top right because of space issues. If anyone is especially fond of the disc I'm sure space can be made to fit it back in. It is definitely not a final decision by me, hence why it's only commented out and not removed altogether.
But now that I've temporarily removed the disc animation, the top of the screen seemed quite empty to me. And after some thinking and digging through the code, I stumbled upon these lines of code in the Music.cpp:

294 - // Let's assume it starts playing instantly
295 - // TODO: In the future should check for BT connection for better UX

And so I thought "why not do that?" and I added an indicator text at the top telling you if you are connected via bluetooth. Please share your opinion on this.

Finally, here are some pictures of it all:
WhatsApp Image 2025-12-28 at 01 30 44
Screenshot 2025-12-28 at 01-34-08 InfiniEmu

@github-actions
Copy link

github-actions bot commented Jul 26, 2025

Build size and comparison to main:

Section Size Difference
text 383080B -260B
data 944B 0B
bss 22632B 0B

Run in InfiniEmu

@tituscmd
Copy link
Contributor Author

Ooh, what if the progress bar was blue?
image

I personally like the gray and don't see any big improvement in terms of readability with a blue one.

@LinuxinaBit
Copy link

LinuxinaBit commented Sep 13, 2025 via email

@0x0000ff
Copy link

0x0000ff commented Oct 6, 2025

I'm of the belief that track info isn't needed on a watch or should be at least be minimized to a progress bar. The buttons could them be laid out in a way that would make them easier to press.

Just my 2 cents.

@LinuxinaBit
Copy link

LinuxinaBit commented Oct 6, 2025

@0x0000ff
Something like #558 is always an option, to achieve a similar effect to what you're talking about without removing UI elements that other people (like me!) want.

That being said, I think it's more important at this point to get the UI merged so people can actually start using it when the next version of InfiniTime is released... More changes can always be made in the future.

@tituscmd
Copy link
Contributor Author

I'm of the belief that track info isn't needed on a watch or should be at least be minimized to a progress bar. The buttons could them be laid out in a way that would make them easier to press.

Just my 2 cents.

Not quite sure what you mean by this. Care to elaborate?

@tituscmd
Copy link
Contributor Author

@0x0000ff

Something like #558 is always an option, to achieve a similar effect to what you're talking about without removing UI elements that other people (like me!) want.

That being said, I think it's more important at this point to get the UI merged so people can actually start using it when the next version of InfiniTime is released... More changes can always be made in the future.

Agreed. Should be all good to merge from my side I think.

Copy link
Member

@mark9064 mark9064 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good :)

Haven't tested locally or ran clang-tidy yet

@LinuxinaBit LinuxinaBit mentioned this pull request Nov 4, 2025
1 task
Copy link
Member

@mark9064 mark9064 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty much there I think :)

@mark9064
Copy link
Member

One other thing, could you edit the first message to show screenshots of the latest version? Just makes it a bit easier for anyone looking at the PR for the first time

@tituscmd
Copy link
Contributor Author

I made the button labels a bit more gray when the buttons are disabled, so it’s easier to tell at a glance what’s inactive.
I also cleaned up SetConnectedUI and SetDisconnectedUI by using arrays for the buttons and labels, since repeating the same line over and over was getting annoying.

I updated the first message of this PR as well so it matches the current UI, making it clearer for anyone checking it out for the first time - thanks for pointing that out @mark9064 :D

@mark9064
Copy link
Member

out.patch

Had a poke around, few suggestions here (mainly to avoid storing copies of all the buttons/labels again). I think the only substantial code change required is to fix the the progress bar narrowing issue, lv_bar_set_range takes int16s and currently the code assumes it can handle int32s

You can apply the changes locally with git apply <path/to/patchfile>

@tituscmd
Copy link
Contributor Author

I think the only substantial code change required is to fix the the progress bar narrowing issue, lv_bar_set_range takes int16s and currently the code assumes it can handle int32s

Totally didn't think of that, good catch.
I've clamped both the range and value of the bar to the max value of int16_t. With the latest commit, any overflow issues should be solved 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Enhancement to an existing app/feature UI/UX User interface/User experience

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants