orontee / taranis

Local weather data on your PocketBook e-book reader.
GNU General Public License v3.0
24 stars 0 forks source link

Hourly forecast should not be limited to 24 hours #62

Closed orontee closed 1 year ago

orontee commented 1 year ago

Context

On Friday evening or Saturday morning, I often organize the week-end cycling activities where hourly forecasts for Sunday matters. Openweather API offers hourly forecasts for 48 hours.

But the hourly forecast view of Taranis is currently limited to 24 hours. This limit is arbitrary: https://github.com/orontee/taranis/blob/v1.5.0-rc0/src/service.h#L48

Proposition

Remarks

The number of "screens" of the hourly forecast view will increase from 3 to 6 (since the number of visible bars is hard-coded, equal to 8). As a consequence, the days of the displayed data may become more ambiguous than it already is. Thus one must display those days and a convenient way to switch to the daily forecast view.

Details on how to display the day

Add a top row to the daily forecast frame. This row may display two labels on its left and right ends. The left label will display the date of the day corresponding to the first bar and the right label will display the date of the day corresponding to the last bar. When both days are equal, the right label is hidden. Attempt is made to display "Today" or "Tomorrow" in place of dates.

neilswann80 commented 1 year ago

Would it be possible to:

orontee commented 1 year ago

Would it be possible to:

  • Double press skips between the start of the two 24 hour periods, today/tomorrow

Good idea! But AFAICS the SDK doesn't provide any way to handle double press. So, I may try to implement this but in a second time and a dedicated issue since it may imply a rewrite of parts of the application and it's not required for the feature to be released.

  • Long press switches to Daily view

Another good idea 🤩 I saw there's a EVT_KEYREPEAT event that triggers when a key is pressed for long time; It should be easy to support this right now.

neilswann80 commented 1 year ago

This hints at something to do with a double-press...

enum globalaction_on_event_e {
    GLOBALACTION_ON_KEYPRESS = 0, //masked by mpc->gka0
    GLOBALACTION_ON_KEYHOLD, //masked by mpc->gka1
    GLOBALACTION_ON_DOUBLECLICK, //masked by mpc->gka2
};
orontee commented 1 year ago

Available from https://github.com/orontee/taranis/releases/tag/v1.5.0-rc1

Translations will arrive later (after #61 is merged into main branch).