Improve error handling

This commit is contained in:
Thomas Farstrike
2025-06-03 15:00:35 +02:00
parent d0e51305a1
commit 3cf5d7f11a
3 changed files with 27 additions and 10 deletions
@@ -143,6 +143,7 @@ class Camera(Activity):
if not result:
self.status_label.set_text(status_label_text_searching)
else:
self.stop_qr_decoding()
result = remove_bom(result)
result = print_qr_buffer(result)
@@ -7,6 +7,7 @@ from captureqr import Camera
class MainActivity(Activity):
def __init__(self):
super().__init__()
self.wallet = None
self.receive_qr_data = None
self.destination = None
@@ -114,6 +115,7 @@ class MainActivity(Activity):
# Used to list and edit all settings:
class SettingsActivity(Activity):
def __init__(self):
super().__init__()
self.prefs = mpos.config.SharedPreferences("com.lightningpiggy.displaywallet")
self.settings = [
{"title": "Wallet Type", "key": "wallet_type", "value_label": None, "cont": None},
@@ -344,6 +346,8 @@ class SettingActivity(Activity):
self.finish()
class FullscreenQR(Activity):
# No __init__() so super.__init__() will be called automatically
def onCreate(self):
receive_qr_data = self.getIntent().extras.get("receive_qr_data")
qr_screen = lv.obj()
+22 -10
View File
@@ -228,9 +228,6 @@ class Activity:
self.result = None
self._result_callback = None
def getIntent(self):
return self.intent
def onCreate(self):
pass
def onStart(self, screen):
@@ -247,18 +244,33 @@ class Activity:
def setContentView(self, screen):
mpos.ui.setContentView(self, screen)
def startActivity(self, intent):
ActivityNavigator.startActivity(intent)
def initError(self, e):
print(f"WARNING: You might have inherited from Activity with a custom __init__() without calling super().__init__(). Got AttributeError: {e}")
def getIntent(self):
try:
return self.intent
except AttributeError as e:
self.initError(e)
def setResult(self, result_code, data=None):
"""Set the result to be returned when the activity finishes."""
self.result = {"result_code": result_code, "data": data or {}}
try:
self.result = {"result_code": result_code, "data": data or {}}
except AttributeError as e:
self.initError(e)
def finish(self):
mpos.ui.back_screen()
if self._result_callback and self.result:
self._result_callback(self.result)
self._result_callback = None # Clean up
def startActivity(self, intent):
ActivityNavigator.startActivity(intent)
try:
if self._result_callback and self.result:
self._result_callback(self.result)
self._result_callback = None # Clean up
except AttributeError as e:
self.initError(e)
class Intent:
def __init__(self, activity_class=None, action=None, data=None, extras=None):