feat: phase1 UI prep — 设备ID系统传递 + 国家本地化展示 + 继续观看直进播放页

设备标识: Android SSAID/ iOS IDFV 原生通道 → Dart DeviceIdProvider
国家解析: 注册/登录从后端 IP → 国家/语言/时区/币种 自动落库
账号资料: 全部本地化展示 (account_display.dart)
我的页: 继续观看卡片点击直接进播放页
This commit is contained in:
Vicky authored and trae-solo-agent committed 2026-10-27 15:45:20 +08:00
1 parent 1b19513efb
commit a3f3481f4f
15 files changed
+468 -25

No files matched your search

+30 -7
View File
@@ -8,6 +8,7 @@ import 'package:provider/provider.dart';
import '../../core/data/models/account_profile.dart';
import '../../core/data/repositories/account_repository.dart';
import '../../core/data/services/auth_controller.dart';
import '../../core/formatting/account_display.dart';
import '../../core/formatting/error_text.dart';
import '../../core/formatting/localized_date_time.dart';
import '../../core/theme/app_colors.dart';
@@ -225,6 +226,7 @@ class _AccountProfilePageState extends State<AccountProfilePage> {
);
Widget _readOnlyCard(AccountProfile profile, AppLocalizations l10n) {
final localeName = Localizations.localeOf(context).languageCode;
return _AccountCard(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -238,13 +240,34 @@ class _AccountProfilePageState extends State<AccountProfilePage> {
),
const SizedBox(height: 10),
_info(l10n.accountMaskedAccount, profile.maskedTarget),
_info(l10n.accountCountry, profile.countryCode),
_info(
l10n.accountCountry,
countryName(profile.countryCode, localeName),
),
_info(l10n.accountCurrency, profile.currency),
_info(l10n.accountStatus, profile.status),
_info(l10n.accountLanguage, profile.language),
_info(l10n.accountTimezone, profile.timezone),
_info(l10n.accountRegion, profile.regionCode),
_info(l10n.accountVipLevel, '${profile.vipLevel}'),
_info(
l10n.accountStatus,
accountStatusText(profile.status, localeName),
),
_info(
l10n.accountLanguage,
languageName(profile.language, localeName),
),
_info(
l10n.accountTimezone,
timezoneName(profile.timezone, localeName),
),
// region 与 country 后端写的是同一个值,重复时不再单列一行
if (profile.regionCode.isNotEmpty &&
profile.regionCode != profile.countryCode)
_info(
l10n.accountRegion,
countryName(profile.regionCode, localeName),
),
_info(
l10n.accountVipLevel,
vipLevelText(profile.vipLevel, localeName),
),
if (profile.createdAt != null)
_info(
l10n.accountCreatedAt,
@@ -275,7 +298,7 @@ class _AccountProfilePageState extends State<AccountProfilePage> {
),
Flexible(
child: Text(
value.isEmpty ? '-' : value,
value.isEmpty ? '—' : value,
textAlign: TextAlign.right,
style: const TextStyle(fontSize: AppDimens.body),
),