- Rename test-apps to base-apps with proper manifest.json for each app - Add is_system_app flag to app discovery and Lua API - Fix icon path resolution for /system/icons/ paths - Add layout.lua and layout.rcss for reusable UI components - Update home screen to dynamically load all apps from manifests - Update all app RML files to use layout components - Comprehensive testing framework documentation with JSON action format - Add tests/ directory structure for automated UI testing
361 lines
12 KiB
Plaintext
361 lines
12 KiB
Plaintext
<rml>
|
|
<head>
|
|
<link type="text/rcss" href="../../ui/html.rcss"/>
|
|
<link type="text/rcss" href="../../ui/theme.rcss"/>
|
|
<link type="text/rcss" href="../../ui/components.rcss"/>
|
|
<link type="text/rcss" href="../../ui/layout.rcss"/>
|
|
<script src="../../scripts/navigation.lua"></script>
|
|
<script src="../../scripts/layout.lua"></script>
|
|
<title>Settings</title>
|
|
<style>
|
|
.settings-list {
|
|
flex: 1;
|
|
overflow: auto;
|
|
width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.settings-section {
|
|
margin-bottom: 8px;
|
|
width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.settings-header {
|
|
padding: 16px 16px 8px 16px;
|
|
font-size: 18px;
|
|
font-weight: 500;
|
|
color: #BB86FC;
|
|
}
|
|
|
|
.settings-item {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
padding: 16px;
|
|
cursor: pointer;
|
|
background-color: #1E1E1E;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.settings-item:hover {
|
|
background-color: #252525;
|
|
}
|
|
|
|
.settings-item + .settings-item {
|
|
border-top: 1px #333333;
|
|
}
|
|
|
|
.settings-icon {
|
|
width: 48px;
|
|
height: 48px;
|
|
margin-right: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.settings-icon img {
|
|
width: 32px;
|
|
height: 32px;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.settings-content {
|
|
flex: 1;
|
|
}
|
|
|
|
.settings-title {
|
|
font-size: 18px;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.settings-subtitle {
|
|
font-size: 16px;
|
|
color: #B3B3B3;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.settings-action {
|
|
font-size: 20px;
|
|
color: #666666;
|
|
padding: 8px;
|
|
}
|
|
|
|
.settings-toggle {
|
|
width: 56px;
|
|
height: 32px;
|
|
border-radius: 16px;
|
|
background-color: #666666;
|
|
cursor: pointer;
|
|
position: relative;
|
|
}
|
|
|
|
.settings-toggle.active {
|
|
background-color: rgba(187, 134, 252, 0.5);
|
|
}
|
|
|
|
.settings-toggle-thumb {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: 14px;
|
|
background-color: #B3B3B3;
|
|
position: absolute;
|
|
top: 2px;
|
|
left: 2px;
|
|
}
|
|
|
|
.settings-toggle.active .settings-toggle-thumb {
|
|
background-color: #BB86FC;
|
|
left: 26px;
|
|
}
|
|
|
|
.user-card {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
padding: 20px 16px;
|
|
background-color: #1E1E1E;
|
|
margin-bottom: 8px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.user-card:hover {
|
|
background-color: #252525;
|
|
}
|
|
|
|
.user-avatar {
|
|
width: 64px;
|
|
height: 64px;
|
|
border-radius: 32px;
|
|
background-color: #BB86FC;
|
|
margin-right: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 28px;
|
|
color: #000000;
|
|
}
|
|
|
|
.user-info {
|
|
flex: 1;
|
|
}
|
|
|
|
.user-name {
|
|
font-size: 20px;
|
|
font-weight: 500;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.user-email {
|
|
font-size: 16px;
|
|
color: #B3B3B3;
|
|
margin-top: 4px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="app-screen" onload="initLayout(document)">
|
|
<!-- System Status Bar -->
|
|
<div class="system-status-bar">
|
|
<span id="status-time" class="system-status-time">12:30</span>
|
|
<div class="system-status-icons">
|
|
<img src="../../icons/wifi.tga"/>
|
|
<img src="../../icons/signal.tga"/>
|
|
<img src="../../icons/battery.tga"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- App Bar -->
|
|
<div class="app-bar">
|
|
<div class="app-bar-back" onclick="goBack()">
|
|
<img src="../../icons/back.tga"/>
|
|
</div>
|
|
<span class="app-bar-title">Settings</span>
|
|
<div class="app-bar-actions">
|
|
<div class="app-bar-action">
|
|
<img src="../../icons/search.tga"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Settings List -->
|
|
<div class="app-content with-nav">
|
|
<div class="settings-list">
|
|
<!-- User Card -->
|
|
<div class="user-card">
|
|
<div class="user-avatar">U</div>
|
|
<div class="user-info">
|
|
<div class="user-name">User</div>
|
|
<div class="user-email">user@mosis.local</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
|
|
<!-- Network Section -->
|
|
<div class="settings-section">
|
|
<div class="settings-header">Network</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/wifi.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Wi-Fi</div>
|
|
<div class="settings-subtitle">Connected to MosisNetwork</div>
|
|
</div>
|
|
<div class="settings-toggle active">
|
|
<div class="settings-toggle-thumb"></div>
|
|
</div>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/signal.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Bluetooth</div>
|
|
<div class="settings-subtitle">Off</div>
|
|
</div>
|
|
<div class="settings-toggle">
|
|
<div class="settings-toggle-thumb"></div>
|
|
</div>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/signal.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Airplane Mode</div>
|
|
</div>
|
|
<div class="settings-toggle">
|
|
<div class="settings-toggle-thumb"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Device Section -->
|
|
<div class="settings-section">
|
|
<div class="settings-header">Device</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/settings.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Display</div>
|
|
<div class="settings-subtitle">Brightness, wallpaper, sleep</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/music.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Sound</div>
|
|
<div class="settings-subtitle">Volume, ringtone, vibration</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/message.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Notifications</div>
|
|
<div class="settings-subtitle">App notifications, Do not disturb</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/battery.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Battery</div>
|
|
<div class="settings-subtitle">85% - 4h 30m remaining</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/files.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Storage</div>
|
|
<div class="settings-subtitle">32 GB of 128 GB used</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Privacy Section -->
|
|
<div class="settings-section">
|
|
<div class="settings-header">Privacy & Security</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/account.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Lock Screen</div>
|
|
<div class="settings-subtitle">PIN, pattern, fingerprint</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/account.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Privacy</div>
|
|
<div class="settings-subtitle">Permissions, account activity</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/maps.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">Location</div>
|
|
<div class="settings-subtitle">On - High accuracy</div>
|
|
</div>
|
|
<div class="settings-toggle active">
|
|
<div class="settings-toggle-thumb"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- About Section -->
|
|
<div class="settings-section">
|
|
<div class="settings-header">About</div>
|
|
<div class="settings-item">
|
|
<div class="settings-icon">
|
|
<img src="../../icons/phone.tga"/>
|
|
</div>
|
|
<div class="settings-content">
|
|
<div class="settings-title">About Phone</div>
|
|
<div class="settings-subtitle">Mosis Virtual Phone v1.0</div>
|
|
</div>
|
|
<span class="settings-action">></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- System Navigation Bar -->
|
|
<div class="system-nav-bar">
|
|
<div class="system-nav-btn" onclick="onBackPressed()">
|
|
<img src="../../icons/back.tga"/>
|
|
</div>
|
|
<div class="system-nav-home" onclick="onHomePressed()"></div>
|
|
<div class="system-nav-btn" onclick="onRecentPressed()">
|
|
<img src="../../icons/menu.tga"/>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</rml>
|