2017-08-16 13:02:03 +00:00
|
|
|
from trezor import loop
|
2016-09-21 12:21:18 +00:00
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
started = []
|
|
|
|
default = None
|
|
|
|
default_handler = None
|
2018-02-19 15:50:58 +00:00
|
|
|
layouts = []
|
2016-09-21 12:21:18 +00:00
|
|
|
|
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
def onstart(w):
|
|
|
|
started.append(w)
|
2016-09-21 12:21:18 +00:00
|
|
|
|
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
def onclose(w):
|
|
|
|
started.remove(w)
|
2018-02-19 15:50:58 +00:00
|
|
|
if not started and not layouts and default_handler:
|
2017-08-16 13:02:03 +00:00
|
|
|
startdefault(default_handler)
|
|
|
|
|
|
|
|
|
|
|
|
def closedefault():
|
|
|
|
global default
|
|
|
|
|
|
|
|
if default:
|
2017-10-10 13:32:43 +00:00
|
|
|
loop.close(default)
|
2017-08-16 13:02:03 +00:00
|
|
|
default = None
|
2016-09-21 12:21:18 +00:00
|
|
|
|
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
def startdefault(handler):
|
|
|
|
global default
|
|
|
|
global default_handler
|
2016-09-21 12:21:18 +00:00
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
if not default:
|
|
|
|
default_handler = handler
|
|
|
|
default = handler()
|
2017-09-16 13:00:31 +00:00
|
|
|
loop.schedule(default)
|
2018-02-19 15:50:58 +00:00
|
|
|
|
|
|
|
|
2018-03-01 04:02:11 +00:00
|
|
|
def restartdefault():
|
|
|
|
global default_handler
|
|
|
|
d = default_handler
|
|
|
|
closedefault()
|
|
|
|
startdefault(d)
|
|
|
|
|
|
|
|
|
2018-02-19 15:50:58 +00:00
|
|
|
def onlayoutstart(l):
|
|
|
|
closedefault()
|
|
|
|
layouts.append(l)
|
|
|
|
|
|
|
|
|
|
|
|
def onlayoutclose(l):
|
|
|
|
layouts.remove(l)
|