Disabled repeat timers can be spontaneously re-enabled in "done!" state

Issue #346 resolved
prl created an issue

If a repeat timer is disabled, then the next time that another recording is started or finished after the nominal end time of the disabled repeat timer, the repeat timer is re-enabled in "done" state. The re-enabling can also be triggered by a GUI restart after the nominal end time of the disabled timer.

After the repeat timer enters this state (repeated, enabled, done), it becomes susceptible to completed timer cleanup, both manual and automatic.

The issue is due to a bug in timer.TimerEntry.shouldSkip() where disabled timers are re-enabled if their current nominal end time has passed. They should not be re-enabled here if they are repeated timers.

Reproduction steps

At a time when there is no recording activity current or upcoming, create a short repeated recording timer for a few minutes in the future, then in the TIMER screen, disable it.

In this state BLUE Cleanup in the TIMER screen will have no effect on the timer.

Before the repeat timer would have been due to start, create another recording timer (a "once" timer will do) to either end or start after the nominal end time of the disabled repeat timer.

On the first state transition of the recording timer after the nominal end time of the disabled repeat timer, the disabled repeat timer will move to state (repeated, enabled, done).

In this state BLUE Cleanup in the TIMER screen will delete the timer. So will the automatic cleanup controlled by MENU>TV>Recording settings>Remove completed timers after...

Comments (4)

  1. Peter Urbanec

    Fix Bug #346 - Disabled repeat timers can be spontaneously re-enabled in "done!" state

    Prevent disabled timer from being re-enabled for completion after its most recent end time if the timer is repeated.

    → <<cset 5eeb5fcf6fb8>>

  2. Peter Urbanec

    Fix Bug #346 - Tidy up comments

    Improve the readability of comments, make some clearer and change a few from german to English.

    Did all the timer modules, not just [timer], because they all had similar issues.

    → <<cset ded8d19b6489>>

  3. Log in to comment