feat(app): 服务端历史行首缩略图 + 上传中心空态引导至服务端历史

- UploadSessionPhoto 解析可选 preview;历史行首有 thumb 渲染 PhotoThumbnail
 (SizedBox 定寸——Row 内裸 AspectRatio 无界约束),缺省回退中性占位
- 上传中心整体空态加「仅本机存储」说明 + 「查看服务端历史」tonal 按钮
 (与右上 History 同路由);「需关注」空态保持专属文案不加引导
- l10n 增 queueEmptyDeviceHint / queueViewServerHistory

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-29 12:04:06 +08:00
parent f1912998a8
commit 3728eb93d9
10 changed files with 141 additions and 18 deletions
@@ -279,6 +279,28 @@ void main() {
reason: 'History 入口 push /server-history(与本机队列数据源区分)');
});
testWidgets('空态引导:本机 0 条记录 → 服务端历史说明 + 跳转按钮', (
tester,
) async {
// setUp 每次新内存库:不种任务即整体队列空态(重装后场景)。
await pumpQueue(tester);
expect(find.text('No upload tasks'), findsOneWidget);
// 本机存储口径说明 + 服务端历史引导(EmptyState subtitle + tonal 按钮)。
expect(
find.text(
'Upload records live on this device only and are cleared on reinstall',
),
findsOneWidget,
);
expect(find.text('View server history'), findsOneWidget);
await tester.tap(find.text('View server history'));
await tester.pumpAndSettle();
expect(find.text('SERVER_HISTORY_MARK'), findsOneWidget,
reason: '空态引导与右上 History 同路由');
});
testWidgets('摘要卡:范围标注(时间·本设备)+ 四组任务数(突出已完成)',
(tester) async {
await seed('done1.jpg', state: UploadTaskState.completed);