feat: 主页账号备份,并修好 B50 预览缩不小
账号备份(AccountBackupCard + AccountBackupService): - 并发读 GetUserData/Extend/Option/Rating/Charge/Activity/MissionData + Character + Map(分页)+ KaleidxScope + 各 itemKind 的 GetUserItemApi, 汇成一个 JSON 字符串可复制到剪贴板。舞里程与总游玩数据本就在 userData 的 point/totalPoint/playCount 里。 - itemKind 15(KaleidxScopeKey)不列进回读清单:客户端 ExportUserItems 从不输出它,下行也没有读它的路径,钥匙实际是 userKaleidxScopeList[].isKeyFound。 - 全程只发 GetUser*Api,不碰 UpsertUserAllApi。 - 逐段容错:私服没实现某个接口时其余照样备出,失败段单独列出—— 「读到但是空的」和「没读到」在 userItemList 里按 kind 分开存,可区分。 - 取数与拼装分开,buildBackupDocument/encode 部分是纯函数,单测覆盖。 B50 预览:原因是 InteractiveViewer(constrained:false) 给孩子无界约束, FittedBox(fit: fitWidth) 在无界下根本不缩放,海报按 1762x1850 原尺寸铺开; 而 minScale 又算成 1.0,于是既巨大又缩不动。改为给一个 contain 尺寸的 有限盒子让 FittedBox 真正缩放,minScale 固定 1.0(这个版本没有 initialScale 可用)。RepaintBoundary 留在 FittedBox 内侧,绘制尺寸仍是 1762x1850,导出分辨率不受影响,并加了断言守住这点。
This commit is contained in:
1 parent
a5fb2c97cd
commit
0cb5320290
8 files changed
+524
-36
No files matched your search
@@ -37,6 +37,23 @@ class AppStrings {
|
||||
static const connectionShareEmpty = '当前会话既没有 Cookie 也没有令牌,无法导出。';
|
||||
static const restoreSession = '恢复会话';
|
||||
static const restoringSession = '恢复中...';
|
||||
|
||||
// 账号备份:把服务器可读到的用户数据汇成一个 JSON 字符串
|
||||
static const accountBackupTitle = '账号备份';
|
||||
static const accountBackupDesc =
|
||||
'只读地把服务器上的用户数据汇成一串 JSON:道具清单、舞里程、游玩统计、'
|
||||
'旅行伙伴、区域进度、万花筒进度、Rating 与成绩等。全程只发 GetUser* 接口,'
|
||||
'不会写任何数据。';
|
||||
static const accountBackupRun = '生成备份';
|
||||
static String accountBackupRunning(String section) =>
|
||||
section.isEmpty ? '备份中...' : '备份中:$section';
|
||||
static const accountBackupCopy = '复制到剪贴板';
|
||||
static const accountBackupCopied = '备份内容已复制到剪贴板';
|
||||
static String accountBackupSize(String size) => '共 $size';
|
||||
static String accountBackupPartial(List<String> failures) =>
|
||||
'${failures.length} 段没读到(私服可能未实现该接口),其余照常:'
|
||||
'${failures.join('、')}';
|
||||
static const accountBackupSecurity = '备份含账号标识与进度数据;内容未加密,请勿贴到公开场合。';
|
||||
static const sessionShareDetected = '已识别为连接信息(实验性功能),点击「恢复会话」直接续上这次登录。';
|
||||
static const sessionRestoreFailed = '会话恢复失败';
|
||||
static const sessionRestoreCookie =
|
||||
|
||||
Reference in new issue
Block a user