自动退出登录卡死:_performLogoutAndExit 只 pop() 一层,而解锁/收藏品页是 push
在 HomePage 之上的,退登后被弹回「风险」hub,同时 _loggingOut 仍为 true,
PopScope(canPop:false) + 返回键转圈形成死局。改为 popUntil(isFirst)。
旅行伙伴发不了:它是 ItemKind.Character = 9,与搭档 Partner = 10 是两种东西,
原先收藏品的类型列表 [1,2,3,10,11,12] 里根本没有 9。按客户端实现,角色不走
userItemList(ExportUserItems 不导出 itemKind 9),而是
upsertUserAll.userCharacterList 的 {characterId, level, awakening, useCount},
配 isNewCharacterList 一行一字符。新增发放与 5 槽 charaSlot 编组页,
含「把槽 0 复制到其他槽位」,并校验所选角色确为已拥有或本次待发放。
宽屏布局:各页只有 ConstrainedBox 限宽、没有居中容器,1440 窗口下内容贴左、
右侧大片空白。抽出 responsiveBody 统一居中;B50 预览改用按宽度适配
(InteractiveViewer constrained:false + FittedBox fitWidth),横屏下不再被
contain 缩成中间一小块,导出仍是原始 1762x1850。
CI:.github/workflows/build.yml 先跑 analyze+test 作为门槛,再产出
Windows exe、Android apk、iOS 未签名 ipa(macOS runner,无证书故不可安装)。
README 从 Flutter 模板改写为实际文档,含 path_provider/jni 与 JBR jlink
两个构建环境坑的说明。
48 lines
1.3 KiB
Dart
48 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
||
|
||
import '../config/strings.dart';
|
||
import 'music_risk_feature_view.dart';
|
||
|
||
/// 收藏品获取:逻辑参考 `eaquira/action/UnlockMusic.py`,
|
||
/// 通过上传 userItemList 道具获取收藏品 (UpsertUserAllApi)。
|
||
///
|
||
/// itemKind: 1=姓名框 2=称号 3=头像 10=搭档 11=背景板 12=功能票
|
||
class CollectiblesPage extends StatelessWidget {
|
||
final int userId;
|
||
final String? cookies;
|
||
final int? loginDateTime;
|
||
final int? loginId;
|
||
final String? lastLoginDate;
|
||
final Future<void> Function()? onExitToTitle;
|
||
|
||
const CollectiblesPage({
|
||
super.key,
|
||
required this.userId,
|
||
this.cookies,
|
||
this.loginDateTime,
|
||
this.loginId,
|
||
this.lastLoginDate,
|
||
this.onExitToTitle,
|
||
});
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return Scaffold(
|
||
appBar: AppBar(
|
||
title: const Text(AppStrings.collectiblesFeatureTitle),
|
||
),
|
||
body: MusicRiskFeatureView(
|
||
userId: userId,
|
||
cookies: cookies,
|
||
loginDateTime: loginDateTime,
|
||
loginId: loginId,
|
||
lastLoginDate: lastLoginDate,
|
||
onExitToTitle: onExitToTitle,
|
||
mode: MusicRiskFeatureMode.collectibles,
|
||
featureTitle: AppStrings.collectiblesFeatureTitle,
|
||
featureDesc: AppStrings.collectiblesFeatureDesc,
|
||
),
|
||
);
|
||
}
|
||
}
|