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

+120 -3
View File
@@ -1,5 +1,3 @@
// Author: fruit.com.cn
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
@@ -296,6 +294,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get catalogError => 'The catalog could not be loaded.';
@override
String get categoriesError => 'Categories could not be loaded.';
@override
String get detailError => 'The episode list could not be loaded.';
@@ -546,7 +547,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get authGateTitle => 'Sign in to continue';
@override
String get authGateMessage => 'Favorites and comments need an account.';
String get authGateMessage =>
'Watch history, favorites, comments and downloads need an account.';
@override
String get authGateAction => 'Sign In';
@@ -571,6 +573,121 @@ class AppLocalizationsEn extends AppLocalizations {
String get favoriteToggleFailed =>
'Could not update favorites. Please retry.';
@override
String get myFavorites => 'My favorites';
@override
String get noFavorites => 'No favorites yet.';
@override
String get downloads => 'Downloads';
@override
String get downloadsError => 'Download settings could not be loaded.';
@override
String get noDownloads => 'No download authorizations yet.';
@override
String get downloadedItems => 'Download authorizations';
@override
String downloadQuota(int remaining, int max) {
return '$remaining of $max authorizations available';
}
@override
String downloadLicenseDays(int days) {
return 'Authorization valid for $days days';
}
@override
String get downloadWifiOnly => 'Wi-Fi only';
@override
String get downloadQuality => 'Maximum quality';
@override
String downloadStatus(Object status) {
return 'Authorization: $status';
}
@override
String downloadTaskStatus(Object status) {
return 'Task: $status';
}
@override
String downloadProgress(int progress) {
return '$progress%';
}
@override
String downloadExpiresAt(Object time) {
return 'Expires $time';
}
@override
String get clearDownloadsTitle => 'Clear download authorizations?';
@override
String get clearDownloadsMessage =>
'This revokes every download authorization for this device.';
@override
String get downloadSettingsFailed => 'Could not update download settings.';
@override
String get downloadDeleteFailed =>
'Could not remove this download authorization.';
@override
String get downloadClearFailed => 'Could not clear download authorizations.';
@override
String get downloadGrantFailed => 'Could not request this download.';
@override
String get downloadGranted => 'Download authorization is ready.';
@override
String get noWatchRecords => 'No watch history yet.';
@override
String get recordDeleteFailed =>
'Could not delete this record. Please retry.';
@override
String get recordClearFailed =>
'Could not clear watch history. Please retry.';
@override
String get clearAll => 'Clear all';
@override
String get clearWatchHistoryTitle => 'Clear watch history?';
@override
String get clearWatchHistoryMessage =>
'This removes the watch history from your account.';
@override
String get confirmClear => 'Clear';
@override
String get detailLoadFailed => 'Details failed to load';
@override
String get retryDetail => 'Retry';
@override
String get episodeUnavailable => 'Episode unavailable';
@override
String updatedAtLabel(Object time) {
return 'Updated $time';
}
@override
String get remove => 'Remove';