refactor: 重构项目路由与模块结构,统一发现页命名与路径

1. 全局替换tool_center/inspiration为discover模块,统一路由路径
2. 调整AppRoutes路由常量,将discover作为主Tab页,inspiration作为子页面
3. 更新页面注册表与路由配置,修正跳转目标
4. 调整启动页可选配置项,修正路由ID对应关系
5. 新增翻译服务、内容发现、热搜相关工具类与数据模型
6. 修复缓存清理后未刷新统计的问题,调整x86_64架构注释
7. 更新AGENTS.md文档约束规则
8. 新增一批调试用截图资源文件
This commit is contained in:
Developer
2026-05-28 06:42:20 +08:00
parent 355191aaf6
commit 63a0559721
178 changed files with 43990 additions and 3936 deletions

View File

@@ -3,7 +3,7 @@
// 创建时间: 2026-04-23
// 更新时间: 2026-05-23
// 作用: ProImageEditor 的闲言APP包装页全新iOS 26风格
// 上次更新: 重构画布层级-背景视图移出中间件+圆角应用到画布+修复灰黑块
// 上次更新: 编辑器打开时自动弹出实验性功能提醒(支持不再提醒)
// ============================================================
import 'dart:convert';
@@ -14,6 +14,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:pro_image_editor/pro_image_editor.dart' as pro;
import 'package:xianyan/core/storage/kv_storage.dart';
import 'package:xianyan/core/router/editor_router.dart';
import 'package:xianyan/editor/services/core/pro_editor_bridge.dart';
import 'package:xianyan/editor/services/core/editor_theme_notifier.dart';
@@ -138,6 +139,85 @@ class ProEditorPageState extends State<ProEditorPage>
EditorSystemUI.enterEditor();
_scheduleInitialText();
_loadSettings();
_showExperimentalReminderIfNeeded();
}
void _showExperimentalReminderIfNeeded() {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!mounted) return;
final dismissed =
KvStorage.getBool('editor_experimental_dismissed') ?? false;
if (dismissed) return;
_showExperimentalDialog(forceShow: false);
});
}
void _showExperimentalDialog({bool forceShow = true}) {
showCupertinoDialog<void>(
context: context,
builder: (ctx) {
bool dontRemind = false;
return StatefulBuilder(
builder: (ctx, setDialogState) => CupertinoAlertDialog(
title: const Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(
CupertinoIcons.lab_flask_solid,
size: 20,
color: CupertinoColors.systemOrange,
),
SizedBox(width: 8),
Text('实验性功能'),
],
),
content: Padding(
padding: const EdgeInsets.only(top: 8),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text(
'该编辑器当前设备不支持,部分功能仅作为预览展示,可能不会实际生效。\n\n当前可用功能:基础文字编辑、图层管理\n更多功能当前设备不支持。',
),
const SizedBox(height: 12),
GestureDetector(
onTap: () => setDialogState(() => dontRemind = !dontRemind),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(
dontRemind
? CupertinoIcons.checkmark_square_fill
: CupertinoIcons.square,
size: 20,
color: dontRemind
? CupertinoColors.systemGreen
: CupertinoColors.systemGrey,
),
const SizedBox(width: 8),
const Text('不再提醒', style: TextStyle(fontSize: 14)),
],
),
),
],
),
),
actions: [
CupertinoDialogAction(
isDefaultAction: true,
onPressed: () {
if (dontRemind) {
KvStorage.setBool('editor_experimental_dismissed', true);
}
Navigator.pop(ctx);
},
child: const Text('我知道了'),
),
],
),
);
},
);
}
void _loadSettings() async {

View File

@@ -1,9 +1,9 @@
// ============================================================
// 闲言APP — 编辑器底部工具栏 v2
// 创建时间: 2026-05-03
// 更新时间: 2026-05-26
// 更新时间: 2026-05-27
// 作用: Tab分类+工具按钮+分割线+状态行+Home指示条
// 上次更新: 提示词按钮改为实验性功能按钮+点击弹出CupertinoAlertDialog
// 上次更新: 实验性功能弹窗增加"不再提醒"勾选框KvStorage持久化
// ============================================================
import 'dart:typed_data';
@@ -13,6 +13,7 @@ import 'package:flutter/material.dart';
import 'package:liquid_glass_widgets/liquid_glass_widgets.dart';
import 'package:pro_image_editor/pro_image_editor.dart' as pro;
import 'package:xianyan/core/storage/kv_storage.dart';
import 'package:xianyan/editor/services/core/color_tokens.dart';
import 'package:xianyan/editor/services/core/editor_theme_notifier.dart';
import 'package:xianyan/editor/widgets/controls/editor_icon.dart';
@@ -463,22 +464,73 @@ class _EditorBottomToolbarV2State extends State<EditorBottomToolbarV2>
label: '实验性功能',
isActive: false,
palette: p,
onTap: () {
onTap: () async {
showCupertinoDialog<void>(
context: context,
builder: (ctx) => CupertinoAlertDialog(
title: const Text('实验性功能'),
content: const Text(
'该编辑器当前设备不支持,部分功能仅作为预览展示,可能不会实际生效。当前可用功能包括:基础文字编辑、图层管理。更多功能当前设备不支持。',
),
actions: [
CupertinoDialogAction(
isDefaultAction: true,
onPressed: () => Navigator.pop(ctx),
child: const Text('我知道了'),
builder: (ctx) {
bool dontRemind = false;
return StatefulBuilder(
builder: (ctx, setDialogState) => CupertinoAlertDialog(
title: const Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(CupertinoIcons.lab_flask_solid,
size: 20, color: CupertinoColors.systemOrange),
SizedBox(width: 8),
Text('实验性功能'),
],
),
content: Padding(
padding: const EdgeInsets.only(top: 8),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text(
'该编辑器当前设备不支持,部分功能仅作为预览展示,可能不会实际生效。\n\n当前可用功能:基础文字编辑、图层管理\n更多功能当前设备不支持。',
),
const SizedBox(height: 12),
GestureDetector(
onTap: () =>
setDialogState(() => dontRemind = !dontRemind),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(
dontRemind
? CupertinoIcons.checkmark_square_fill
: CupertinoIcons.square,
size: 20,
color: dontRemind
? CupertinoColors.systemGreen
: CupertinoColors.systemGrey,
),
const SizedBox(width: 8),
const Text(
'不再提醒',
style: TextStyle(fontSize: 14),
),
],
),
),
],
),
),
actions: [
CupertinoDialogAction(
isDefaultAction: true,
onPressed: () {
if (dontRemind) {
KvStorage.setBool(
'editor_experimental_dismissed', true);
}
Navigator.pop(ctx);
},
child: const Text('我知道了'),
),
],
),
],
),
);
},
);
},
);