Time navigation issues in Graphical EPG

Issue #445 resolved
prl created an issue

Because the affected code is shared with the InfoBar Graphical EPG, these bugs also apply to that EPG, and in the bug report "Graphical EPG" can be read as "Graphical EPG and/or InfoBar Graphical EPG as appropriate).

Time navigation that combines both day-at-a-time paging using CH+/- and page-at-a-time paging using 4/6 or by scrolling over the edge of the page using LEFT/RIGHT can leave the EPG in a state where CH- does not page back.

The problems are due to CH- not being able to scroll back if it is closer to the start of the EPG than 24 hours, and the fact that paging through the EPG with CH+/- uses a different mechanism than paging through it with 4/6/LEFT/RIGHT.

I have a fix for this in test.

Replication steps

  1. Enter the Graphical EPG and page 1 day forward using CH+, then page back using 4 to a page start time time on the new day that is earlier in the day than the start page of the EPG (e.g. if the first page of the EPG is Monday @ 18:00 and the page length is 180 min, use CH+ to go to Tuesday @ 18:00, then page back using 4 to 15:00. Now using CH- will not return to the first screen.

  2. Assuming the same setup as 1, enter the EPG (fresh instance) and page 2 days forward using 4 (eight presses), say from Monday @ 18:00 to Wednesday @ 1800. CH- cannot be used to navigate back in time.

Comments (2)

  1. Peter Urbanec

    Fix bug #445: Time navigation issues in Graphical EPG

    [EpgList]

    Replace the combined use of self.time_base and self.offs to control time navigation (as self.time_base + self.offs * self.time_epoch * 60) with the use of only self.time_base. This avoids the problems in the bug report where navigation can get stuck.

    Replace attribute self.offs with a property with a set function that does nothing and a get function that always returns 0, for backward compatibility of a sort.

    Retain self.resetOffset() as a method that does nothing.

    [EpgSelection]

    Remove references to self['list'].resetOffset().

    → <<cset 4ba134caf90b>>

  2. Log in to comment