Built-in Applications
Relevant source files
The following files were used as context for generating this wiki page:
Built-in applications in FlxOS provide essential system functionality and user utilities integrated directly into the desktop environment. These applications are managed by a centralized App Manager and interact with the core system via a Backend Service Layer, ensuring a decoupled architecture between the UI and system logic.
The suite of built-in applications covers system configuration (Settings), data management (Files), and diagnostics (System Info). These applications utilize the LVGL 9 graphics library for UI rendering and are subject to lifecycle management, supporting states such as start, stop, resume, and pause.
Sources: ROADMAP.md:104-106, ROADMAP.md:46
Application Management and Lifecycle
Applications in FlxOS follow a standard lifecycle managed by the AppManager. This system handles the transition between different application states to optimize resource usage on the ESP32 hardware.
The diagram above illustrates the typical lifecycle transitions an application undergoes during operation.
Sources: ROADMAP.md:38, main/core/apps/system_info/SystemInfoApp.cpp:25-50
Core Application Attributes
| Attribute | Description | Source |
|---|---|---|
| Package Name | Unique identifier (e.g., com.os.files) | FilesApp.cpp:46 |
| App Name | Display name shown in the UI | FilesApp.cpp:47 |
| Icon | LVGL symbol or image resource | FilesApp.cpp:48 |
| Watchdog | Integrated heartbeat for task monitoring | FilesApp.cpp:89-103 |
Files Application
The Files App is a full-featured file browser supporting internal flash (FAT) and SD card storage. It provides a graphical interface for file system operations, utilizing the FileSystemService for backend tasks.
Features and Operations
- Navigation: Supports directory traversal with a history stack and "Home" navigation to
A:/. - File Manipulation: Includes Copy, Cut, Rename, and Delete operations.
- Clipboard Integration: Utilizes a
ClipboardManagerto facilitate move and copy actions between directories. - Progress Feedback: Implements modal progress dialogs with bars for long-running operations like copying or deleting large directories.
Sources: main/core/apps/files/FilesApp.cpp:52-87, main/core/apps/files/FilesApp.cpp:210-244
This flowchart details the logic flow when a user interacts with the file list or action menus.
Sources: main/core/apps/files/FilesApp.cpp:210-310
System Info Application
The System Info app provides real-time diagnostics and hardware statistics. It is organized into a tabbed interface to separate different system metrics.
Diagnostic Categories
| Tab | Information Provided | Key Source |
|---|---|---|
| System | FlxOS version, CPU load per core, chip model, display resolution, and uptime. | SystemInfoApp.cpp:84-130 |
| Memory | Total/Used Heap and PSRAM usage with visual bars. | SystemInfoApp.cpp:132-171 |
| Network | WiFi connection status, SSID, IP address, MAC address, and RSSI. | SystemInfoApp.cpp:173-191 |
| Tasks | Real-time task table showing CPU %, priority, stack high water mark, and core affinity. | SystemInfoApp.cpp:193-219 |
Data Flow Architecture
The application uses an update loop that polls the SystemInfoService at a defined interval (default 1000ms).
Settings Application Modules
The Settings application is modular, with specific sub-modules for connectivity management.
WiFi Settings
Handles network discovery and station mode configuration.
- Scanning: Triggers WiFi scans and populates a list of available SSIDs.
- Connection: Manages password input and connection state monitoring.
- Persistence: Ensures network credentials are saved via the NVS/JSON storage systems.
Sources: ROADMAP.md:106, reports/code_quality_report.md:46
Hotspot Settings
Manages the SoftAP (Access Point) configuration for the device.
- Config: Allows setting SSID, password, and maximum connections.
- Monitoring: Displays a list of currently connected clients.
- Data Tracking: Tracks usage metrics such as uptime and data sent/received.
Sources: reports/code_quality_report.md:41-45, reports/docs.txt:18-24
Development Roadmap for Applications
Currently, the core utility apps (Settings, Files, System Info) are completed. Planned applications include:
- Productivity: Calculator, Clock/Alarm, Text Editor, and Notes App.
- Media/Tools: Terminal/Console, Image Viewer, and Music Player.
- Internet: Weather App and Lite Web Browser.
Sources: ROADMAP.md:104-123