Skip to content

Commit 3cf5d7f

Browse files
Improve error handling
1 parent d0e5130 commit 3cf5d7f

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/captureqr.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ def qrdecode_one(self):
143143
if not result:
144144
self.status_label.set_text(status_label_text_searching)
145145
else:
146+
146147
self.stop_qr_decoding()
147148
result = remove_bom(result)
148149
result = print_qr_buffer(result)

internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
class MainActivity(Activity):
88

99
def __init__(self):
10+
super().__init__()
1011
self.wallet = None
1112
self.receive_qr_data = None
1213
self.destination = None
@@ -114,6 +115,7 @@ def qr_clicked_cb(self, event):
114115
# Used to list and edit all settings:
115116
class SettingsActivity(Activity):
116117
def __init__(self):
118+
super().__init__()
117119
self.prefs = mpos.config.SharedPreferences("com.lightningpiggy.displaywallet")
118120
self.settings = [
119121
{"title": "Wallet Type", "key": "wallet_type", "value_label": None, "cont": None},
@@ -344,6 +346,8 @@ def save_setting(self, setting):
344346
self.finish()
345347

346348
class FullscreenQR(Activity):
349+
# No __init__() so super.__init__() will be called automatically
350+
347351
def onCreate(self):
348352
receive_qr_data = self.getIntent().extras.get("receive_qr_data")
349353
qr_screen = lv.obj()

internal_filesystem/lib/mpos/apps.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,6 @@ def __init__(self):
228228
self.result = None
229229
self._result_callback = None
230230

231-
def getIntent(self):
232-
return self.intent
233-
234231
def onCreate(self):
235232
pass
236233
def onStart(self, screen):
@@ -247,18 +244,33 @@ def onDestroy(self, screen):
247244
def setContentView(self, screen):
248245
mpos.ui.setContentView(self, screen)
249246

247+
def startActivity(self, intent):
248+
ActivityNavigator.startActivity(intent)
249+
250+
def initError(self, e):
251+
print(f"WARNING: You might have inherited from Activity with a custom __init__() without calling super().__init__(). Got AttributeError: {e}")
252+
253+
def getIntent(self):
254+
try:
255+
return self.intent
256+
except AttributeError as e:
257+
self.initError(e)
258+
250259
def setResult(self, result_code, data=None):
251260
"""Set the result to be returned when the activity finishes."""
252-
self.result = {"result_code": result_code, "data": data or {}}
261+
try:
262+
self.result = {"result_code": result_code, "data": data or {}}
263+
except AttributeError as e:
264+
self.initError(e)
253265

254266
def finish(self):
255267
mpos.ui.back_screen()
256-
if self._result_callback and self.result:
257-
self._result_callback(self.result)
258-
self._result_callback = None # Clean up
259-
260-
def startActivity(self, intent):
261-
ActivityNavigator.startActivity(intent)
268+
try:
269+
if self._result_callback and self.result:
270+
self._result_callback(self.result)
271+
self._result_callback = None # Clean up
272+
except AttributeError as e:
273+
self.initError(e)
262274

263275
class Intent:
264276
def __init__(self, activity_class=None, action=None, data=None, extras=None):

0 commit comments

Comments
 (0)