Skip to content

Commit 80d451a

Browse files
Add handling mount failures
1 parent 2637c91 commit 80d451a

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

docs/frameworks/sdcard-manager.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,46 @@ class RetroLauncher(Activity):
221221

222222
([View on GitHub](https://github.com/MicroPythonOS/MicroPythonOS/blob/main/internal_filesystem/apps/com.micropythonos.doom_launcher/retrogo_launcher.py#L122))
223223

224+
### Handling Mount Failures
225+
226+
When `mount()` returns `False`, you may want to ask the user before attempting a destructive format:
227+
228+
```python
229+
from mpos import SDCardManager
230+
import lvgl as lv
231+
232+
233+
def ensure_sd_mounted():
234+
"""Mount SD card, with confirmation dialog for format on failure."""
235+
if SDCardManager.mount():
236+
return True
237+
238+
mbox = lv.msgbox()
239+
mbox.add_title("SD Card Error")
240+
mbox.add_text("Could not mount SD card.\n\nFormat it now?\nAll data will be lost.")
241+
242+
no_btn = mbox.add_footer_button("No")
243+
no_btn.add_event_cb(lambda e: mbox.close(), lv.EVENT.CLICKED, None)
244+
245+
def _on_format_yes(e):
246+
mbox.close()
247+
if SDCardManager.mount(format=True):
248+
ok = lv.msgbox()
249+
ok.add_text("SD card formatted and mounted.")
250+
close = ok.add_footer_button("OK")
251+
close.add_event_cb(lambda e2: ok.close(), lv.EVENT.CLICKED, None)
252+
else:
253+
err = lv.msgbox()
254+
err.add_text("Format failed. Check the SD card.")
255+
close = err.add_footer_button("OK")
256+
close.add_event_cb(lambda e2: err.close(), lv.EVENT.CLICKED, None)
257+
258+
yes_btn = mbox.add_footer_button("Yes")
259+
yes_btn.add_event_cb(_on_format_yes, lv.EVENT.CLICKED, None)
260+
261+
return False
262+
```
263+
224264
### SPI Board Configuration
225265

226266
```python

0 commit comments

Comments
 (0)