rework ignore screen detection; detect user of current TTY

This commit is contained in:
chrys
2017-02-22 23:48:37 +01:00
parent ef006fb423
commit abb3823606
9 changed files with 135 additions and 52 deletions

View File

@@ -9,4 +9,6 @@ from core import debug
generalInformation = {
'running': True,
'tutorialMode': False,
'currUser':'',
'prevUser':'',
}

View File

@@ -32,5 +32,6 @@ screenData = {
'newContentAttrib': b'',
'newTTY':'0',
'newApplication': '',
'lastScreenUpdate': time.time()
'lastScreenUpdate': time.time(),
'autoIgnoreScreens':[],
}

View File

@@ -9,22 +9,22 @@ import time
class screenManager():
def __init__(self):
self.autoIgnoreScreens = []
pass
def initialize(self, environment):
self.env = environment
self.env['runtime']['settingsManager'].loadDriver(\
self.env['runtime']['settingsManager'].getSetting('screen', 'driver'), 'screenDriver')
self.updateAutoIgnoreScreens()
self.env['runtime']['screenDriver'].getCurrScreen()
self.env['runtime']['screenDriver'].getSessionInformation()
def shutdown(self):
self.env['runtime']['settingsManager'].shutdownDriver('screenDriver')
def update(self, trigger='onUpdate'):
self.env['runtime']['screenDriver'].getCurrScreen()
self.env['runtime']['screenDriver'].getSessionInformation()
self.env['screenData']['oldApplication'] = self.env['screenData']['newApplication']
if self.isScreenChange():
self.updateAutoIgnoreScreens()
if self.isScreenChange():
self.changeBrailleScreen()
if not self.isSuspendingScreen(self.env['screenData']['newTTY']):
self.env['runtime']['screenDriver'].update(trigger)
@@ -36,12 +36,14 @@ class screenManager():
def isSuspendingScreen(self, screen = None):
if screen == None:
screen = self.env['screenData']['newTTY']
return ((screen in \
self.env['runtime']['settingsManager'].getSetting('screen', 'suspendingScreen').split(',')) or
(screen in self.autoIgnoreScreens))
def updateAutoIgnoreScreens(self):
ignoreScreens = []
fixIgnoreScreens = self.env['runtime']['settingsManager'].getSetting('screen', 'suspendingScreen')
if fixIgnoreScreens != '':
ignoreScreens.append(fixIgnoreScreens.split(','))
if self.env['runtime']['settingsManager'].getSettingAsBool('screen', 'autodetectSuspendingScreen'):
self.autoIgnoreScreens = self.env['runtime']['screenDriver'].getIgnoreScreens()
ignoreScreens.append(self.env['screenData']['autoIgnoreScreens'])
return (screen in ignoreScreens)
def isScreenChange(self):
if not self.env['screenData']['oldTTY']:
return False