)
self._addressbookStateMachine.set_state_strategy(
state_machine.StateMachine.STATE_IDLE,
- state_machine.ConstantStateStrategy(state_machine.to_milliseconds(hours=6))
+ state_machine.NopStateStrategy()
)
self._addressbookStateMachine.set_state_strategy(
state_machine.StateMachine.STATE_ACTIVE,
- state_machine.ConstantStateStrategy(state_machine.to_milliseconds(hours=2))
+ state_machine.ConstantStateStrategy(state_machine.to_seconds(hours=3))
)
self._voicemails = conversations.Conversations(self._backend.get_voicemails)
)
self._voicemailsStateMachine.set_state_strategy(
state_machine.StateMachine.STATE_IDLE,
- state_machine.ConstantStateStrategy(state_machine.to_milliseconds(minutes=60))
+ state_machine.ConstantStateStrategy(state_machine.to_seconds(hours=2))
)
self._voicemailsStateMachine.set_state_strategy(
state_machine.StateMachine.STATE_ACTIVE,
- state_machine.ConstantStateStrategy(state_machine.to_milliseconds(minutes=10))
+ state_machine.ConstantStateStrategy(state_machine.to_seconds(minutes=30))
)
self._voicemails.updateSignalHandler.register_sink(
self._voicemailsStateMachine.request_reset_timers
)
self._textsStateMachine.set_state_strategy(
state_machine.StateMachine.STATE_IDLE,
- state_machine.ConstantStateStrategy(state_machine.to_milliseconds(minutes=30))
+ state_machine.ConstantStateStrategy(state_machine.to_seconds(minutes=30))
)
self._textsStateMachine.set_state_strategy(
state_machine.StateMachine.STATE_ACTIVE,
state_machine.GeometricStateStrategy(
- state_machine.to_milliseconds(seconds=20),
- state_machine.to_milliseconds(milliseconds=500),
- state_machine.to_milliseconds(minutes=10),
+ state_machine.to_seconds(seconds=20),
+ state_machine.to_seconds(seconds=1),
+ state_machine.to_seconds(minutes=30),
)
)
self._texts.updateSignalHandler.register_sink(
raise KeyError("Unknown arg: %r" % kwd)
+def to_seconds(**kwd):
+ if "milliseconds" in kwd:
+ return kwd["milliseconds"] / 1000
+ elif "seconds" in kwd:
+ return kwd["seconds"]
+ elif "minutes" in kwd:
+ return kwd["minutes"] * 60
+ elif "hours" in kwd:
+ return kwd["hours"] * 60 * 60
+ raise KeyError("Unknown arg: %r" % kwd)
+
+
class NopStateStrategy(object):
def __init__(self):
def _request_reset_timers(self, *args):
self._reset_timers()
- def _set_initial_period(self):
- self._currentPeriod = self._INITIAL_ACTIVE_PERIOD / 2 # We will double it later
-
def _schedule_update(self):
assert self._timeoutId is None
self._strategy.increment_state()
nextTimeout = self._strategy.timeout
if nextTimeout != self.INFINITE_PERIOD:
- self._timeoutId = gobject.timeout_add(nextTimeout, self._on_timeout)
+ self._timeoutId = gobject_utils.timeout_add_seconds(nextTimeout, self._on_timeout)
_moduleLogger.info("%s Next update in %s ms" % (self._name, nextTimeout, ))
def _stop_update(self):
return new_function
return actual_decorator
+
+
+def _old_timeout_add_seconds(timeout, callback):
+ return gobject.timeout_add(timeout * 1000, callback)
+
+
+def _timeout_add_seconds(timeout, callback):
+ return gobject.timeout_add_seconds(timeout, callback)
+
+
+try:
+ gobject.timeout_add_seconds
+ timeout_add_seconds = _timeout_add_seconds
+except AttributeError:
+ timeout_add_seconds = _old_timeout_add_seconds