feat(mobile): upload engine with preparation, batching states and retries

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-19 02:50:40 +08:00
parent d96e56f653
commit 3ddb0ea2d4
23 changed files with 3232 additions and 12 deletions
+24 -4
View File
@@ -54,19 +54,39 @@ class _HomePageState extends State<HomePage> {
}
}
/// 上传队列(桩)。Task 6/9:状态机展示、筛选与重试。
/// 上传队列(桩)。Task 9:状态机展示、筛选与重试;当前仅提供
/// 服务端上传历史入口(A19 跨设备记录)。
class QueueTab extends StatelessWidget {
const QueueTab({super.key});
@override
Widget build(BuildContext context) {
final l10n = AppLocalizations.of(context);
final theme = Theme.of(context);
return Scaffold(
appBar: AppBar(title: Text(l10n.queue)),
body: Center(
child: Text(
l10n.queue,
style: Theme.of(context).textTheme.headlineSmall,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 32),
child: Text(
l10n.queueStubHint,
textAlign: TextAlign.center,
style: theme.textTheme.bodyMedium?.copyWith(
color: theme.colorScheme.onSurfaceVariant,
),
),
),
const SizedBox(height: 16),
FilledButton.tonalIcon(
onPressed: () =>
Navigator.of(context).pushNamed('/server-history'),
icon: const Icon(Icons.history_outlined),
label: Text(l10n.serverHistoryEntry),
),
],
),
),
);