feat: Flutter APK 编译成功 + Gradle 配置修复 + APK 下载部署 + 待优化清单

- 通过 qemu-user-static 实现 ARM64 主机编译 Android APK (51MB)
- 修复 Gradle: Aliyun 镜像 + PREFER_SETTINGS + JVM 内存 1536M
- 部署 APK 到 configs/downloads/, Web 下载接口已验证 (HTTP 200)
- 新增 Flutter TODO.md: 10项待优化 (P0/P1/P2 分级)
- 新增 pm_soul.md, 更新 routes.rs APK 下载路由

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
showen
2026-03-14 06:43:55 +08:00
parent bff9ec535d
commit 8ed9cb2d9d
24 changed files with 1034 additions and 20 deletions

View File

@@ -262,7 +262,7 @@ class _BleProvisionScreenState extends State<BleProvisionScreen> {
width: double.infinity,
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.18),
color: Colors.black.withValues(alpha: 0.18),
borderRadius: BorderRadius.circular(12),
border: Border.all(color: Colors.white12),
),
@@ -440,7 +440,7 @@ class _ProgressCard extends StatelessWidget {
decoration: BoxDecoration(
color: step.active
? const Color(0x1A22C55E)
: Colors.black.withOpacity(0.14),
: Colors.black.withValues(alpha: 0.14),
borderRadius: BorderRadius.circular(999),
border: Border.all(
color: step.active ? const Color(0xFF22C55E) : Colors.white24,
@@ -531,7 +531,7 @@ class _SignalBadge extends StatelessWidget {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 8),
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.2),
color: Colors.black.withValues(alpha: 0.2),
borderRadius: BorderRadius.circular(12),
),
child: Row(
@@ -569,7 +569,7 @@ class _EmptyState extends StatelessWidget {
width: double.infinity,
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.15),
color: Colors.black.withValues(alpha: 0.15),
borderRadius: BorderRadius.circular(16),
border: Border.all(color: Colors.white10),
),

View File

@@ -146,7 +146,7 @@ class _PlaybackScreenState extends State<PlaybackScreen> {
return Padding(
padding: const EdgeInsets.only(bottom: AppSpacing.sm),
child: Card(
color: selected ? AppColors.primary.withOpacity(0.16) : null,
color: selected ? AppColors.primary.withValues(alpha: 0.16) : null,
child: ListTile(
onTap: provider.isLoading
? null

View File

@@ -103,7 +103,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
Text('可用配置文件', style: Theme.of(context).textTheme.titleMedium),
const SizedBox(height: AppSpacing.md),
DropdownButtonFormField<String>(
value: _activeConfig,
initialValue: _activeConfig,
items: _availableConfigs
.map(
(item) => DropdownMenuItem<String>(

View File

@@ -133,7 +133,7 @@ class _TriggerScreenState extends State<TriggerScreen> {
Text('场景切换', style: Theme.of(context).textTheme.titleMedium),
const SizedBox(height: AppSpacing.md),
DropdownButtonFormField<String>(
value: provider.sceneOptions.contains(_selectedScene) ? _selectedScene : null,
initialValue: provider.sceneOptions.contains(_selectedScene) ? _selectedScene : null,
items: provider.sceneOptions
.map(
(scene) => DropdownMenuItem<String>(