1
1
# File: services.py
2
- # Version: 4
2
+ # Version: 5
3
3
# API version: 2
4
4
# Description: Background services for SHA2017 badge
5
5
# License: MIT
@@ -111,10 +111,7 @@ def setup(drawCb=None):
111
111
print ("[SERVICES] Loop requested but not defined in service " + app )
112
112
113
113
if drawEnabled and drawCb :
114
- try :
115
- drawCallbacks .append (srv .draw )
116
- except :
117
- print ("[SERVICES] Draw requested but not defined in service " + app )
114
+ drawCallbacks .append (srv )
118
115
119
116
# Add the script to the global service list
120
117
services .append (srv )
@@ -137,9 +134,9 @@ def draw_task():
137
134
deleted = []
138
135
139
136
for i in range (0 , len (drawCallbacks )):
140
- cb = drawCallbacks [i ]
141
137
rqi = 0
142
138
try :
139
+ cb = drawCallbacks [i ].draw
143
140
[rqi , space_used ] = cb (y )
144
141
y = y - space_used
145
142
except BaseException as e :
@@ -155,6 +152,7 @@ def draw_task():
155
152
deleted .append (cb )
156
153
157
154
for i in range (0 ,len (deleted )):
155
+ dcb = deleted [i ]
158
156
print ("[DEBUG] Deleted draw callback: " ,dcb )
159
157
drawCallbacks = list (dcb for dcb in drawCallbacks if dcb != deleted [i ])
160
158
@@ -177,12 +175,19 @@ def draw_task():
177
175
drawCallback (True ) # Complete draw
178
176
return retVal
179
177
180
- def force_draw ():
178
+ def force_draw (goingToSleep = False ):
181
179
global drawCallbacks
182
180
if len (drawCallbacks )> 0 :
183
181
y = ugfx .height ()
184
- for cb in drawCallbacks :
182
+ for srv in drawCallbacks :
185
183
try :
184
+ if not goingToSleep :
185
+ cb = srv .draw
186
+ else :
187
+ try :
188
+ cb = srv .draw_going_to_sleep
189
+ except :
190
+ cb = srv .draw
186
191
[rqi , space_used ] = cb (y )
187
192
y = y - space_used
188
193
except BaseException as e :
0 commit comments