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

@@ -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';

View File

@@ -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(),
];

View File

@@ -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,

View File

@@ -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,
};

View File

@@ -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';

View File

@@ -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',

View File

@@ -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,
};

View File

@@ -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';

View File

@@ -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';

View File

@@ -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._();

View File

@@ -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;

View File

@@ -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._();

View File

@@ -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';
// ============================================================
// 共享列表数据模型

View File

@@ -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 {

View File

@@ -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';
// ============================================================
// 同步结果模型

View File

@@ -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';

View File

@@ -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(