Skip to content

Commit d13e611

Browse files
Settings: improve activity_class hunting
1 parent 7bd71eb commit d13e611

File tree

1 file changed

+8
-16
lines changed
  • internal_filesystem/builtin/apps/com.micropythonos.settings/assets

1 file changed

+8
-16
lines changed

internal_filesystem/builtin/apps/com.micropythonos.settings/assets/settings.py

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
import mpos.time
1010

1111
from setting_activity import SettingActivity
12-
13-
# Import IMU calibration activities
14-
from check_imu_calibration import CheckIMUCalibrationActivity
1512
from calibrate_imu import CalibrateIMUActivity
13+
from check_imu_calibration import CheckIMUCalibrationActivity
1614

1715
# Used to list and edit all settings:
1816
class SettingsActivity(Activity):
@@ -52,8 +50,8 @@ def __init__(self):
5250
# Advanced settings, alphabetically:
5351
#{"title": "Audio Output Device", "key": "audio_device", "value_label": None, "cont": None, "ui": "radiobuttons", "ui_options": [("Auto-detect", "auto"), ("I2S (Digital Audio)", "i2s"), ("Buzzer (PWM Tones)", "buzzer"), ("Both I2S and Buzzer", "both"), ("Disabled", "null")], "changed_callback": self.audio_device_changed},
5452
{"title": "Auto Start App", "key": "auto_start_app", "value_label": None, "cont": None, "ui": "radiobuttons", "ui_options": [(app.name, app.fullname) for app in PackageManager.get_app_list()]},
55-
{"title": "Check IMU Calibration", "key": "check_imu_calibration", "value_label": None, "cont": None, "ui": "activity", "activity_class": "CheckIMUCalibrationActivity"},
56-
{"title": "Calibrate IMU", "key": "calibrate_imu", "value_label": None, "cont": None, "ui": "activity", "activity_class": "CalibrateIMUActivity"},
53+
{"title": "Check IMU Calibration", "key": "check_imu_calibration", "value_label": None, "cont": None, "ui": "activity", "activity_class": CheckIMUCalibrationActivity},
54+
{"title": "Calibrate IMU", "key": "calibrate_imu", "value_label": None, "cont": None, "ui": "activity", "activity_class": CalibrateIMUActivity},
5755
# Expert settings, alphabetically
5856
{"title": "Restart to Bootloader", "key": "boot_mode", "dont_persist": True, "value_label": None, "cont": None, "ui": "radiobuttons", "ui_options": [("Normal", "normal"), ("Bootloader", "bootloader")], "changed_callback": self.reset_into_bootloader},
5957
{"title": "Format internal data partition", "key": "format_internal_data_partition", "dont_persist": True, "value_label": None, "cont": None, "ui": "radiobuttons", "ui_options": [("No, do not format", "no"), ("Yes, erase all settings, files and non-builtin apps", "yes")], "changed_callback": self.format_internal_data_partition},
@@ -116,19 +114,13 @@ def onResume(self, screen):
116114
def startSettingActivity(self, setting):
117115
ui_type = setting.get("ui")
118116

119-
# Handle activity-based settings (NEW)
117+
activity_class = SettingActivity
120118
if ui_type == "activity":
121-
activity_class_name = setting.get("activity_class")
122-
if activity_class_name == "CheckIMUCalibrationActivity":
123-
intent = Intent(activity_class=CheckIMUCalibrationActivity)
124-
self.startActivity(intent)
125-
elif activity_class_name == "CalibrateIMUActivity":
126-
intent = Intent(activity_class=CalibrateIMUActivity)
127-
self.startActivity(intent)
128-
return
119+
activity_class = setting.get("activity_class")
120+
if not activity_class:
121+
print("ERROR: Setting is defined as 'activity' ui without 'activity_class', aborting...")
129122

130-
# Handle traditional settings (existing code)
131-
intent = Intent(activity_class=SettingActivity)
123+
intent = Intent(activity_class=activity_class)
132124
intent.putExtra("setting", setting)
133125
intent.putExtra("prefs", self.prefs)
134126
self.startActivity(intent)

0 commit comments

Comments
 (0)