+ data = parseEvent(event, description = False)
+
+ self.addTimer(RecordTimerEntry(serviceref, checkOldTimers = True, dirname = config.movielist.last_timer_videodir.value, *data))
+
+ def addTimer(self, timer):
+ self.session.openWithCallback(self.finishedAdd, TimerEntry, timer)
+
+ def finishedEdit(self, answer):
+ print "finished edit"
+
+ if answer[0]:
+ print "Edited timer"
+ entry = answer[1]
+ timersanitycheck = TimerSanityCheck(self.session.nav.RecordTimer.timer_list, entry)
+ if not timersanitycheck.check():
+ simulTimerList = timersanitycheck.getSimulTimerList()
+ if (len(simulTimerList) == 2) and (simulTimerList[1].dontSave) and (simulTimerList[1].autoincrease):
+ simulTimerList[1].end = entry.begin - 30
+ self.session.nav.RecordTimer.timeChanged(simulTimerList[1])
+ self.session.nav.RecordTimer.timeChanged(entry)
+ else:
+ print "Sanity check failed"
+ self.session.openWithCallback(self.finishedEdit, TimerSanityConflict, timersanitycheck.getSimulTimerList())
+ else:
+ print "Sanity check passed"
+ if not timersanitycheck.doubleCheck():
+ self.session.nav.RecordTimer.timeChanged(entry)
+ self.fillTimerList()
+ self.updateState()
+ else:
+ print "Timeredit aborted"
+
+ def finishedAdd(self, answer):
+ print "finished add"
+ if answer[0]:
+ entry = answer[1]
+ simulTimerList = self.session.nav.RecordTimer.record(entry)
+ if simulTimerList is not None:
+ if (len(simulTimerList) == 2) and (simulTimerList[1].dontSave) and (simulTimerList[1].autoincrease):
+ simulTimerList[1].end = entry.begin - 30
+ self.session.nav.RecordTimer.timeChanged(simulTimerList[1])
+ self.session.nav.RecordTimer.record(entry)
+ else:
+ self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList)
+ self.fillTimerList()
+ self.updateState()
+ else:
+ print "Timeredit aborted"
+
+ def finishSanityCorrection(self, answer):
+ self.finishedAdd(answer)
+
+ def leave(self):
+ self.session.nav.RecordTimer.on_state_change.remove(self.onStateChange)
+ self.close()
+
+ def onStateChange(self, entry):
+ self.refill()
+ self.updateState()
+
+class TimerSanityConflict(Screen):
+ def __init__(self, session, timer):
+ Screen.__init__(self, session)
+ self.timer = timer
+ print "TimerSanityConflict"