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
+11 -1
View File
@@ -107,5 +107,15 @@
"procUploaded": "Uploaded",
"procProcessing": "Processing",
"procReady": "Ready",
"procProcessingFailed": "Processing failed"
"procProcessingFailed": "Processing failed",
"queueStubHint": "Local upload queue and continuous capture arrive in Task 9",
"serverHistoryEntry": "View server upload history",
"serverHistoryTitle": "Server upload history",
"serverHistoryBanner": "Server-side history (cross-device) — for this device's pending uploads see the Queue tab",
"serverHistoryEmpty": "No upload sessions yet",
"uploadStatePending": "Pending",
"uploadStateConfirmed": "Confirmed",
"uploadStateCancelled": "Cancelled",
"uploadStateExpired": "Expired",
"thisDevice": "This device"
}
@@ -745,6 +745,66 @@ abstract class AppLocalizations {
/// In zh, this message translates to:
/// **'处理失败'**
String get procProcessingFailed;
/// No description provided for @queueStubHint.
///
/// In zh, this message translates to:
/// **'本机待传队列与连拍管理将在任务 9 上线'**
String get queueStubHint;
/// No description provided for @serverHistoryEntry.
///
/// In zh, this message translates to:
/// **'查看服务端上传历史'**
String get serverHistoryEntry;
/// No description provided for @serverHistoryTitle.
///
/// In zh, this message translates to:
/// **'服务端上传历史'**
String get serverHistoryTitle;
/// No description provided for @serverHistoryBanner.
///
/// In zh, this message translates to:
/// **'服务端历史(跨设备)——本机待传队列请看「队列」页'**
String get serverHistoryBanner;
/// No description provided for @serverHistoryEmpty.
///
/// In zh, this message translates to:
/// **'暂无上传记录'**
String get serverHistoryEmpty;
/// No description provided for @uploadStatePending.
///
/// In zh, this message translates to:
/// **'待完成'**
String get uploadStatePending;
/// No description provided for @uploadStateConfirmed.
///
/// In zh, this message translates to:
/// **'已确认'**
String get uploadStateConfirmed;
/// No description provided for @uploadStateCancelled.
///
/// In zh, this message translates to:
/// **'已取消'**
String get uploadStateCancelled;
/// No description provided for @uploadStateExpired.
///
/// In zh, this message translates to:
/// **'已过期'**
String get uploadStateExpired;
/// No description provided for @thisDevice.
///
/// In zh, this message translates to:
/// **'本设备'**
String get thisDevice;
}
class _AppLocalizationsDelegate
@@ -338,4 +338,36 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get procProcessingFailed => 'Processing failed';
@override
String get queueStubHint =>
'Local upload queue and continuous capture arrive in Task 9';
@override
String get serverHistoryEntry => 'View server upload history';
@override
String get serverHistoryTitle => 'Server upload history';
@override
String get serverHistoryBanner =>
'Server-side history (cross-device) — for this device\'s pending uploads see the Queue tab';
@override
String get serverHistoryEmpty => 'No upload sessions yet';
@override
String get uploadStatePending => 'Pending';
@override
String get uploadStateConfirmed => 'Confirmed';
@override
String get uploadStateCancelled => 'Cancelled';
@override
String get uploadStateExpired => 'Expired';
@override
String get thisDevice => 'This device';
}
@@ -331,4 +331,34 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get procProcessingFailed => '处理失败';
@override
String get queueStubHint => '本机待传队列与连拍管理将在任务 9 上线';
@override
String get serverHistoryEntry => '查看服务端上传历史';
@override
String get serverHistoryTitle => '服务端上传历史';
@override
String get serverHistoryBanner => '服务端历史(跨设备)——本机待传队列请看「队列」页';
@override
String get serverHistoryEmpty => '暂无上传记录';
@override
String get uploadStatePending => '待完成';
@override
String get uploadStateConfirmed => '已确认';
@override
String get uploadStateCancelled => '已取消';
@override
String get uploadStateExpired => '已过期';
@override
String get thisDevice => '本设备';
}
+11 -1
View File
@@ -107,5 +107,15 @@
"procUploaded": "已上传",
"procProcessing": "处理中",
"procReady": "就绪",
"procProcessingFailed": "处理失败"
"procProcessingFailed": "处理失败",
"queueStubHint": "本机待传队列与连拍管理将在任务 9 上线",
"serverHistoryEntry": "查看服务端上传历史",
"serverHistoryTitle": "服务端上传历史",
"serverHistoryBanner": "服务端历史(跨设备)——本机待传队列请看「队列」页",
"serverHistoryEmpty": "暂无上传记录",
"uploadStatePending": "待完成",
"uploadStateConfirmed": "已确认",
"uploadStateCancelled": "已取消",
"uploadStateExpired": "已过期",
"thisDevice": "本设备"
}