You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
Improve error handling
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user