InfiniTimeOrg / InfiniTime

Firmware for Pinetime smartwatch written in C++ and based on FreeRTOS
GNU General Public License v3.0
2.64k stars 902 forks source link

watchface: SlowTime #1906

Open AzureOrange404 opened 7 months ago

AzureOrange404 commented 7 months ago

Proposal for a new watch face:

I created a 24 hour clock analog watchface based on WatchFaceAnalog. It displays a full 24 hour day and only features an hour and minute hand. Battery, date etc. are still included as in original Analog watchface.

Tested in InfiniSim, but never loaded onto PineTime.

github-actions[bot] commented 7 months ago

Build checks have not completed. Possible reasons for this are:

  1. The checks need to be approved by a maintainer
  2. The branch has conflicts
  3. The firmware build has failed
SteveAmor commented 7 months ago

Hi, this looks like a great idea. As space will always be an issue, would it be possible to extend the existing analogue watch face based on the 12/24 hour toggle (which I see can be toggled when you have the analogue watch face selected but it's not used)?

mark9064 commented 7 months ago

I like the thinking but I'm not quite sure that would work how people expect, at least for me if I set 24h time I'd expect to have 24h when displayed digitally (be it other apps / menus or watchfaces) and 12h on an analogue clock as usual. Having to have 12h time on menus in order to have a normal analogue clock would annoy me - and there's also the change of the seconds hand disappearing

AzureOrange404 commented 7 months ago

I like the thinking but I'm not quite sure that would work how people expect, at least for me if I set 24h time I'd expect to have 24h when displayed digitally (be it other apps / menus or watchfaces) and 12h on an analogue clock as usual. Having to have 12h time on menus in order to have a normal analogue clock would annoy me - and there's also the change of the seconds hand disappearing

Yes I see the struggle with this approach. Would annoy me too, so I don't think that's an option.

PineTimeStyle makes use of settings, maybe a settings tile could be included to the Analog watchface to switch between 12h and 24h style?

Edit: Could space be saved by having a picture as the clock face? Edit 2: Or maybe using a canvas, I can reduce the line count in the code. I just have to look into how these work as they don't seem to be used in any of the other code.

AzureOrange404 commented 7 months ago

@SteveAmor @mark9064 I tried to integrate my SlowTime Watchface into the standard Analog Watchface by using the same settings mechanics as in the PineTime Watchface. Like this digital clocks in other places are not affected by the change from 12h to 24h clock.

12 hour clock 24 hour clock settings menu

Also the second hand can be toggled in both the 12h and the 24h view.

12 hour clock, no seconds 24 hour clock, no seconds

mark9064 commented 7 months ago

Testing on hardware now. Seems to work exactly as intended :) What do the cyan markers on 24h mode represent? If it's meant to be every other hour I find it strange that it's so much bolder than the even number hour markers. Maybe cyan ticks along the border with the same size as the white ticks would work, or even just more white ticks Remember to bump the settings version as well

AzureOrange404 commented 7 months ago

Testing on hardware now. Seems to work exactly as intended :)

Great, thank you :)

What do the cyan markers on 24h mode represent? If it's meant to be every other hour I find it strange that it's so much bolder than the even number hour markers. Maybe cyan ticks along the border with the same size as the white ticks would work, or even just more white ticks

They are meant to be the odd number markers, I had numbers for all the even hours, but it was to bulky. The bold white markers are needed to divide minutes every fifth. If I make the cyan ticks the same, they end up between white ticks, I'm not shure if this isn't too noisy on the eye. But I could make them shorter and maybe add them for every hour (although this would mean more code as 12 and 24 needs to be skipped).

Remember to bump the settings version as well

I'll look into it.

AzureOrange404 commented 7 months ago

@mark9064 What do you think about this? 24hour-marks-every-hour or 24hour-marks-every-hour-gapped

Is it weard that the outer circle (minutes) is white and the inner (hours) is cyan?

mark9064 commented 7 months ago

https://github.com/InfiniTimeOrg/InfiniTime/blob/f3d4f04827fcfe65d6647271d84590d76ce2115b/src/components/settings/Settings.h#L277 this is the line to change for settings version. As you're adding a new field to the saved settings, it becomes incompatible layout-wise with anyone's previously saved settings; this is why the version needs changing.

I definitely prefer the revised hour markers, but I don't actually daily drive the analogue watch face so I feel like my opinion isn't worth listening to too much :P

Edit: Just saw your edit. They're pretty even to me, but I slightly prefer the gapless variant. But as before I'm not the one to listen to