feat(flutter): 接入分类记录收藏与下载授权

This commit is contained in:
Zhou Weidong committed 2026-10-17 14:49:16 +08:00
1 parent 00280ca0da
commit cc4d7c5a9d
52 files changed
+4440 -171

No files matched your search

+36 -5
View File
@@ -17,6 +17,9 @@ import '../../core/theme/app_colors.dart';
import '../../l10n/app_localizations.dart';
import 'mine_binding.dart';
import 'mine_logic.dart';
import '../watch_records/watch_records_page.dart';
import '../favorites/favorites_page.dart';
import '../downloads/downloads_page.dart';
class MyPage extends StatefulWidget {
const MyPage({
@@ -25,7 +28,6 @@ class MyPage extends StatefulWidget {
required this.duration,
this.initialSection = 0,
this.profile = false,
this.onOpenHistory,
this.history,
this.embedded = false,
this.active = true,
@@ -42,7 +44,6 @@ class MyPage extends StatefulWidget {
final Duration duration;
final int initialSection;
final bool profile;
final VoidCallback? onOpenHistory;
final WatchHistoryRepository? history;
final bool embedded;
final bool active;
@@ -249,8 +250,12 @@ class _MyPageState extends State<MyPage> {
Widget _signedInRow(AppLocalizations l10n) {
// 显示真实登录账号(昵称 + uid);拿不到才回落到演示文案
final user = context.watch<AuthController>().user;
final name = (user?.nickname.isNotEmpty ?? false) ? user!.nickname : l10n.mockUserName;
final uidText = (user?.uid.isNotEmpty ?? false) ? 'ID: ${user!.uid}' : l10n.mockUserId;
final name = (user?.nickname.isNotEmpty ?? false)
? user!.nickname
: l10n.mockUserName;
final uidText = (user?.uid.isNotEmpty ?? false)
? 'ID: ${user!.uid}'
: l10n.mockUserId;
return Row(
children: [
const CircleAvatar(
@@ -414,7 +419,33 @@ class _MyPageState extends State<MyPage> {
),
title: Text(l10n.watchHistory),
trailing: const Icon(Icons.chevron_right_rounded),
onTap: widget.onOpenHistory,
onTap: () => Navigator.of(context).push<void>(
MaterialPageRoute(builder: (_) => const WatchRecordsPage()),
),
),
const Divider(height: 1, color: Color(0xFF2A2C33)),
ListTile(
leading: const Icon(
Icons.favorite_outline_rounded,
color: AppColors.blueSoft,
),
title: Text(l10n.myFavorites),
trailing: const Icon(Icons.chevron_right_rounded),
onTap: () => Navigator.of(context).push<void>(
MaterialPageRoute(builder: (_) => const FavoritesPage()),
),
),
const Divider(height: 1, color: Color(0xFF2A2C33)),
ListTile(
leading: const Icon(
Icons.download_outlined,
color: AppColors.blueSoft,
),
title: Text(l10n.downloads),
trailing: const Icon(Icons.chevron_right_rounded),
onTap: () => Navigator.of(context).push<void>(
MaterialPageRoute(builder: (_) => const DownloadsPage()),
),
),
const Divider(height: 1, color: Color(0xFF2A2C33)),
ListTile(