def action_previous(app) -> None: """Show the previous email message by finding the next lower ID from the list of envelope IDs.""" try: if app.reload_needed: app.action_fetch_list() ids = sorted( (int(envelope["id"]) for envelope in app.all_envelopes), reverse=True ) for envelope_id in ids: if envelope_id < int(app.current_message_id): app.current_message_id = envelope_id app.show_message(app.current_message_id) return app.show_status("No older messages found.", severity="warning") app.action_oldest() else: app.show_status("Failed to fetch envelope list.", severity="error") except Exception as e: app.show_status(f"Error: {e}", severity="error")