feat(flutter): 应用克莱因蓝主题与印尼语适配

This commit is contained in:
Zhou Weidong committed 2026-10-17 15:58:17 +08:00
1 parent e1147cfcba
commit 10d448c8ba
31 files changed
+891 -521

No files matched your search

+17 -19
View File
@@ -10,7 +10,9 @@ import '../../core/data/models/download_policy.dart';
import '../../core/data/services/auth_controller.dart';
import '../../core/data/services/download_controller.dart';
import '../../core/formatting/error_text.dart';
import '../../core/formatting/localized_date_time.dart';
import '../../core/theme/app_colors.dart';
import '../../core/theme/app_theme.dart';
import '../../core/widgets/auth_gate.dart';
import '../../l10n/app_localizations.dart';
import 'downloads_binding.dart';
@@ -46,17 +48,20 @@ class _DownloadsPageState extends State<DownloadsPage> {
Widget build(BuildContext context) {
final l10n = AppLocalizations.of(context)!;
final signedIn = context.watch<AuthController>().isSignedIn;
return Scaffold(
key: const Key('downloads-page'),
backgroundColor: const Color(0xFF0B0C10),
appBar: AppBar(
return Theme(
data: AppTheme.dark(),
child: Scaffold(
key: const Key('downloads-page'),
backgroundColor: const Color(0xFF0B0C10),
foregroundColor: Colors.white,
title: Text(l10n.downloads),
appBar: AppBar(
backgroundColor: const Color(0xFF0B0C10),
foregroundColor: Colors.white,
title: Text(l10n.downloads),
),
body: signedIn
? _DownloadsBody(downloads: context.watch<DownloadController>())
: const AuthGatePanel(),
),
body: signedIn
? _DownloadsBody(downloads: context.watch<DownloadController>())
: const AuthGatePanel(),
);
}
}
@@ -380,7 +385,9 @@ class _LicenseTile extends StatelessWidget {
if (license.expireAt != null) ...[
const SizedBox(height: 7),
Text(
l10n.downloadExpiresAt(_formatTime(license.expireAt!)),
l10n.downloadExpiresAt(
formatLocalizedDateTime(context, license.expireAt!),
),
style: const TextStyle(color: Color(0xFF8D8990), fontSize: 11),
),
],
@@ -398,12 +405,3 @@ List<String> _qualityChoices(String current) {
}
return choices;
}
String _formatTime(DateTime value) {
final local = value.toLocal();
final month = local.month.toString().padLeft(2, '0');
final day = local.day.toString().padLeft(2, '0');
final hour = local.hour.toString().padLeft(2, '0');
final minute = local.minute.toString().padLeft(2, '0');
return '${local.year}-$month-$day $hour:$minute';
}