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:
@@ -17,7 +17,7 @@ import 'package:liquid_glass_widgets/liquid_glass_widgets.dart';
|
||||
import '../theme/app_theme.dart';
|
||||
import '../utils/ui/interaction_animations.dart';
|
||||
import '../utils/logger.dart';
|
||||
import '../../features/tool_center/inspiration/providers/chat_provider.dart';
|
||||
import '../../features/discover/providers/chat_provider.dart';
|
||||
import '../../features/mine/settings/providers/theme_settings_provider.dart';
|
||||
import '../../l10n/translations.dart';
|
||||
import '../../shared/widgets/animation/tab_icon_sprite.dart';
|
||||
|
||||
@@ -19,10 +19,11 @@ import '../../core/storage/kv_storage.dart';
|
||||
import '../../core/theme/app_theme.dart';
|
||||
import '../../core/utils/ui/interaction_animations.dart';
|
||||
import '../../core/utils/logger.dart';
|
||||
import '../../core/utils/platform/platform_utils.dart' show OhosDeviceCapabilities;
|
||||
import '../../core/utils/platform/platform_utils.dart'
|
||||
show OhosDeviceCapabilities;
|
||||
import '../../features/onboarding/presentation/onboarding_page.dart';
|
||||
import '../../features/tool_center/inspiration/providers/chat_provider.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/home/inspiration_page.dart';
|
||||
import '../../features/discover/providers/chat_provider.dart';
|
||||
import '../../features/discover/presentation/pages/home/discover_page.dart';
|
||||
import '../../features/home/presentation/home_page.dart';
|
||||
import '../../features/mine/profile/presentation/profile_page.dart';
|
||||
import '../../features/mine/settings/providers/theme_settings_provider.dart';
|
||||
@@ -50,7 +51,7 @@ class _OhosAppShellState extends ConsumerState<OhosAppShell> {
|
||||
|
||||
static const List<Widget> _tabPages = [
|
||||
HomePage(),
|
||||
InspirationPage(),
|
||||
DiscoverPage(),
|
||||
ProfilePage(),
|
||||
];
|
||||
|
||||
|
||||
@@ -385,9 +385,9 @@ class PageRegistry {
|
||||
],
|
||||
),
|
||||
PageRegistryEntry(
|
||||
route: AppRoutes.inspiration,
|
||||
route: AppRoutes.discover,
|
||||
name: '发现',
|
||||
description: '发现 + 分类浏览 + 热门标签 + 句子瀑布流',
|
||||
description: '发现Tab主页面 + 工具中心 + 会话流',
|
||||
category: PageCategory.discovery,
|
||||
isTab: true,
|
||||
designTokens: [
|
||||
@@ -600,7 +600,7 @@ class PageRegistry {
|
||||
final registeredRoutes = pages.map((p) => p.route).toSet();
|
||||
final appRoutes = [
|
||||
AppRoutes.home,
|
||||
AppRoutes.inspiration,
|
||||
AppRoutes.discover,
|
||||
AppRoutes.editor,
|
||||
AppRoutes.profile,
|
||||
AppRoutes.search,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// ============================================================
|
||||
// 闲言APP — 路由配置(主入口)
|
||||
// 创建时间: 2026-04-20
|
||||
// 更新时间: 2026-05-27
|
||||
// 更新时间: 2026-05-28
|
||||
// 作用: go_router 路由表组装 + ShellRoute 布局壳 + iOS 风格转场 + 深链接重定向
|
||||
// 上次更新: 提取resolveDeepLinkPath为公共静态方法,合并DeepLinkService路径映射逻辑
|
||||
// 上次更新: 对调inspiration/discover路由,discover为Tab主页面
|
||||
// ============================================================
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -14,7 +14,7 @@ import '../utils/platform/platform_utils.dart' as pu;
|
||||
|
||||
import '../../features/onboarding/presentation/onboarding_page.dart';
|
||||
import '../../features/home/presentation/home_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/home/inspiration_page.dart';
|
||||
import '../../features/discover/presentation/pages/home/discover_page.dart';
|
||||
import '../../features/mine/profile/presentation/profile_page.dart';
|
||||
import '../layout/app_shell.dart';
|
||||
import '../storage/kv_storage.dart';
|
||||
@@ -35,9 +35,7 @@ final rootNavigatorKey = GlobalKey<NavigatorState>();
|
||||
final shellNavigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
final _homeNavigatorKey = GlobalKey<NavigatorState>(debugLabel: 'home');
|
||||
final _inspirationNavigatorKey = GlobalKey<NavigatorState>(
|
||||
debugLabel: 'inspiration',
|
||||
);
|
||||
final _discoverNavigatorKey = GlobalKey<NavigatorState>(debugLabel: 'discover');
|
||||
final _profileNavigatorKey = GlobalKey<NavigatorState>(debugLabel: 'profile');
|
||||
|
||||
final GoRouter appRouter = GoRouter(
|
||||
@@ -71,15 +69,13 @@ final GoRouter appRouter = GoRouter(
|
||||
],
|
||||
),
|
||||
StatefulShellBranch(
|
||||
navigatorKey: _inspirationNavigatorKey,
|
||||
navigatorKey: _discoverNavigatorKey,
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: AppRoutes.inspiration,
|
||||
name: 'inspiration',
|
||||
pageBuilder: (context, state) => iosFadeTransition(
|
||||
state: state,
|
||||
child: const InspirationPage(),
|
||||
),
|
||||
path: AppRoutes.discover,
|
||||
name: 'discover',
|
||||
pageBuilder: (context, state) =>
|
||||
iosFadeTransition(state: state, child: const DiscoverPage()),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -156,19 +152,20 @@ class AppRouter {
|
||||
|
||||
return switch (host) {
|
||||
'home' => AppRoutes.home,
|
||||
'inspiration' => AppRoutes.inspiration,
|
||||
'discover' => AppRoutes.discover,
|
||||
'profile' => AppRoutes.profile,
|
||||
'search' => AppRoutes.search,
|
||||
'fortune' => AppRoutes.dailyFortune,
|
||||
'article' => path.isNotEmpty ? path : AppRoutes.home,
|
||||
'notes' => AppRoutes.noteList,
|
||||
'discover' => AppRoutes.discover,
|
||||
'inspiration' => AppRoutes.inspiration,
|
||||
'favorites' => AppRoutes.favorites,
|
||||
'history' => AppRoutes.history,
|
||||
'tool' => _resolveToolPath(path),
|
||||
'editor' => AppRoutes.editor,
|
||||
'signin' => AppRoutes.signin,
|
||||
'weather' => path.isNotEmpty ? AppRoutes.weatherSettings : AppRoutes.weather,
|
||||
'weather' =>
|
||||
path.isNotEmpty ? AppRoutes.weatherSettings : AppRoutes.weather,
|
||||
'poetry' => path.isNotEmpty ? AppRoutes.poetrySettings : AppRoutes.poetry,
|
||||
'pomodoro' => AppRoutes.pomodoro,
|
||||
'countdown' => AppRoutes.countdown,
|
||||
@@ -198,22 +195,21 @@ class AppRouter {
|
||||
'article' => '/${segments.join('/')}',
|
||||
'notes' => AppRoutes.noteList,
|
||||
'home' => AppRoutes.home,
|
||||
'inspiration' => AppRoutes.inspiration,
|
||||
'profile' => AppRoutes.profile,
|
||||
'discover' => AppRoutes.discover,
|
||||
'profile' => AppRoutes.profile,
|
||||
'inspiration' => AppRoutes.inspiration,
|
||||
'search' => AppRoutes.search,
|
||||
'favorites' => AppRoutes.favorites,
|
||||
'history' => AppRoutes.history,
|
||||
'tool' => segments.length > 1
|
||||
? _resolveToolPath('/${segments[1]}')
|
||||
: AppRoutes.inspiration,
|
||||
'tool' =>
|
||||
segments.length > 1
|
||||
? _resolveToolPath('/${segments[1]}')
|
||||
: AppRoutes.discover,
|
||||
'editor' => AppRoutes.editor,
|
||||
'weather' => segments.length > 1
|
||||
? AppRoutes.weatherSettings
|
||||
: AppRoutes.weather,
|
||||
'poetry' => segments.length > 1
|
||||
? AppRoutes.poetrySettings
|
||||
: AppRoutes.poetry,
|
||||
'weather' =>
|
||||
segments.length > 1 ? AppRoutes.weatherSettings : AppRoutes.weather,
|
||||
'poetry' =>
|
||||
segments.length > 1 ? AppRoutes.poetrySettings : AppRoutes.poetry,
|
||||
'settings' => _resolveSettingsPath('/${segments.skip(1).join('/')}'),
|
||||
'achievement' => AppRoutes.achievement,
|
||||
'rank' => AppRoutes.rank,
|
||||
@@ -246,7 +242,7 @@ class AppRouter {
|
||||
'/solar-term' => AppRoutes.solarTerm,
|
||||
'/knowledge-graph' => AppRoutes.knowledgeGraph,
|
||||
'/study-plan' => AppRoutes.studyPlan,
|
||||
_ => AppRoutes.inspiration,
|
||||
_ => AppRoutes.discover,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -277,9 +273,9 @@ class AppRouter {
|
||||
'article' => path,
|
||||
'notes' => AppRoutes.noteList,
|
||||
'home' => AppRoutes.home,
|
||||
'inspiration' => AppRoutes.inspiration,
|
||||
'profile' => AppRoutes.profile,
|
||||
'discover' => AppRoutes.discover,
|
||||
'profile' => AppRoutes.profile,
|
||||
'inspiration' => AppRoutes.inspiration,
|
||||
'search' => AppRoutes.search,
|
||||
'favorites' => AppRoutes.favorites,
|
||||
'history' => AppRoutes.history,
|
||||
@@ -308,8 +304,8 @@ String _resolveInitialLocation() {
|
||||
}
|
||||
final savedPage = KvStorage.getString('general_startup_page');
|
||||
final location = switch (savedPage) {
|
||||
'discover' => AppRoutes.discover,
|
||||
'inspiration' => AppRoutes.inspiration,
|
||||
'discover' => AppRoutes.discover,
|
||||
'profile' => AppRoutes.profile,
|
||||
_ => AppRoutes.home,
|
||||
};
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// ============================================================
|
||||
// 闲言APP — 路由路径常量 + 路由辅助组件
|
||||
// 创建时间: 2026-04-20
|
||||
// 更新时间: 2026-05-24
|
||||
// 更新时间: 2026-05-28
|
||||
// 作用: 集中管理所有路由路径字符串,供各路由模块和页面统一引用
|
||||
// 上次更新: 新增 appLockSettings 应用锁设置路由
|
||||
// 上次更新: 对调inspiration/discover路由路径,inspiration为子页面,discover为Tab主页面
|
||||
// ============================================================
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -13,7 +13,7 @@ class AppRoutes {
|
||||
AppRoutes._();
|
||||
|
||||
static const String home = '/home';
|
||||
static const String inspiration = '/inspiration';
|
||||
static const String discover = '/discover';
|
||||
static const String profile = '/profile';
|
||||
static const String editor = '/editor';
|
||||
static const String search = '/search';
|
||||
@@ -45,7 +45,8 @@ class AppRoutes {
|
||||
static const String offline = '/offline';
|
||||
static const String cacheManagement = '/cache';
|
||||
static const String readLater = '/readlater';
|
||||
static const String discover = '/discover';
|
||||
static const String inspiration = '/inspiration';
|
||||
static const String contentDiscover = '/content-discover';
|
||||
static const String categoryDetail = '/category/:type';
|
||||
static const String hotSearch = '/hot-search';
|
||||
static const String learning = '/learning';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// ============================================================
|
||||
// 闲言APP — 内容模块路由
|
||||
// 创建时间: 2026-05-22
|
||||
// 更新时间: 2026-05-22
|
||||
// 作用: 笔记、统计、纠错、发现、搜索、文章、诗词、运势等 GoRoute 定义
|
||||
// 上次更新: 从 app_router.dart 拆分
|
||||
// 更新时间: 2026-05-28
|
||||
// 作用: 笔记、统计、纠错、灵感、搜索、文章、诗词、运势等 GoRoute 定义
|
||||
// 上次更新: discover→inspiration路由对调,更新import路径
|
||||
// ============================================================
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -13,8 +13,9 @@ import '../../features/note/presentation/note_list_page.dart';
|
||||
import '../../features/note/presentation/note_edit_page.dart';
|
||||
import '../../features/tool_center/statistics/presentation/statistics_page.dart';
|
||||
import '../../features/correction/presentation/correction_page.dart';
|
||||
import '../../features/discover/presentation/discover_page.dart';
|
||||
import '../../features/discover/presentation/category_detail_page.dart';
|
||||
import '../../features/discover/presentation/pages/home/inspiration_page.dart';
|
||||
import '../../features/discover/presentation/pages/content/content_discover_page.dart';
|
||||
import '../../features/discover/presentation/pages/content/category_detail_page.dart';
|
||||
import '../../features/search/presentation/search_page.dart';
|
||||
import '../../features/search/presentation/hot_search_page.dart';
|
||||
import '../../features/classics/presentation/classics_page.dart';
|
||||
@@ -87,11 +88,18 @@ List<GoRoute> buildContentRoutes(
|
||||
iosSlideTransition(state: state, child: const CorrectionPage()),
|
||||
),
|
||||
GoRoute(
|
||||
path: AppRoutes.discover,
|
||||
name: 'discover',
|
||||
path: AppRoutes.inspiration,
|
||||
name: 'inspiration',
|
||||
parentNavigatorKey: rootNavigatorKey,
|
||||
pageBuilder: (context, state) =>
|
||||
iosSlideTransition(state: state, child: const DiscoverPage()),
|
||||
iosSlideTransition(state: state, child: const InspirationPage()),
|
||||
),
|
||||
GoRoute(
|
||||
path: AppRoutes.contentDiscover,
|
||||
name: 'content-discover',
|
||||
parentNavigatorKey: rootNavigatorKey,
|
||||
pageBuilder: (context, state) =>
|
||||
iosSlideTransition(state: state, child: const ContentDiscoverPage()),
|
||||
),
|
||||
GoRoute(
|
||||
path: AppRoutes.categoryDetail,
|
||||
@@ -261,10 +269,8 @@ List<GoRoute> buildContentRoutes(
|
||||
GoRoute(
|
||||
path: AppRoutes.leisure,
|
||||
name: 'leisure',
|
||||
pageBuilder: (context, state) => iosSlideTransition(
|
||||
state: state,
|
||||
child: const LeisureTimelinePage(),
|
||||
),
|
||||
pageBuilder: (context, state) =>
|
||||
iosSlideTransition(state: state, child: const LeisureTimelinePage()),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'settings',
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/// ============================================================
|
||||
/// 闲言APP — 鸿蒙端导航桥接
|
||||
/// 创建时间: 2026-05-18
|
||||
/// 更新时间: 2026-05-26
|
||||
/// 更新时间: 2026-05-28
|
||||
/// 作用: 鸿蒙端注册表+中间件路由架构,桥接GoRouter路由到Navigator.push
|
||||
/// 上次更新: v5.10.0 补全缺失路由(quick-card/editor子页面),修复readlater-chat缺少sessionType
|
||||
/// 上次更新: 更新import路径 tool_center/inspiration → discover
|
||||
/// ============================================================
|
||||
///
|
||||
/// ⚠️ 同步提醒:新增路由时,必须同时更新以下文件:
|
||||
@@ -33,7 +33,7 @@ import 'package:xianyan/features/home/presentation/providers/likes_page.dart';
|
||||
import 'package:xianyan/features/home/presentation/providers/readlater_page.dart';
|
||||
import 'package:xianyan/features/home/presentation/providers/offline_page.dart';
|
||||
import 'package:xianyan/features/home/presentation/cache_management_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/home/footprint_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/home/footprint_page.dart';
|
||||
import 'package:xianyan/features/mine/profile/presentation/about_page.dart';
|
||||
import 'package:xianyan/features/auth/presentation/login_page.dart';
|
||||
import 'package:xianyan/features/mine/signin/presentation/signin_page.dart';
|
||||
@@ -43,12 +43,12 @@ import 'package:xianyan/features/note/presentation/note_list_page.dart';
|
||||
import 'package:xianyan/features/note/presentation/note_edit_page.dart';
|
||||
import 'package:xianyan/features/tool_center/statistics/presentation/statistics_page.dart';
|
||||
import 'package:xianyan/features/correction/presentation/correction_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/tool/ocr_tool_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/tool/pinyin_tool_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/tool/china_colors_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/tool/calc_tool_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/tool/hanzi_tool_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/tool_list_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/tool/ocr_tool_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/tool/pinyin_tool_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/tool/china_colors_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/tool/calc_tool_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/tool/hanzi_tool_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/tool_list_page.dart';
|
||||
import 'package:xianyan/editor/pages/editor/editor_page.dart';
|
||||
import 'package:xianyan/editor/pages/tools/draft_list_page.dart';
|
||||
import 'package:xianyan/features/source/presentation/source_page.dart';
|
||||
@@ -68,8 +68,9 @@ import 'package:xianyan/features/mine/settings/presentation/more_settings_page.d
|
||||
import 'package:xianyan/features/mine/settings/presentation/privacy/permission_management_page.dart';
|
||||
import 'package:xianyan/features/mine/settings/presentation/privacy/privacy_policy_page.dart';
|
||||
import 'package:xianyan/features/mine/settings/presentation/privacy/log_viewer_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/discover_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/category_detail_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/home/inspiration_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/content/content_discover_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/content/category_detail_page.dart';
|
||||
import 'package:xianyan/features/search/presentation/hot_search_page.dart';
|
||||
import 'package:xianyan/features/search/presentation/user_preference_page.dart';
|
||||
import 'package:xianyan/features/mine/user_center/presentation/learning_center_page.dart';
|
||||
@@ -93,10 +94,10 @@ import 'package:xianyan/features/mine/user_center/presentation/user_center_page.
|
||||
import 'package:xianyan/features/mine/user_center/presentation/tag_cloud_page.dart';
|
||||
import 'package:xianyan/features/mine/user_center/presentation/user_debug_page.dart';
|
||||
import 'package:xianyan/features/tool_center/statistics/presentation/user_stats_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/chat/chat_flow_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/models/chat_session.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/chat/chat_settings_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/chat/hidden_sessions_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/chat/chat_flow_page.dart';
|
||||
import 'package:xianyan/features/discover/models/chat_session.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/chat/chat_settings_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/chat/hidden_sessions_page.dart';
|
||||
import 'package:xianyan/features/file_transfer/presentation/pages/file_transfer_page.dart';
|
||||
import 'package:xianyan/features/file_transfer/presentation/pages/device_pairing_page.dart';
|
||||
import 'package:xianyan/features/daily_card/presentation/daily_card_page.dart';
|
||||
@@ -115,8 +116,8 @@ import 'package:xianyan/features/progress/presentation/progress_page.dart';
|
||||
import 'package:xianyan/features/share/presentation/share_history_page.dart';
|
||||
import 'package:xianyan/features/share/presentation/share_target_edit_page.dart';
|
||||
import 'package:xianyan/features/file_transfer/collaboration/clipboard/pages/clipboard_flow_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/translate/translate_page.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/presentation/pages/translate/translate_settings_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/translate/translate_page.dart';
|
||||
import 'package:xianyan/features/discover/presentation/pages/translate/translate_settings_page.dart';
|
||||
import 'package:xianyan/features/widget/presentation/widget_management_page.dart';
|
||||
import 'package:xianyan/features/onboarding/presentation/onboarding_page.dart';
|
||||
import 'package:xianyan/features/weather/presentation/weather_settings_page.dart';
|
||||
@@ -416,7 +417,14 @@ class OhosNavBridge {
|
||||
builder: (_) => const LogViewerPage(),
|
||||
),
|
||||
OhosRouteEntry(pattern: '/crash-log', builder: (_) => const CrashLogPage()),
|
||||
OhosRouteEntry(pattern: '/discover', builder: (_) => const DiscoverPage()),
|
||||
OhosRouteEntry(
|
||||
pattern: '/inspiration',
|
||||
builder: (_) => const InspirationPage(),
|
||||
),
|
||||
OhosRouteEntry(
|
||||
pattern: '/content-discover',
|
||||
builder: (_) => const ContentDiscoverPage(),
|
||||
),
|
||||
OhosRouteEntry(
|
||||
pattern: '/hot-search',
|
||||
builder: (_) => const HotSearchPage(),
|
||||
@@ -854,7 +862,7 @@ class OhosNavBridge {
|
||||
static int? _tabIndexFromRoute(String route) {
|
||||
return switch (route) {
|
||||
'/home' => 0,
|
||||
'/inspiration' => 1,
|
||||
'/discover' => 1,
|
||||
'/profile' => 2,
|
||||
_ => null,
|
||||
};
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
// ============================================================
|
||||
// 闲言APP — 工具中心路由
|
||||
// 创建时间: 2026-05-22
|
||||
// 更新时间: 2026-05-22
|
||||
// 更新时间: 2026-05-28
|
||||
// 作用: 工具中心、AI聊天、翻译、文件传输、协作相关 GoRoute 定义
|
||||
// 上次更新: 从 app_router.dart 拆分
|
||||
// 上次更新: 更新import路径 tool_center/inspiration → discover
|
||||
// ============================================================
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import '../../features/tool_center/inspiration/presentation/pages/tool/hanzi_tool_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/tool/calc_tool_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/tool/china_colors_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/tool_list_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/tool/ocr_tool_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/tool/pinyin_tool_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/chat/chat_flow_page.dart';
|
||||
import '../../features/tool_center/inspiration/models/chat_session.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/chat/chat_settings_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/chat/hidden_sessions_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/translate/translate_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/translate/translate_settings_page.dart';
|
||||
import '../../features/discover/presentation/pages/tool/hanzi_tool_page.dart';
|
||||
import '../../features/discover/presentation/pages/tool/calc_tool_page.dart';
|
||||
import '../../features/discover/presentation/pages/tool/china_colors_page.dart';
|
||||
import '../../features/discover/presentation/pages/tool_list_page.dart';
|
||||
import '../../features/discover/presentation/pages/tool/ocr_tool_page.dart';
|
||||
import '../../features/discover/presentation/pages/tool/pinyin_tool_page.dart';
|
||||
import '../../features/discover/presentation/pages/chat/chat_flow_page.dart';
|
||||
import '../../features/discover/models/chat_session.dart';
|
||||
import '../../features/discover/presentation/pages/chat/chat_settings_page.dart';
|
||||
import '../../features/discover/presentation/pages/chat/hidden_sessions_page.dart';
|
||||
import '../../features/discover/presentation/pages/translate/translate_page.dart';
|
||||
import '../../features/discover/presentation/pages/translate/translate_settings_page.dart';
|
||||
import '../../features/file_transfer/presentation/pages/file_transfer_page.dart';
|
||||
import '../../features/file_transfer/presentation/pages/transfer_chat_page.dart';
|
||||
import '../../features/file_transfer/presentation/pages/device_pairing_page.dart';
|
||||
|
||||
@@ -19,7 +19,7 @@ import '../../features/home/presentation/providers/likes_page.dart';
|
||||
import '../../features/home/presentation/providers/offline_page.dart';
|
||||
import '../../features/home/presentation/cache_management_page.dart';
|
||||
import '../../features/home/presentation/providers/readlater_page.dart';
|
||||
import '../../features/tool_center/inspiration/presentation/pages/home/footprint_page.dart';
|
||||
import '../../features/discover/presentation/pages/home/footprint_page.dart';
|
||||
import '../../features/mine/member/presentation/member_page.dart';
|
||||
import '../../features/widget/presentation/widget_management_page.dart';
|
||||
import '../../features/mine/profile/presentation/about_page.dart';
|
||||
|
||||
@@ -14,7 +14,7 @@ import 'package:flutter/services.dart';
|
||||
import '../../core/storage/kv_storage.dart';
|
||||
import '../../core/utils/logger.dart';
|
||||
import '../../shared/widgets/feedback/app_toast.dart';
|
||||
import '../../features/tool_center/inspiration/services/chat_message_service.dart';
|
||||
import '../../features/discover/services/chat_message_service.dart';
|
||||
|
||||
class ClipboardMonitorService {
|
||||
ClipboardMonitorService._();
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// 上次更新: 初始版本,合并两套IP服务模型
|
||||
// ============================================================
|
||||
|
||||
import 'package:xianyan/features/tool_center/inspiration/services/ip_query_service.dart'
|
||||
import 'package:xianyan/features/discover/services/ip_query_service.dart'
|
||||
as inspiration;
|
||||
import 'package:xianyan/features/file_transfer/models/ip_location_result.dart'
|
||||
as transfer;
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
import '../../../core/constants/app_constants.dart';
|
||||
import '../../../core/utils/logger.dart';
|
||||
import '../../../features/tool_center/inspiration/models/chat_message.dart';
|
||||
import '../../../features/discover/models/chat_message.dart';
|
||||
|
||||
class ReadlaterAiService {
|
||||
ReadlaterAiService._();
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
import '../../../core/constants/app_constants.dart';
|
||||
import '../../../core/utils/logger.dart';
|
||||
import '../../../features/tool_center/inspiration/models/chat_message.dart';
|
||||
import '../../../features/discover/models/chat_message.dart';
|
||||
|
||||
// ============================================================
|
||||
// 共享列表数据模型
|
||||
|
||||
@@ -15,8 +15,8 @@ import 'package:path_provider/path_provider.dart';
|
||||
import 'package:xianyan/core/utils/logger.dart';
|
||||
import 'package:xianyan/features/file_transfer/models/transfer_device.dart';
|
||||
import 'package:xianyan/features/file_transfer/providers/transfer_provider.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/models/chat_message.dart';
|
||||
import 'package:xianyan/features/tool_center/inspiration/services/chat_message_service.dart';
|
||||
import 'package:xianyan/features/discover/models/chat_message.dart';
|
||||
import 'package:xianyan/features/discover/services/chat_message_service.dart';
|
||||
import 'package:xianyan/shared/widgets/feedback/app_toast.dart';
|
||||
|
||||
class ReadlaterDeviceSyncService {
|
||||
|
||||
@@ -13,7 +13,7 @@ import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
import '../../../core/constants/app_constants.dart';
|
||||
import '../../../core/storage/kv_storage.dart';
|
||||
import '../../../core/utils/logger.dart';
|
||||
import '../../../features/tool_center/inspiration/models/chat_message.dart';
|
||||
import '../../../features/discover/models/chat_message.dart';
|
||||
|
||||
// ============================================================
|
||||
// 同步结果模型
|
||||
|
||||
@@ -17,7 +17,7 @@ import 'package:xianyan/core/router/app_nav_extension.dart';
|
||||
|
||||
import '../../../core/utils/logger.dart';
|
||||
import '../../../core/router/app_router.dart';
|
||||
import '../../../features/tool_center/inspiration/services/chat_message_service.dart';
|
||||
import '../../../features/discover/services/chat_message_service.dart';
|
||||
import '../../../shared/widgets/feedback/app_toast.dart';
|
||||
import 'safe_sharing_receiver.dart';
|
||||
|
||||
|
||||
@@ -1849,6 +1849,18 @@ class AppDatabase extends _$AppDatabase {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> softDeleteAllChatMsgRecords(String conversationId) {
|
||||
return (update(chatMsgRecords)..where(
|
||||
(t) =>
|
||||
t.conversationId.equals(conversationId) & t.isDeleted.equals(false),
|
||||
))
|
||||
.write(ChatMsgRecordsCompanion(
|
||||
isDeleted: const Value(true),
|
||||
deletedAt: Value(DateTime.now()),
|
||||
updatedAt: Value(DateTime.now()),
|
||||
));
|
||||
}
|
||||
|
||||
Future<void> restoreChatMsgRecord(String id) {
|
||||
return (update(chatMsgRecords)..where((t) => t.id.equals(id))).write(
|
||||
ChatMsgRecordsCompanion(
|
||||
|
||||
Reference in New Issue
Block a user