+ 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"
+
+ self["timer1"] = TimerList(self.getTimerList(timer[0]))
+ self.list = []
+ self.list2 = []
+ count = 0
+ for x in timer:
+ if count != 0:
+ self.list.append((_("Conflicting timer") + " " + str(count), x))
+ self.list2.append((timer[count], False))
+ count += 1
+
+ self["list"] = MenuList(self.list)
+ self["timer2"] = TimerList(self.list2)
+
+ self["key_red"] = Button("Edit")
+ self["key_green"] = Button("")
+ self["key_yellow"] = Button("Edit")