mirror of
https://github.com/stonega/tsacdop
synced 2025-02-18 04:20:37 +01:00
Localize support, add zh_hans support
This commit is contained in:
parent
6ad2c7dc44
commit
7e365dbb87
@ -16,16 +16,20 @@ import 'package:intl/message_lookup_by_library.dart';
|
|||||||
import 'package:intl/src/intl_helpers.dart';
|
import 'package:intl/src/intl_helpers.dart';
|
||||||
|
|
||||||
import 'messages_en.dart' as messages_en;
|
import 'messages_en.dart' as messages_en;
|
||||||
|
import 'messages_zh-Hans.dart' as messages_zh_hans;
|
||||||
|
|
||||||
typedef Future<dynamic> LibraryLoader();
|
typedef Future<dynamic> LibraryLoader();
|
||||||
Map<String, LibraryLoader> _deferredLibraries = {
|
Map<String, LibraryLoader> _deferredLibraries = {
|
||||||
'en': () => new Future.value(null),
|
'en': () => new Future.value(null),
|
||||||
|
'zh_Hans': () => new Future.value(null),
|
||||||
};
|
};
|
||||||
|
|
||||||
MessageLookupByLibrary _findExact(String localeName) {
|
MessageLookupByLibrary _findExact(String localeName) {
|
||||||
switch (localeName) {
|
switch (localeName) {
|
||||||
case 'en':
|
case 'en':
|
||||||
return messages_en.messages;
|
return messages_en.messages;
|
||||||
|
case 'zh_Hans':
|
||||||
|
return messages_zh_hans.messages;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -21,18 +21,124 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||||
static _notInlinedMessages(_) => <String, Function> {
|
static _notInlinedMessages(_) => <String, Function> {
|
||||||
|
"all" : MessageLookupByLibrary.simpleMessage("All"),
|
||||||
|
"cancel" : MessageLookupByLibrary.simpleMessage("Cancel"),
|
||||||
|
"chooseA" : MessageLookupByLibrary.simpleMessage("Choose a"),
|
||||||
|
"color" : MessageLookupByLibrary.simpleMessage("color"),
|
||||||
|
"confirm" : MessageLookupByLibrary.simpleMessage("Confirm"),
|
||||||
|
"darkMode" : MessageLookupByLibrary.simpleMessage("Dark mode"),
|
||||||
|
"delete" : MessageLookupByLibrary.simpleMessage("Delete"),
|
||||||
|
"download" : MessageLookupByLibrary.simpleMessage("Download"),
|
||||||
|
"editName" : MessageLookupByLibrary.simpleMessage("Edit name"),
|
||||||
|
"endOfEpisode" : MessageLookupByLibrary.simpleMessage("End of Episode"),
|
||||||
|
"feedbackEmail" : MessageLookupByLibrary.simpleMessage("Write to me"),
|
||||||
|
"feedbackGithub" : MessageLookupByLibrary.simpleMessage("Submit issue"),
|
||||||
|
"feedbackPlay" : MessageLookupByLibrary.simpleMessage("Rate on Play"),
|
||||||
|
"feedbackTelegram" : MessageLookupByLibrary.simpleMessage("Join group"),
|
||||||
|
"from" : MessageLookupByLibrary.simpleMessage("From"),
|
||||||
|
"groups" : MessageLookupByLibrary.simpleMessage("Groups"),
|
||||||
"homeGroupsSeeAll" : MessageLookupByLibrary.simpleMessage("See All"),
|
"homeGroupsSeeAll" : MessageLookupByLibrary.simpleMessage("See All"),
|
||||||
"homeMenuPlaylist" : MessageLookupByLibrary.simpleMessage("Playlist"),
|
"homeMenuPlaylist" : MessageLookupByLibrary.simpleMessage("Playlist"),
|
||||||
"homeSubMenuDownloaded" : MessageLookupByLibrary.simpleMessage("Downloaded"),
|
"homeSubMenuDownloaded" : MessageLookupByLibrary.simpleMessage("Downloaded"),
|
||||||
"homeSubMenuLikeData" : MessageLookupByLibrary.simpleMessage("Like Date"),
|
"homeSubMenuLikeData" : MessageLookupByLibrary.simpleMessage("Like Date"),
|
||||||
"homeSubMenuSortBy" : MessageLookupByLibrary.simpleMessage("Sort by"),
|
"homeSubMenuSortBy" : MessageLookupByLibrary.simpleMessage("Sort by"),
|
||||||
"homeSubMenuUpdateDate" : MessageLookupByLibrary.simpleMessage("UpdateDate"),
|
"homeSubMenuUpdateDate" : MessageLookupByLibrary.simpleMessage("Update Date"),
|
||||||
"homeTabMenuDownload" : MessageLookupByLibrary.simpleMessage("Download"),
|
|
||||||
"homeTabMenuFavotite" : MessageLookupByLibrary.simpleMessage("Favorite"),
|
"homeTabMenuFavotite" : MessageLookupByLibrary.simpleMessage("Favorite"),
|
||||||
"homeTabMenuRecent" : MessageLookupByLibrary.simpleMessage("Recent"),
|
"homeTabMenuRecent" : MessageLookupByLibrary.simpleMessage("Recent"),
|
||||||
"homeToprightMenuAbout" : MessageLookupByLibrary.simpleMessage("About"),
|
"homeToprightMenuAbout" : MessageLookupByLibrary.simpleMessage("About"),
|
||||||
"homeToprightMenuImportOMPL" : MessageLookupByLibrary.simpleMessage("Import OMPL"),
|
"homeToprightMenuImportOMPL" : MessageLookupByLibrary.simpleMessage("Import OMPL"),
|
||||||
"homeToprightMenuRefreshAll" : MessageLookupByLibrary.simpleMessage("Refresh all"),
|
"homeToprightMenuRefreshAll" : MessageLookupByLibrary.simpleMessage("Refresh all"),
|
||||||
"homeToprightMenuSettings" : MessageLookupByLibrary.simpleMessage("Settings")
|
"homeToprightMenuSettings" : MessageLookupByLibrary.simpleMessage("Settings"),
|
||||||
|
"later" : MessageLookupByLibrary.simpleMessage("Later"),
|
||||||
|
"lightMode" : MessageLookupByLibrary.simpleMessage("Light mode"),
|
||||||
|
"like" : MessageLookupByLibrary.simpleMessage("Like"),
|
||||||
|
"liked" : MessageLookupByLibrary.simpleMessage("Liked"),
|
||||||
|
"listen" : MessageLookupByLibrary.simpleMessage("Listen"),
|
||||||
|
"listened" : MessageLookupByLibrary.simpleMessage("Listened"),
|
||||||
|
"markListened" : MessageLookupByLibrary.simpleMessage("Mark listened"),
|
||||||
|
"menu" : MessageLookupByLibrary.simpleMessage("Menu"),
|
||||||
|
"menuAllPodcasts" : MessageLookupByLibrary.simpleMessage("All podcasts"),
|
||||||
|
"menuMarkAllListened" : MessageLookupByLibrary.simpleMessage("Mark All Listened"),
|
||||||
|
"menuMarkListened" : MessageLookupByLibrary.simpleMessage("Mark Listened"),
|
||||||
|
"menuViewRSS" : MessageLookupByLibrary.simpleMessage("Visit RSS Feed"),
|
||||||
|
"menuVisitSite" : MessageLookupByLibrary.simpleMessage("Visit Site"),
|
||||||
|
"network" : MessageLookupByLibrary.simpleMessage("Network"),
|
||||||
|
"newGroup" : MessageLookupByLibrary.simpleMessage("Create new group"),
|
||||||
|
"play" : MessageLookupByLibrary.simpleMessage("Play"),
|
||||||
|
"popupMenuDownloadDes" : MessageLookupByLibrary.simpleMessage("Download episode"),
|
||||||
|
"popupMenuLaterDes" : MessageLookupByLibrary.simpleMessage("Add episode to playlist"),
|
||||||
|
"popupMenuLikeDes" : MessageLookupByLibrary.simpleMessage("Add episode to favorite"),
|
||||||
|
"popupMenuMarkDes" : MessageLookupByLibrary.simpleMessage("Mark episode as listened"),
|
||||||
|
"popupMenuPlayDes" : MessageLookupByLibrary.simpleMessage("Play the episode"),
|
||||||
|
"remove" : MessageLookupByLibrary.simpleMessage("Remove"),
|
||||||
|
"schedule" : MessageLookupByLibrary.simpleMessage("Schedule"),
|
||||||
|
"searchPodcast" : MessageLookupByLibrary.simpleMessage("Search podcast"),
|
||||||
|
"settingStorage" : MessageLookupByLibrary.simpleMessage("Storage"),
|
||||||
|
"settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Accent color"),
|
||||||
|
"settingsAccentColorDes" : MessageLookupByLibrary.simpleMessage("Include the ovelay color"),
|
||||||
|
"settingsAppIntro" : MessageLookupByLibrary.simpleMessage("App Intro"),
|
||||||
|
"settingsAppearance" : MessageLookupByLibrary.simpleMessage("Appearance"),
|
||||||
|
"settingsAppearanceDes" : MessageLookupByLibrary.simpleMessage("Colors and themes"),
|
||||||
|
"settingsAudioCache" : MessageLookupByLibrary.simpleMessage("Audio cache"),
|
||||||
|
"settingsAudioCacheDes" : MessageLookupByLibrary.simpleMessage("Audio cache max size"),
|
||||||
|
"settingsAutoDelete" : MessageLookupByLibrary.simpleMessage("Auto delete downloads after"),
|
||||||
|
"settingsAutoDeleteDes" : MessageLookupByLibrary.simpleMessage("Default 30 days"),
|
||||||
|
"settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("Auto play next episode in playlist"),
|
||||||
|
"settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("Default grid view"),
|
||||||
|
"settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("Download tab"),
|
||||||
|
"settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("Favorite tab"),
|
||||||
|
"settingsDefaultGridPodcast" : MessageLookupByLibrary.simpleMessage("Podcast page"),
|
||||||
|
"settingsDefaultGridRecent" : MessageLookupByLibrary.simpleMessage("Recent tab"),
|
||||||
|
"settingsDiscovery" : MessageLookupByLibrary.simpleMessage("Discovery Features Again"),
|
||||||
|
"settingsEnableSyncing" : MessageLookupByLibrary.simpleMessage("Enable Syncing"),
|
||||||
|
"settingsEnableSyncingDes" : MessageLookupByLibrary.simpleMessage("Refresh all podcasts in the background to get leatest episodes"),
|
||||||
|
"settingsExport" : MessageLookupByLibrary.simpleMessage("Export"),
|
||||||
|
"settingsExportDes" : MessageLookupByLibrary.simpleMessage("Export OMPL file of all podcasts"),
|
||||||
|
"settingsFeedback" : MessageLookupByLibrary.simpleMessage("Feedback"),
|
||||||
|
"settingsFeedbackDes" : MessageLookupByLibrary.simpleMessage("Bugs and feature request"),
|
||||||
|
"settingsHistory" : MessageLookupByLibrary.simpleMessage("History"),
|
||||||
|
"settingsHistoryDes" : MessageLookupByLibrary.simpleMessage("Listen date"),
|
||||||
|
"settingsInfo" : MessageLookupByLibrary.simpleMessage("Info"),
|
||||||
|
"settingsInterface" : MessageLookupByLibrary.simpleMessage("Interface"),
|
||||||
|
"settingsLayout" : MessageLookupByLibrary.simpleMessage("Layout"),
|
||||||
|
"settingsLayoutDes" : MessageLookupByLibrary.simpleMessage("App layout"),
|
||||||
|
"settingsLibraries" : MessageLookupByLibrary.simpleMessage("Libraries"),
|
||||||
|
"settingsLibrariesDes" : MessageLookupByLibrary.simpleMessage("Open source libraries used in app"),
|
||||||
|
"settingsManageDownload" : MessageLookupByLibrary.simpleMessage("Manage download"),
|
||||||
|
"settingsManageDownloadDes" : MessageLookupByLibrary.simpleMessage("Manage downloaded audio files"),
|
||||||
|
"settingsMenuAutoPlay" : MessageLookupByLibrary.simpleMessage("Auto play next"),
|
||||||
|
"settingsNetworkCellular" : MessageLookupByLibrary.simpleMessage("Ask before using cellular data"),
|
||||||
|
"settingsNetworkCellularAuto" : MessageLookupByLibrary.simpleMessage("Auto download using cellular data"),
|
||||||
|
"settingsNetworkCellularAutoDes" : MessageLookupByLibrary.simpleMessage("You can set podcast auto download in group manage page"),
|
||||||
|
"settingsNetworkCellularDes" : MessageLookupByLibrary.simpleMessage("Ask to confirm when using cellulae data to download episodes"),
|
||||||
|
"settingsPlayDes" : MessageLookupByLibrary.simpleMessage("Playlist and player"),
|
||||||
|
"settingsPopupMenu" : MessageLookupByLibrary.simpleMessage("Episodes popup menu"),
|
||||||
|
"settingsPopupMenuDes" : MessageLookupByLibrary.simpleMessage("Change the popup menu of episode"),
|
||||||
|
"settingsPrefrence" : MessageLookupByLibrary.simpleMessage("Prefrence"),
|
||||||
|
"settingsRealDark" : MessageLookupByLibrary.simpleMessage("Real dark"),
|
||||||
|
"settingsRealDarkDes" : MessageLookupByLibrary.simpleMessage("Turn on if you think the night is not dark enough"),
|
||||||
|
"settingsSTAuto" : MessageLookupByLibrary.simpleMessage("Auto turn on sleep timer"),
|
||||||
|
"settingsSTAutoDes" : MessageLookupByLibrary.simpleMessage("Auto start sleep timer at scheduled time"),
|
||||||
|
"settingsSTDefaultTime" : MessageLookupByLibrary.simpleMessage("Default time"),
|
||||||
|
"settingsSTDefautTimeDes" : MessageLookupByLibrary.simpleMessage("Default time for sleep timer"),
|
||||||
|
"settingsSTMode" : MessageLookupByLibrary.simpleMessage("Auto sleep timer mode"),
|
||||||
|
"settingsStorageDes" : MessageLookupByLibrary.simpleMessage("Manange cache and download storage"),
|
||||||
|
"settingsSyncing" : MessageLookupByLibrary.simpleMessage("Syncing"),
|
||||||
|
"settingsSyncingDes" : MessageLookupByLibrary.simpleMessage("Refresh podcasts in the background"),
|
||||||
|
"settingsTheme" : MessageLookupByLibrary.simpleMessage("Theme"),
|
||||||
|
"settingsUpdateInterval" : MessageLookupByLibrary.simpleMessage("Update interval"),
|
||||||
|
"settingsUpdateIntervalDes" : MessageLookupByLibrary.simpleMessage("Default 24 hours"),
|
||||||
|
"sleepTimer" : MessageLookupByLibrary.simpleMessage("Sleep timer"),
|
||||||
|
"subscribe" : MessageLookupByLibrary.simpleMessage("Subscribe"),
|
||||||
|
"systemDefault" : MessageLookupByLibrary.simpleMessage("System default"),
|
||||||
|
"to" : MessageLookupByLibrary.simpleMessage("To"),
|
||||||
|
"toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Added to playlist"),
|
||||||
|
"toastDescovery" : MessageLookupByLibrary.simpleMessage("Discovery feature reopened, pleast restart the app"),
|
||||||
|
"toastFileError" : MessageLookupByLibrary.simpleMessage("File error, Subscribe failed"),
|
||||||
|
"toastFileNotVilid" : MessageLookupByLibrary.simpleMessage("File not vilid"),
|
||||||
|
"toastReadFile" : MessageLookupByLibrary.simpleMessage("Read file successfully"),
|
||||||
|
"toastRemovePlaylist" : MessageLookupByLibrary.simpleMessage("Removed from playlist"),
|
||||||
|
"unlike" : MessageLookupByLibrary.simpleMessage("Unlike"),
|
||||||
|
"unliked" : MessageLookupByLibrary.simpleMessage("Unliked")
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
144
lib/generated/intl/messages_zh-Hans.dart
Normal file
144
lib/generated/intl/messages_zh-Hans.dart
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
|
||||||
|
// This is a library that provides messages for a zh_Hans locale. All the
|
||||||
|
// messages from the main program should be duplicated here with the same
|
||||||
|
// function name.
|
||||||
|
|
||||||
|
// Ignore issues from commonly used lints in this file.
|
||||||
|
// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new
|
||||||
|
// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering
|
||||||
|
// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases
|
||||||
|
// ignore_for_file:unused_import, file_names
|
||||||
|
|
||||||
|
import 'package:intl/intl.dart';
|
||||||
|
import 'package:intl/message_lookup_by_library.dart';
|
||||||
|
|
||||||
|
final messages = new MessageLookup();
|
||||||
|
|
||||||
|
typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
|
||||||
|
|
||||||
|
class MessageLookup extends MessageLookupByLibrary {
|
||||||
|
String get localeName => 'zh_Hans';
|
||||||
|
|
||||||
|
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||||
|
static _notInlinedMessages(_) => <String, Function> {
|
||||||
|
"all" : MessageLookupByLibrary.simpleMessage("全部"),
|
||||||
|
"cancel" : MessageLookupByLibrary.simpleMessage("取消"),
|
||||||
|
"chooseA" : MessageLookupByLibrary.simpleMessage("选择"),
|
||||||
|
"color" : MessageLookupByLibrary.simpleMessage("颜色"),
|
||||||
|
"confirm" : MessageLookupByLibrary.simpleMessage("确认"),
|
||||||
|
"darkMode" : MessageLookupByLibrary.simpleMessage("夜晚模式"),
|
||||||
|
"delete" : MessageLookupByLibrary.simpleMessage("删除"),
|
||||||
|
"download" : MessageLookupByLibrary.simpleMessage("下载"),
|
||||||
|
"editName" : MessageLookupByLibrary.simpleMessage("修改组名"),
|
||||||
|
"endOfEpisode" : MessageLookupByLibrary.simpleMessage("节目结束"),
|
||||||
|
"feedbackEmail" : MessageLookupByLibrary.simpleMessage("发送邮件"),
|
||||||
|
"feedbackGithub" : MessageLookupByLibrary.simpleMessage("提交Issue"),
|
||||||
|
"feedbackPlay" : MessageLookupByLibrary.simpleMessage("Play评价"),
|
||||||
|
"feedbackTelegram" : MessageLookupByLibrary.simpleMessage("加入小组"),
|
||||||
|
"from" : MessageLookupByLibrary.simpleMessage("自"),
|
||||||
|
"groups" : MessageLookupByLibrary.simpleMessage("分组"),
|
||||||
|
"homeGroupsSeeAll" : MessageLookupByLibrary.simpleMessage("查看全部"),
|
||||||
|
"homeMenuPlaylist" : MessageLookupByLibrary.simpleMessage("播放列表"),
|
||||||
|
"homeSubMenuDownloaded" : MessageLookupByLibrary.simpleMessage("已下载"),
|
||||||
|
"homeSubMenuLikeData" : MessageLookupByLibrary.simpleMessage("添加日期"),
|
||||||
|
"homeSubMenuSortBy" : MessageLookupByLibrary.simpleMessage("排序"),
|
||||||
|
"homeSubMenuUpdateDate" : MessageLookupByLibrary.simpleMessage("更新日期"),
|
||||||
|
"homeTabMenuFavotite" : MessageLookupByLibrary.simpleMessage("收藏"),
|
||||||
|
"homeTabMenuRecent" : MessageLookupByLibrary.simpleMessage("最近更新"),
|
||||||
|
"homeToprightMenuAbout" : MessageLookupByLibrary.simpleMessage("关于"),
|
||||||
|
"homeToprightMenuImportOMPL" : MessageLookupByLibrary.simpleMessage("导入OMPL"),
|
||||||
|
"homeToprightMenuRefreshAll" : MessageLookupByLibrary.simpleMessage("全部刷新"),
|
||||||
|
"homeToprightMenuSettings" : MessageLookupByLibrary.simpleMessage("设置"),
|
||||||
|
"later" : MessageLookupByLibrary.simpleMessage("稍后"),
|
||||||
|
"lightMode" : MessageLookupByLibrary.simpleMessage("明亮模式"),
|
||||||
|
"like" : MessageLookupByLibrary.simpleMessage("喜欢"),
|
||||||
|
"liked" : MessageLookupByLibrary.simpleMessage("已收藏"),
|
||||||
|
"listen" : MessageLookupByLibrary.simpleMessage("收听"),
|
||||||
|
"listened" : MessageLookupByLibrary.simpleMessage("已收听"),
|
||||||
|
"markListened" : MessageLookupByLibrary.simpleMessage("标记已收听"),
|
||||||
|
"menu" : MessageLookupByLibrary.simpleMessage("菜单"),
|
||||||
|
"menuAllPodcasts" : MessageLookupByLibrary.simpleMessage("所有订阅"),
|
||||||
|
"menuMarkAllListened" : MessageLookupByLibrary.simpleMessage("标记所有已收听"),
|
||||||
|
"menuMarkListened" : MessageLookupByLibrary.simpleMessage("标记已收听"),
|
||||||
|
"menuViewRSS" : MessageLookupByLibrary.simpleMessage("查看 RSS"),
|
||||||
|
"menuVisitSite" : MessageLookupByLibrary.simpleMessage("访问网站"),
|
||||||
|
"network" : MessageLookupByLibrary.simpleMessage("网络"),
|
||||||
|
"newGroup" : MessageLookupByLibrary.simpleMessage("创建分组"),
|
||||||
|
"play" : MessageLookupByLibrary.simpleMessage("播放"),
|
||||||
|
"popupMenuDownloadDes" : MessageLookupByLibrary.simpleMessage("下载节目"),
|
||||||
|
"popupMenuLaterDes" : MessageLookupByLibrary.simpleMessage("添加到播放列表"),
|
||||||
|
"popupMenuLikeDes" : MessageLookupByLibrary.simpleMessage("添加到收藏"),
|
||||||
|
"popupMenuMarkDes" : MessageLookupByLibrary.simpleMessage("设置为已收听"),
|
||||||
|
"popupMenuPlayDes" : MessageLookupByLibrary.simpleMessage("播放节目"),
|
||||||
|
"remove" : MessageLookupByLibrary.simpleMessage("移除"),
|
||||||
|
"schedule" : MessageLookupByLibrary.simpleMessage("定时"),
|
||||||
|
"searchPodcast" : MessageLookupByLibrary.simpleMessage("搜索播客"),
|
||||||
|
"settingStorage" : MessageLookupByLibrary.simpleMessage("储存空间"),
|
||||||
|
"settingsAccentColor" : MessageLookupByLibrary.simpleMessage("次要颜色"),
|
||||||
|
"settingsAccentColorDes" : MessageLookupByLibrary.simpleMessage("包括溢出颜色"),
|
||||||
|
"settingsAppIntro" : MessageLookupByLibrary.simpleMessage("引导页"),
|
||||||
|
"settingsAppearance" : MessageLookupByLibrary.simpleMessage("界面"),
|
||||||
|
"settingsAppearanceDes" : MessageLookupByLibrary.simpleMessage("颜色与主题"),
|
||||||
|
"settingsAudioCache" : MessageLookupByLibrary.simpleMessage("播放缓存"),
|
||||||
|
"settingsAudioCacheDes" : MessageLookupByLibrary.simpleMessage("播放缓存设置"),
|
||||||
|
"settingsAutoDelete" : MessageLookupByLibrary.simpleMessage("自动删除下载节目"),
|
||||||
|
"settingsAutoDeleteDes" : MessageLookupByLibrary.simpleMessage("默认 30 天"),
|
||||||
|
"settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("自动播放下一节目"),
|
||||||
|
"settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("默认布局"),
|
||||||
|
"settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("下载页"),
|
||||||
|
"settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("收藏页"),
|
||||||
|
"settingsDefaultGridPodcast" : MessageLookupByLibrary.simpleMessage("播客页"),
|
||||||
|
"settingsDefaultGridRecent" : MessageLookupByLibrary.simpleMessage("最近页"),
|
||||||
|
"settingsDiscovery" : MessageLookupByLibrary.simpleMessage("再次功能介绍"),
|
||||||
|
"settingsEnableSyncing" : MessageLookupByLibrary.simpleMessage("开启自动更新"),
|
||||||
|
"settingsEnableSyncingDes" : MessageLookupByLibrary.simpleMessage("在后台更新所有订阅播客"),
|
||||||
|
"settingsExport" : MessageLookupByLibrary.simpleMessage("导出"),
|
||||||
|
"settingsExportDes" : MessageLookupByLibrary.simpleMessage("导出 OMPL 文件"),
|
||||||
|
"settingsFeedback" : MessageLookupByLibrary.simpleMessage("反馈"),
|
||||||
|
"settingsFeedbackDes" : MessageLookupByLibrary.simpleMessage("意见与建议"),
|
||||||
|
"settingsHistory" : MessageLookupByLibrary.simpleMessage("历史记录"),
|
||||||
|
"settingsHistoryDes" : MessageLookupByLibrary.simpleMessage("播放日期"),
|
||||||
|
"settingsInfo" : MessageLookupByLibrary.simpleMessage("信息"),
|
||||||
|
"settingsInterface" : MessageLookupByLibrary.simpleMessage("界面"),
|
||||||
|
"settingsLayout" : MessageLookupByLibrary.simpleMessage("布局"),
|
||||||
|
"settingsLayoutDes" : MessageLookupByLibrary.simpleMessage("应用布局"),
|
||||||
|
"settingsLibraries" : MessageLookupByLibrary.simpleMessage("开源"),
|
||||||
|
"settingsLibrariesDes" : MessageLookupByLibrary.simpleMessage("使用开源项目"),
|
||||||
|
"settingsManageDownload" : MessageLookupByLibrary.simpleMessage("下载管理"),
|
||||||
|
"settingsManageDownloadDes" : MessageLookupByLibrary.simpleMessage("管理下载节目文件"),
|
||||||
|
"settingsMenuAutoPlay" : MessageLookupByLibrary.simpleMessage("自动播放下一节目"),
|
||||||
|
"settingsNetworkCellular" : MessageLookupByLibrary.simpleMessage("蜂窝数据确认"),
|
||||||
|
"settingsNetworkCellularAuto" : MessageLookupByLibrary.simpleMessage("是否用蜂窝数据自动下载"),
|
||||||
|
"settingsNetworkCellularAutoDes" : MessageLookupByLibrary.simpleMessage("你可以在分组管理页面设置自动下载"),
|
||||||
|
"settingsNetworkCellularDes" : MessageLookupByLibrary.simpleMessage("在使用蜂窝数据下载前确认"),
|
||||||
|
"settingsPlayDes" : MessageLookupByLibrary.simpleMessage("播放列表和播放器"),
|
||||||
|
"settingsPopupMenu" : MessageLookupByLibrary.simpleMessage("节目弹出菜单"),
|
||||||
|
"settingsPopupMenuDes" : MessageLookupByLibrary.simpleMessage("修改节目弹出菜单"),
|
||||||
|
"settingsPrefrence" : MessageLookupByLibrary.simpleMessage("首选项"),
|
||||||
|
"settingsRealDark" : MessageLookupByLibrary.simpleMessage("真的黑"),
|
||||||
|
"settingsRealDarkDes" : MessageLookupByLibrary.simpleMessage("如果夜不够黑,请开启"),
|
||||||
|
"settingsSTAuto" : MessageLookupByLibrary.simpleMessage("自动睡眠模式"),
|
||||||
|
"settingsSTAutoDes" : MessageLookupByLibrary.simpleMessage("定期开启睡眠模式"),
|
||||||
|
"settingsSTDefaultTime" : MessageLookupByLibrary.simpleMessage("默认时长"),
|
||||||
|
"settingsSTDefautTimeDes" : MessageLookupByLibrary.simpleMessage("睡眠模式默认时长"),
|
||||||
|
"settingsSTMode" : MessageLookupByLibrary.simpleMessage("自动睡眠模式默认时长"),
|
||||||
|
"settingsStorageDes" : MessageLookupByLibrary.simpleMessage("管理缓存和下载空间"),
|
||||||
|
"settingsSyncing" : MessageLookupByLibrary.simpleMessage("同步"),
|
||||||
|
"settingsSyncingDes" : MessageLookupByLibrary.simpleMessage("在后台更新播客"),
|
||||||
|
"settingsTheme" : MessageLookupByLibrary.simpleMessage("主题"),
|
||||||
|
"settingsUpdateInterval" : MessageLookupByLibrary.simpleMessage("更新频率"),
|
||||||
|
"settingsUpdateIntervalDes" : MessageLookupByLibrary.simpleMessage("默认 24 小时"),
|
||||||
|
"sleepTimer" : MessageLookupByLibrary.simpleMessage("睡眠模式"),
|
||||||
|
"subscribe" : MessageLookupByLibrary.simpleMessage("订阅"),
|
||||||
|
"systemDefault" : MessageLookupByLibrary.simpleMessage("系统默认"),
|
||||||
|
"to" : MessageLookupByLibrary.simpleMessage("到"),
|
||||||
|
"toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("添加到播放列表"),
|
||||||
|
"toastDescovery" : MessageLookupByLibrary.simpleMessage("重启应用后可查看"),
|
||||||
|
"toastFileError" : MessageLookupByLibrary.simpleMessage("文件错误,导入失败"),
|
||||||
|
"toastFileNotVilid" : MessageLookupByLibrary.simpleMessage("文件错误"),
|
||||||
|
"toastReadFile" : MessageLookupByLibrary.simpleMessage("读取文件成功"),
|
||||||
|
"toastRemovePlaylist" : MessageLookupByLibrary.simpleMessage("从播放列表移除"),
|
||||||
|
"unlike" : MessageLookupByLibrary.simpleMessage("取消喜欢"),
|
||||||
|
"unliked" : MessageLookupByLibrary.simpleMessage("从收藏移除")
|
||||||
|
};
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -20,7 +20,6 @@ import '../util/customslider.dart';
|
|||||||
import '../episodes/episodedetail.dart';
|
import '../episodes/episodedetail.dart';
|
||||||
import 'playlist.dart';
|
import 'playlist.dart';
|
||||||
import 'audiopanel.dart';
|
import 'audiopanel.dart';
|
||||||
import 'share.dart';
|
|
||||||
|
|
||||||
final List<BoxShadow> _customShadow = [
|
final List<BoxShadow> _customShadow = [
|
||||||
BoxShadow(blurRadius: 26, offset: Offset(-6, -6), color: Colors.white),
|
BoxShadow(blurRadius: 26, offset: Offset(-6, -6), color: Colors.white),
|
||||||
|
@ -94,6 +94,7 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
double width = MediaQuery.of(context).size.width;
|
double width = MediaQuery.of(context).size.width;
|
||||||
double height = (width - 20) / 3 + 140;
|
double height = (width - 20) / 3 + 140;
|
||||||
|
final s = context.s;
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
systemNavigationBarIconBrightness:
|
systemNavigationBarIconBrightness:
|
||||||
@ -342,13 +343,13 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
|
|||||||
controller: _controller,
|
controller: _controller,
|
||||||
tabs: <Widget>[
|
tabs: <Widget>[
|
||||||
Tab(
|
Tab(
|
||||||
child: Text('Recent'),
|
child: Text(s.homeTabMenuRecent),
|
||||||
),
|
),
|
||||||
Tab(
|
Tab(
|
||||||
child: Text('Favorite'),
|
child: Text(s.homeTabMenuFavotite),
|
||||||
),
|
),
|
||||||
Tab(
|
Tab(
|
||||||
child: Text('Download'),
|
child: Text(s.download),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -547,6 +548,7 @@ class PlaylistButtonState extends State<PlaylistButton> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var audio = Provider.of<AudioPlayerNotifier>(context, listen: false);
|
var audio = Provider.of<AudioPlayerNotifier>(context, listen: false);
|
||||||
|
final s = context.s;
|
||||||
return MyPopupMenuButton<int>(
|
return MyPopupMenuButton<int>(
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(10))),
|
borderRadius: BorderRadius.all(Radius.circular(10))),
|
||||||
@ -651,7 +653,7 @@ class PlaylistButtonState extends State<PlaylistButton> {
|
|||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||||
),
|
),
|
||||||
Text('Playlist'),
|
Text(s.homeMenuPlaylist),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -727,6 +729,7 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
super.build(context);
|
super.build(context);
|
||||||
var audio = Provider.of<AudioPlayerNotifier>(context, listen: false);
|
var audio = Provider.of<AudioPlayerNotifier>(context, listen: false);
|
||||||
|
final s = context.s;
|
||||||
return Selector<SubscribeWorker, bool>(
|
return Selector<SubscribeWorker, bool>(
|
||||||
selector: (_, worker) => worker.created,
|
selector: (_, worker) => worker.created,
|
||||||
builder: (context, created, child) {
|
builder: (context, created, child) {
|
||||||
@ -1050,6 +1053,7 @@ class _MyFavoriteState extends State<_MyFavorite>
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
super.build(context);
|
super.build(context);
|
||||||
|
final s = context.s;
|
||||||
return Selector<AudioPlayerNotifier, bool>(
|
return Selector<AudioPlayerNotifier, bool>(
|
||||||
selector: (_, audio) => audio.episodeState,
|
selector: (_, audio) => audio.episodeState,
|
||||||
builder: (context, episodeState, child) {
|
builder: (context, episodeState, child) {
|
||||||
@ -1108,7 +1112,7 @@ class _MyFavoriteState extends State<_MyFavorite>
|
|||||||
mainAxisSize:
|
mainAxisSize:
|
||||||
MainAxisSize.min,
|
MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text('Sory by'),
|
Text(s.homeSubMenuSortBy),
|
||||||
Padding(
|
Padding(
|
||||||
padding:
|
padding:
|
||||||
EdgeInsets.symmetric(
|
EdgeInsets.symmetric(
|
||||||
@ -1259,6 +1263,7 @@ class _MyDownloadState extends State<_MyDownload>
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
super.build(context);
|
super.build(context);
|
||||||
|
final s = context.s;
|
||||||
return CustomScrollView(
|
return CustomScrollView(
|
||||||
key: PageStorageKey<String>('download_list'),
|
key: PageStorageKey<String>('download_list'),
|
||||||
slivers: <Widget>[
|
slivers: <Widget>[
|
||||||
@ -1273,7 +1278,7 @@ class _MyDownloadState extends State<_MyDownload>
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Container(
|
Container(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 20),
|
padding: EdgeInsets.symmetric(horizontal: 20),
|
||||||
child: Text('Downloaded')),
|
child: Text(s.homeSubMenuDownloaded)),
|
||||||
Spacer(),
|
Spacer(),
|
||||||
Material(
|
Material(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
|
@ -7,7 +7,6 @@ import 'package:focused_menu/focused_menu.dart';
|
|||||||
import 'package:focused_menu/modals.dart';
|
import 'package:focused_menu/modals.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fluttertoast/fluttertoast.dart';
|
import 'package:fluttertoast/fluttertoast.dart';
|
||||||
import 'package:tsacdop/util/episodegrid.dart';
|
|
||||||
import 'package:tuple/tuple.dart';
|
import 'package:tuple/tuple.dart';
|
||||||
import 'package:line_icons/line_icons.dart';
|
import 'package:line_icons/line_icons.dart';
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ import 'package:intl/intl.dart';
|
|||||||
import '../settings/settting.dart';
|
import '../settings/settting.dart';
|
||||||
import '../state/refresh_podcast.dart';
|
import '../state/refresh_podcast.dart';
|
||||||
import '../state/subscribe_podcast.dart';
|
import '../state/subscribe_podcast.dart';
|
||||||
|
import '../util/context_extension.dart';
|
||||||
import 'about.dart';
|
import 'about.dart';
|
||||||
|
|
||||||
class OmplOutline {
|
class OmplOutline {
|
||||||
@ -70,7 +71,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var refreshWorker = Provider.of<RefreshWorker>(context, listen: false);
|
var refreshWorker = Provider.of<RefreshWorker>(context, listen: false);
|
||||||
var subscribeWorker = Provider.of<SubscribeWorker>(context, listen: false);
|
var subscribeWorker = Provider.of<SubscribeWorker>(context, listen: false);
|
||||||
|
final s = context.s;
|
||||||
void _saveOmpl(String path) async {
|
void _saveOmpl(String path) async {
|
||||||
File file = File(path);
|
File file = File(path);
|
||||||
try {
|
try {
|
||||||
@ -150,7 +151,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(
|
Text(
|
||||||
'Refresh All',
|
s.homeToprightMenuRefreshAll,
|
||||||
),
|
),
|
||||||
FutureBuilder<String>(
|
FutureBuilder<String>(
|
||||||
future: _getRefreshDate(),
|
future: _getRefreshDate(),
|
||||||
@ -179,7 +180,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||||
),
|
),
|
||||||
Text('Import OMPL'),
|
Text(s.homeToprightMenuImportOMPL),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -194,7 +195,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||||
),
|
),
|
||||||
Text('Settings'),
|
Text(s.homeToprightMenuSettings),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -209,7 +210,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||||
),
|
),
|
||||||
Text('About'),
|
Text(s.homeToprightMenuAbout),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1,15 +1,241 @@
|
|||||||
{
|
{
|
||||||
"homeToprightMenuRefreshAll": "Refresh all",
|
"@@locale": "en",
|
||||||
"homeToprightMenuImportOMPL": "Import OMPL",
|
"all": "All",
|
||||||
"homeToprightMenuSettings": "Settings",
|
"@all": {},
|
||||||
"homeToprightMenuAbout": "About",
|
"cancel": "Cancel",
|
||||||
"homeGroupsSeeAll": "See All",
|
"@cancel": {},
|
||||||
"homeTabMenuRecent": "Recent",
|
"chooseA": "Choose a",
|
||||||
"homeTabMenuFavotite": "Favorite",
|
"@chooseA": {},
|
||||||
"homeTabMenuDownload": "Download",
|
"color": "color",
|
||||||
"homeMenuPlaylist": "Playlist",
|
"@color": {},
|
||||||
"homeSubMenuSortBy": "Sort by",
|
"confirm": "Confirm",
|
||||||
"homeSubMenuUpdateDate": "UpdateDate",
|
"@confirm": {},
|
||||||
"homeSubMenuLikeData": "Like Date",
|
"darkMode": "Dark mode",
|
||||||
"homeSubMenuDownloaded": "Downloaded"
|
"@darkMode": {},
|
||||||
|
"delete": "Delete",
|
||||||
|
"@delete": {},
|
||||||
|
"download": "Download",
|
||||||
|
"@download": {},
|
||||||
|
"editName": "Edit name",
|
||||||
|
"@editName": {},
|
||||||
|
"endOfEpisode": "End of Episode",
|
||||||
|
"@endOfEpisode": {},
|
||||||
|
"feedbackEmail": "Write to me",
|
||||||
|
"@feedbackEmail": {},
|
||||||
|
"feedbackGithub": "Submit issue",
|
||||||
|
"@feedbackGithub": {},
|
||||||
|
"feedbackPlay": "Rate on Play",
|
||||||
|
"@feedbackPlay": {},
|
||||||
|
"feedbackTelegram": "Join group",
|
||||||
|
"@feedbackTelegram": {},
|
||||||
|
"from": "From",
|
||||||
|
"@from": {},
|
||||||
|
"groups": "Groups",
|
||||||
|
"@groups": {},
|
||||||
|
"homeGroupsSeeAll": "See All",
|
||||||
|
"@homeGroupsSeeAll": {},
|
||||||
|
"homeMenuPlaylist": "Playlist",
|
||||||
|
"@homeMenuPlaylist": {},
|
||||||
|
"homeSubMenuDownloaded": "Downloaded",
|
||||||
|
"@homeSubMenuDownloaded": {},
|
||||||
|
"homeSubMenuLikeData": "Like Date",
|
||||||
|
"@homeSubMenuLikeData": {},
|
||||||
|
"homeSubMenuSortBy": "Sort by",
|
||||||
|
"@homeSubMenuSortBy": {},
|
||||||
|
"homeSubMenuUpdateDate": "Update Date",
|
||||||
|
"@homeSubMenuUpdateDate": {},
|
||||||
|
"homeTabMenuFavotite": "Favorite",
|
||||||
|
"@homeTabMenuFavotite": {},
|
||||||
|
"homeTabMenuRecent": "Recent",
|
||||||
|
"@homeTabMenuRecent": {},
|
||||||
|
"homeToprightMenuAbout": "About",
|
||||||
|
"@homeToprightMenuAbout": {},
|
||||||
|
"homeToprightMenuImportOMPL": "Import OMPL",
|
||||||
|
"@homeToprightMenuImportOMPL": {},
|
||||||
|
"homeToprightMenuRefreshAll": "Refresh all",
|
||||||
|
"@homeToprightMenuRefreshAll": {},
|
||||||
|
"homeToprightMenuSettings": "Settings",
|
||||||
|
"@homeToprightMenuSettings": {},
|
||||||
|
"later": "Later",
|
||||||
|
"@later": {},
|
||||||
|
"lightMode": "Light mode",
|
||||||
|
"@lightMode": {},
|
||||||
|
"like": "Like",
|
||||||
|
"@like": {},
|
||||||
|
"liked": "Liked",
|
||||||
|
"@liked": {},
|
||||||
|
"listen": "Listen",
|
||||||
|
"@listen": {},
|
||||||
|
"listened": "Listened",
|
||||||
|
"@listened": {},
|
||||||
|
"markListened": "Mark listened",
|
||||||
|
"@markListened": {},
|
||||||
|
"menu": "Menu",
|
||||||
|
"@menu": {},
|
||||||
|
"menuAllPodcasts": "All podcasts",
|
||||||
|
"@menuAllPodcasts": {},
|
||||||
|
"menuMarkAllListened": "Mark All Listened",
|
||||||
|
"@menuMarkAllListened": {},
|
||||||
|
"menuMarkListened": "Mark Listened",
|
||||||
|
"@menuMarkListened": {},
|
||||||
|
"menuViewRSS": "Visit RSS Feed",
|
||||||
|
"@menuViewRSS": {},
|
||||||
|
"menuVisitSite": "Visit Site",
|
||||||
|
"@menuVisitSite": {},
|
||||||
|
"network": "Network",
|
||||||
|
"@network": {},
|
||||||
|
"newGroup": "Create new group",
|
||||||
|
"@newGroup": {},
|
||||||
|
"play": "Play",
|
||||||
|
"@play": {},
|
||||||
|
"popupMenuDownloadDes": "Download episode",
|
||||||
|
"@popupMenuDownloadDes": {},
|
||||||
|
"popupMenuLaterDes": "Add episode to playlist",
|
||||||
|
"@popupMenuLaterDes": {},
|
||||||
|
"popupMenuLikeDes": "Add episode to favorite",
|
||||||
|
"@popupMenuLikeDes": {},
|
||||||
|
"popupMenuMarkDes": "Mark episode as listened",
|
||||||
|
"@popupMenuMarkDes": {},
|
||||||
|
"popupMenuPlayDes": "Play the episode",
|
||||||
|
"@popupMenuPlayDes": {},
|
||||||
|
"remove": "Remove",
|
||||||
|
"@remove": {},
|
||||||
|
"schedule": "Schedule",
|
||||||
|
"@schedule": {},
|
||||||
|
"searchPodcast": "Search podcast",
|
||||||
|
"@searchPodcast": {},
|
||||||
|
"settingsAccentColor": "Accent color",
|
||||||
|
"@settingsAccentColor": {},
|
||||||
|
"settingsAccentColorDes": "Include the ovelay color",
|
||||||
|
"@settingsAccentColorDes": {},
|
||||||
|
"settingsAppearance": "Appearance",
|
||||||
|
"@settingsAppearance": {},
|
||||||
|
"settingsAppearanceDes": "Colors and themes",
|
||||||
|
"@settingsAppearanceDes": {},
|
||||||
|
"settingsAppIntro": "App Intro",
|
||||||
|
"@settingsAppIntro": {},
|
||||||
|
"settingsAudioCache": "Audio cache",
|
||||||
|
"@settingsAudioCache": {},
|
||||||
|
"settingsAudioCacheDes": "Audio cache max size",
|
||||||
|
"@settingsAudioCacheDes": {},
|
||||||
|
"settingsAutoDelete": "Auto delete downloads after",
|
||||||
|
"@settingsAutoDelete": {},
|
||||||
|
"settingsAutoDeleteDes": "Default 30 days",
|
||||||
|
"@settingsAutoDeleteDes": {},
|
||||||
|
"settingsAutoPlayDes": "Auto play next episode in playlist",
|
||||||
|
"@settingsAutoPlayDes": {},
|
||||||
|
"settingsDefaultGrid": "Default grid view",
|
||||||
|
"@settingsDefaultGrid": {},
|
||||||
|
"settingsDefaultGridDownload": "Download tab",
|
||||||
|
"@settingsDefaultGridDownload": {},
|
||||||
|
"settingsDefaultGridFavorite": "Favorite tab",
|
||||||
|
"@settingsDefaultGridFavorite": {},
|
||||||
|
"settingsDefaultGridPodcast": "Podcast page",
|
||||||
|
"@settingsDefaultGridPodcast": {},
|
||||||
|
"settingsDefaultGridRecent": "Recent tab",
|
||||||
|
"@settingsDefaultGridRecent": {},
|
||||||
|
"settingsDiscovery": "Discovery Features Again",
|
||||||
|
"@settingsDiscovery": {},
|
||||||
|
"settingsEnableSyncing": "Enable Syncing",
|
||||||
|
"@settingsEnableSyncing": {},
|
||||||
|
"settingsEnableSyncingDes": "Refresh all podcasts in the background to get leatest episodes",
|
||||||
|
"@settingsEnableSyncingDes": {},
|
||||||
|
"settingsExport": "Export",
|
||||||
|
"@settingsExport": {},
|
||||||
|
"settingsExportDes": "Export OMPL file of all podcasts",
|
||||||
|
"@settingsExportDes": {},
|
||||||
|
"settingsFeedback": "Feedback",
|
||||||
|
"@settingsFeedback": {},
|
||||||
|
"settingsFeedbackDes": "Bugs and feature request",
|
||||||
|
"@settingsFeedbackDes": {},
|
||||||
|
"settingsHistory": "History",
|
||||||
|
"@settingsHistory": {},
|
||||||
|
"settingsHistoryDes": "Listen date",
|
||||||
|
"@settingsHistoryDes": {},
|
||||||
|
"settingsInfo": "Info",
|
||||||
|
"@settingsInfo": {},
|
||||||
|
"settingsInterface": "Interface",
|
||||||
|
"@settingsInterface": {},
|
||||||
|
"settingsLayout": "Layout",
|
||||||
|
"@settingsLayout": {},
|
||||||
|
"settingsLayoutDes": "App layout",
|
||||||
|
"@settingsLayoutDes": {},
|
||||||
|
"settingsLibraries": "Libraries",
|
||||||
|
"@settingsLibraries": {},
|
||||||
|
"settingsLibrariesDes": "Open source libraries used in app",
|
||||||
|
"@settingsLibrariesDes": {},
|
||||||
|
"settingsManageDownload": "Manage download",
|
||||||
|
"@settingsManageDownload": {},
|
||||||
|
"settingsManageDownloadDes": "Manage downloaded audio files",
|
||||||
|
"@settingsManageDownloadDes": {},
|
||||||
|
"settingsMenuAutoPlay": "Auto play next",
|
||||||
|
"@settingsMenuAutoPlay": {},
|
||||||
|
"settingsNetworkCellular": "Ask before using cellular data",
|
||||||
|
"@settingsNetworkCellular": {},
|
||||||
|
"settingsNetworkCellularAuto": "Auto download using cellular data",
|
||||||
|
"@settingsNetworkCellularAuto": {},
|
||||||
|
"settingsNetworkCellularAutoDes": "You can set podcast auto download in group manage page",
|
||||||
|
"@settingsNetworkCellularAutoDes": {},
|
||||||
|
"settingsNetworkCellularDes": "Ask to confirm when using cellulae data to download episodes",
|
||||||
|
"@settingsNetworkCellularDes": {},
|
||||||
|
"settingsPlayDes": "Playlist and player",
|
||||||
|
"@settingsPlayDes": {},
|
||||||
|
"settingsPopupMenu": "Episodes popup menu",
|
||||||
|
"@settingsPopupMenu": {},
|
||||||
|
"settingsPopupMenuDes": "Change the popup menu of episode",
|
||||||
|
"@settingsPopupMenuDes": {},
|
||||||
|
"settingsPrefrence": "Prefrence",
|
||||||
|
"@settingsPrefrence": {},
|
||||||
|
"settingsRealDark": "Real dark",
|
||||||
|
"@settingsRealDark": {},
|
||||||
|
"settingsRealDarkDes": "Turn on if you think the night is not dark enough",
|
||||||
|
"@settingsRealDarkDes": {},
|
||||||
|
"settingsSTAuto": "Auto turn on sleep timer",
|
||||||
|
"@settingsSTAuto": {},
|
||||||
|
"settingsSTAutoDes": "Auto start sleep timer at scheduled time",
|
||||||
|
"@settingsSTAutoDes": {},
|
||||||
|
"settingsSTDefaultTime": "Default time",
|
||||||
|
"@settingsSTDefaultTime": {},
|
||||||
|
"settingsSTDefautTimeDes": "Default time for sleep timer",
|
||||||
|
"@settingsSTDefautTimeDes": {},
|
||||||
|
"settingsSTMode": "Auto sleep timer mode",
|
||||||
|
"@settingsSTMode": {},
|
||||||
|
"settingsStorageDes": "Manange cache and download storage",
|
||||||
|
"@settingsStorageDes": {},
|
||||||
|
"settingsSyncing": "Syncing",
|
||||||
|
"@settingsSyncing": {},
|
||||||
|
"settingsSyncingDes": "Refresh podcasts in the background",
|
||||||
|
"@settingsSyncingDes": {},
|
||||||
|
"settingsTheme": "Theme",
|
||||||
|
"@settingsTheme": {},
|
||||||
|
"settingStorage": "Storage",
|
||||||
|
"@settingStorage": {},
|
||||||
|
"settingsUpdateInterval": "Update interval",
|
||||||
|
"@settingsUpdateInterval": {},
|
||||||
|
"settingsUpdateIntervalDes": "Default 24 hours",
|
||||||
|
"@settingsUpdateIntervalDes": {},
|
||||||
|
"sleepTimer": "Sleep timer",
|
||||||
|
"@sleepTimer": {},
|
||||||
|
"subscribe": "Subscribe",
|
||||||
|
"@subscribe": {},
|
||||||
|
"systemDefault": "System default",
|
||||||
|
"@systemDefault": {},
|
||||||
|
"to": "To",
|
||||||
|
"@to": {},
|
||||||
|
"toastAddPlaylist": "Added to playlist",
|
||||||
|
"@toastAddPlaylist": {},
|
||||||
|
"toastDescovery": "Discovery feature reopened, pleast restart the app",
|
||||||
|
"@toastDescovery": {},
|
||||||
|
"toastFileError": "File error, Subscribe failed",
|
||||||
|
"@toastFileError": {},
|
||||||
|
"toastFileNotVilid": "File not vilid",
|
||||||
|
"@toastFileNotVilid": {},
|
||||||
|
"toastReadFile": "Read file successfully",
|
||||||
|
"@toastReadFile": {},
|
||||||
|
"toastRemovePlaylist": "Removed from playlist",
|
||||||
|
"@toastRemovePlaylist": {},
|
||||||
|
"unlike": "Unlike",
|
||||||
|
"@unlike": {},
|
||||||
|
"unliked": "Unliked",
|
||||||
|
"@unliked": {}
|
||||||
}
|
}
|
241
lib/l10n/intl_zh_Hans.arb
Normal file
241
lib/l10n/intl_zh_Hans.arb
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
{
|
||||||
|
"@@locale": "zh-Hans",
|
||||||
|
"all": "全部",
|
||||||
|
"@all": {},
|
||||||
|
"cancel": "取消",
|
||||||
|
"@cancel": {},
|
||||||
|
"chooseA": "选择",
|
||||||
|
"@chooseA": {},
|
||||||
|
"color": "颜色",
|
||||||
|
"@color": {},
|
||||||
|
"confirm": "确认",
|
||||||
|
"@confirm": {},
|
||||||
|
"darkMode": "夜晚模式",
|
||||||
|
"@darkMode": {},
|
||||||
|
"delete": "删除",
|
||||||
|
"@delete": {},
|
||||||
|
"download": "下载",
|
||||||
|
"@download": {},
|
||||||
|
"editName": "修改组名",
|
||||||
|
"@editName": {},
|
||||||
|
"endOfEpisode": "节目结束",
|
||||||
|
"@endOfEpisode": {},
|
||||||
|
"feedbackEmail": "发送邮件",
|
||||||
|
"@feedbackEmail": {},
|
||||||
|
"feedbackGithub": "提交Issue",
|
||||||
|
"@feedbackGithub": {},
|
||||||
|
"feedbackPlay": "Play评价",
|
||||||
|
"@feedbackPlay": {},
|
||||||
|
"feedbackTelegram": "加入小组",
|
||||||
|
"@feedbackTelegram": {},
|
||||||
|
"from": "自",
|
||||||
|
"@from": {},
|
||||||
|
"groups": "分组",
|
||||||
|
"@groups": {},
|
||||||
|
"homeGroupsSeeAll": "查看全部",
|
||||||
|
"@homeGroupsSeeAll": {},
|
||||||
|
"homeMenuPlaylist": "播放列表",
|
||||||
|
"@homeMenuPlaylist": {},
|
||||||
|
"homeSubMenuDownloaded": "已下载",
|
||||||
|
"@homeSubMenuDownloaded": {},
|
||||||
|
"homeSubMenuLikeData": "添加日期",
|
||||||
|
"@homeSubMenuLikeData": {},
|
||||||
|
"homeSubMenuSortBy": "排序",
|
||||||
|
"@homeSubMenuSortBy": {},
|
||||||
|
"homeSubMenuUpdateDate": "更新日期",
|
||||||
|
"@homeSubMenuUpdateDate": {},
|
||||||
|
"homeTabMenuFavotite": "收藏",
|
||||||
|
"@homeTabMenuFavotite": {},
|
||||||
|
"homeTabMenuRecent": "最近更新",
|
||||||
|
"@homeTabMenuRecent": {},
|
||||||
|
"homeToprightMenuAbout": "关于",
|
||||||
|
"@homeToprightMenuAbout": {},
|
||||||
|
"homeToprightMenuImportOMPL": "导入OMPL",
|
||||||
|
"@homeToprightMenuImportOMPL": {},
|
||||||
|
"homeToprightMenuRefreshAll": "全部刷新",
|
||||||
|
"@homeToprightMenuRefreshAll": {},
|
||||||
|
"homeToprightMenuSettings": "设置",
|
||||||
|
"@homeToprightMenuSettings": {},
|
||||||
|
"later": "稍后",
|
||||||
|
"@later": {},
|
||||||
|
"lightMode": "明亮模式",
|
||||||
|
"@lightMode": {},
|
||||||
|
"like": "喜欢",
|
||||||
|
"@like": {},
|
||||||
|
"liked": "已收藏",
|
||||||
|
"@liked": {},
|
||||||
|
"listen": "收听",
|
||||||
|
"@listen": {},
|
||||||
|
"listened": "已收听",
|
||||||
|
"@listened": {},
|
||||||
|
"markListened": "标记已收听",
|
||||||
|
"@markListened": {},
|
||||||
|
"menu": "菜单",
|
||||||
|
"@menu": {},
|
||||||
|
"menuAllPodcasts": "所有订阅",
|
||||||
|
"@menuAllPodcasts": {},
|
||||||
|
"menuMarkAllListened": "标记所有已收听",
|
||||||
|
"@menuMarkAllListened": {},
|
||||||
|
"menuMarkListened": "标记已收听",
|
||||||
|
"@menuMarkListened": {},
|
||||||
|
"menuViewRSS": "查看 RSS",
|
||||||
|
"@menuViewRSS": {},
|
||||||
|
"menuVisitSite": "访问网站",
|
||||||
|
"@menuVisitSite": {},
|
||||||
|
"network": "网络",
|
||||||
|
"@network": {},
|
||||||
|
"newGroup": "创建分组",
|
||||||
|
"@newGroup": {},
|
||||||
|
"play": "播放",
|
||||||
|
"@play": {},
|
||||||
|
"popupMenuDownloadDes": "下载节目",
|
||||||
|
"@popupMenuDownloadDes": {},
|
||||||
|
"popupMenuLaterDes": "添加到播放列表",
|
||||||
|
"@popupMenuLaterDes": {},
|
||||||
|
"popupMenuLikeDes": "添加到收藏",
|
||||||
|
"@popupMenuLikeDes": {},
|
||||||
|
"popupMenuMarkDes": "设置为已收听",
|
||||||
|
"@popupMenuMarkDes": {},
|
||||||
|
"popupMenuPlayDes": "播放节目",
|
||||||
|
"@popupMenuPlayDes": {},
|
||||||
|
"remove": "移除",
|
||||||
|
"@remove": {},
|
||||||
|
"schedule": "定时",
|
||||||
|
"@schedule": {},
|
||||||
|
"searchPodcast": "搜索播客",
|
||||||
|
"@searchPodcast": {},
|
||||||
|
"settingsAccentColor": "次要颜色",
|
||||||
|
"@settingsAccentColor": {},
|
||||||
|
"settingsAccentColorDes": "包括溢出颜色",
|
||||||
|
"@settingsAccentColorDes": {},
|
||||||
|
"settingsAppearance": "界面",
|
||||||
|
"@settingsAppearance": {},
|
||||||
|
"settingsAppearanceDes": "颜色与主题",
|
||||||
|
"@settingsAppearanceDes": {},
|
||||||
|
"settingsAppIntro": "引导页",
|
||||||
|
"@settingsAppIntro": {},
|
||||||
|
"settingsAudioCache": "播放缓存",
|
||||||
|
"@settingsAudioCache": {},
|
||||||
|
"settingsAudioCacheDes": "播放缓存设置",
|
||||||
|
"@settingsAudioCacheDes": {},
|
||||||
|
"settingsAutoDelete": "自动删除下载节目",
|
||||||
|
"@settingsAutoDelete": {},
|
||||||
|
"settingsAutoDeleteDes": "默认 30 天",
|
||||||
|
"@settingsAutoDeleteDes": {},
|
||||||
|
"settingsAutoPlayDes": "自动播放下一节目",
|
||||||
|
"@settingsAutoPlayDes": {},
|
||||||
|
"settingsDefaultGrid": "默认布局",
|
||||||
|
"@settingsDefaultGrid": {},
|
||||||
|
"settingsDefaultGridDownload": "下载页",
|
||||||
|
"@settingsDefaultGridDownload": {},
|
||||||
|
"settingsDefaultGridFavorite": "收藏页",
|
||||||
|
"@settingsDefaultGridFavorite": {},
|
||||||
|
"settingsDefaultGridPodcast": "播客页",
|
||||||
|
"@settingsDefaultGridPodcast": {},
|
||||||
|
"settingsDefaultGridRecent": "最近页",
|
||||||
|
"@settingsDefaultGridRecent": {},
|
||||||
|
"settingsDiscovery": "再次功能介绍",
|
||||||
|
"@settingsDiscovery": {},
|
||||||
|
"settingsEnableSyncing": "开启自动更新",
|
||||||
|
"@settingsEnableSyncing": {},
|
||||||
|
"settingsEnableSyncingDes": "在后台更新所有订阅播客",
|
||||||
|
"@settingsEnableSyncingDes": {},
|
||||||
|
"settingsExport": "导出",
|
||||||
|
"@settingsExport": {},
|
||||||
|
"settingsExportDes": "导出 OMPL 文件",
|
||||||
|
"@settingsExportDes": {},
|
||||||
|
"settingsFeedback": "反馈",
|
||||||
|
"@settingsFeedback": {},
|
||||||
|
"settingsFeedbackDes": "意见与建议",
|
||||||
|
"@settingsFeedbackDes": {},
|
||||||
|
"settingsHistory": "历史记录",
|
||||||
|
"@settingsHistory": {},
|
||||||
|
"settingsHistoryDes": "播放日期",
|
||||||
|
"@settingsHistoryDes": {},
|
||||||
|
"settingsInfo": "信息",
|
||||||
|
"@settingsInfo": {},
|
||||||
|
"settingsInterface": "界面",
|
||||||
|
"@settingsInterface": {},
|
||||||
|
"settingsLayout": "布局",
|
||||||
|
"@settingsLayout": {},
|
||||||
|
"settingsLayoutDes": "应用布局",
|
||||||
|
"@settingsLayoutDes": {},
|
||||||
|
"settingsLibraries": "开源",
|
||||||
|
"@settingsLibraries": {},
|
||||||
|
"settingsLibrariesDes": "使用开源项目",
|
||||||
|
"@settingsLibrariesDes": {},
|
||||||
|
"settingsManageDownload": "下载管理",
|
||||||
|
"@settingsManageDownload": {},
|
||||||
|
"settingsManageDownloadDes": "管理下载节目文件",
|
||||||
|
"@settingsManageDownloadDes": {},
|
||||||
|
"settingsMenuAutoPlay": "自动播放下一节目",
|
||||||
|
"@settingsMenuAutoPlay": {},
|
||||||
|
"settingsNetworkCellular": "蜂窝数据确认",
|
||||||
|
"@settingsNetworkCellular": {},
|
||||||
|
"settingsNetworkCellularAuto": "是否用蜂窝数据自动下载",
|
||||||
|
"@settingsNetworkCellularAuto": {},
|
||||||
|
"settingsNetworkCellularAutoDes": "你可以在分组管理页面设置自动下载",
|
||||||
|
"@settingsNetworkCellularAutoDes": {},
|
||||||
|
"settingsNetworkCellularDes": "在使用蜂窝数据下载前确认",
|
||||||
|
"@settingsNetworkCellularDes": {},
|
||||||
|
"settingsPlayDes": "播放列表和播放器",
|
||||||
|
"@settingsPlayDes": {},
|
||||||
|
"settingsPopupMenu": "节目弹出菜单",
|
||||||
|
"@settingsPopupMenu": {},
|
||||||
|
"settingsPopupMenuDes": "修改节目弹出菜单",
|
||||||
|
"@settingsPopupMenuDes": {},
|
||||||
|
"settingsPrefrence": "首选项",
|
||||||
|
"@settingsPrefrence": {},
|
||||||
|
"settingsRealDark": "真的黑",
|
||||||
|
"@settingsRealDark": {},
|
||||||
|
"settingsRealDarkDes": "如果夜不够黑,请开启",
|
||||||
|
"@settingsRealDarkDes": {},
|
||||||
|
"settingsSTAuto": "自动睡眠模式",
|
||||||
|
"@settingsSTAuto": {},
|
||||||
|
"settingsSTAutoDes": "定期开启睡眠模式",
|
||||||
|
"@settingsSTAutoDes": {},
|
||||||
|
"settingsSTDefaultTime": "默认时长",
|
||||||
|
"@settingsSTDefaultTime": {},
|
||||||
|
"settingsSTDefautTimeDes": "睡眠模式默认时长",
|
||||||
|
"@settingsSTDefautTimeDes": {},
|
||||||
|
"settingsSTMode": "自动睡眠模式默认时长",
|
||||||
|
"@settingsSTMode": {},
|
||||||
|
"settingsStorageDes": "管理缓存和下载空间",
|
||||||
|
"@settingsStorageDes": {},
|
||||||
|
"settingsSyncing": "同步",
|
||||||
|
"@settingsSyncing": {},
|
||||||
|
"settingsSyncingDes": "在后台更新播客",
|
||||||
|
"@settingsSyncingDes": {},
|
||||||
|
"settingsTheme": "主题",
|
||||||
|
"@settingsTheme": {},
|
||||||
|
"settingStorage": "储存空间",
|
||||||
|
"@settingStorage": {},
|
||||||
|
"settingsUpdateInterval": "更新频率",
|
||||||
|
"@settingsUpdateInterval": {},
|
||||||
|
"settingsUpdateIntervalDes": "默认 24 小时",
|
||||||
|
"@settingsUpdateIntervalDes": {},
|
||||||
|
"sleepTimer": "睡眠模式",
|
||||||
|
"@sleepTimer": {},
|
||||||
|
"subscribe": "订阅",
|
||||||
|
"@subscribe": {},
|
||||||
|
"systemDefault": "系统默认",
|
||||||
|
"@systemDefault": {},
|
||||||
|
"to": "到",
|
||||||
|
"@to": {},
|
||||||
|
"toastAddPlaylist": "添加到播放列表",
|
||||||
|
"@toastAddPlaylist": {},
|
||||||
|
"toastDescovery": "重启应用后可查看",
|
||||||
|
"@toastDescovery": {},
|
||||||
|
"toastFileError": "文件错误,导入失败",
|
||||||
|
"@toastFileError": {},
|
||||||
|
"toastFileNotVilid": "文件错误",
|
||||||
|
"@toastFileNotVilid": {},
|
||||||
|
"toastReadFile": "读取文件成功",
|
||||||
|
"@toastReadFile": {},
|
||||||
|
"toastRemovePlaylist": "从播放列表移除",
|
||||||
|
"@toastRemovePlaylist": {},
|
||||||
|
"unlike": "取消喜欢",
|
||||||
|
"@unlike": {},
|
||||||
|
"unliked": "从收藏移除",
|
||||||
|
"@unliked": {}
|
||||||
|
}
|
@ -276,6 +276,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
Color _color = widget.podcastLocal.primaryColor.colorizedark();
|
Color _color = widget.podcastLocal.primaryColor.colorizedark();
|
||||||
|
final s = context.s;
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
statusBarIconBrightness: Brightness.dark,
|
statusBarIconBrightness: Brightness.dark,
|
||||||
@ -366,7 +367,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||||||
horizontal:
|
horizontal:
|
||||||
5.0),
|
5.0),
|
||||||
),
|
),
|
||||||
Text('Visit Site'),
|
Text(s.menuVisitSite),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -390,7 +391,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||||||
EdgeInsets.symmetric(
|
EdgeInsets.symmetric(
|
||||||
horizontal: 5.0),
|
horizontal: 5.0),
|
||||||
),
|
),
|
||||||
Text('View Rss Feed'),
|
Text(s.menuViewRSS),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -422,7 +423,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||||||
horizontal: 5.0),
|
horizontal: 5.0),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'Mark All Listened',
|
s.menuMarkAllListened,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -555,7 +556,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||||||
Radius.circular(
|
Radius.circular(
|
||||||
10))),
|
10))),
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
tooltip: 'Sort By',
|
tooltip: s.homeSubMenuSortBy,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 30,
|
height: 30,
|
||||||
padding:
|
padding:
|
||||||
@ -565,7 +566,8 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||||||
mainAxisSize:
|
mainAxisSize:
|
||||||
MainAxisSize.min,
|
MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text('Sort by'),
|
Text(s
|
||||||
|
.homeSubMenuSortBy),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets
|
padding: EdgeInsets
|
||||||
.symmetric(
|
.symmetric(
|
||||||
|
@ -97,6 +97,7 @@ class _DownloadsManageState extends State<DownloadsManage> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final s = context.s;
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||||
@ -190,7 +191,7 @@ class _DownloadsManageState extends State<DownloadsManage> {
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text('Sory by'),
|
Text(s.homeSubMenuSortBy),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.symmetric(
|
padding: EdgeInsets.symmetric(
|
||||||
horizontal: 5),
|
horizontal: 5),
|
||||||
|
@ -111,6 +111,7 @@ class _PlayedHistoryState extends State<PlayedHistory>
|
|||||||
double top = 0;
|
double top = 0;
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final s = context.s;
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||||
@ -137,7 +138,7 @@ class _PlayedHistoryState extends State<PlayedHistory>
|
|||||||
return FlexibleSpaceBar(
|
return FlexibleSpaceBar(
|
||||||
title: top < 70 + MediaQuery.of(context).padding.top
|
title: top < 70 + MediaQuery.of(context).padding.top
|
||||||
? Text(
|
? Text(
|
||||||
'History',
|
s.settingsHistory,
|
||||||
)
|
)
|
||||||
: Center(),
|
: Center(),
|
||||||
background: Padding(
|
background: Padding(
|
||||||
@ -162,11 +163,11 @@ class _PlayedHistoryState extends State<PlayedHistory>
|
|||||||
indicatorColor: context.accentColor,
|
indicatorColor: context.accentColor,
|
||||||
tabs: <Widget>[
|
tabs: <Widget>[
|
||||||
Tab(
|
Tab(
|
||||||
child: Text('Listen',
|
child: Text(s.listen,
|
||||||
style: context.textTheme.headline6),
|
style: context.textTheme.headline6),
|
||||||
),
|
),
|
||||||
Tab(
|
Tab(
|
||||||
child: Text('Subscribe',
|
child: Text(s.subscribe,
|
||||||
style: context.textTheme.headline6),
|
style: context.textTheme.headline6),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -111,6 +111,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final s = context.s;
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||||
@ -120,7 +121,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||||||
),
|
),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('Layout'),
|
title: Text(s.settingsLayout),
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: context.primaryColor,
|
backgroundColor: context.primaryColor,
|
||||||
),
|
),
|
||||||
@ -135,7 +136,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Episode popup menu',
|
child: Text(s.settingsPopupMenu,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -152,8 +153,8 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => PopupMenuSetting())),
|
builder: (context) => PopupMenuSetting())),
|
||||||
contentPadding: EdgeInsets.only(left: 80.0, right: 20),
|
contentPadding: EdgeInsets.only(left: 80.0, right: 20),
|
||||||
title: Text('Episode popup menu'),
|
title: Text(s.settingsPopupMenu),
|
||||||
subtitle: Text('Change the menu when long tap episode'),
|
subtitle: Text(s.settingsPopupMenuDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
Padding(
|
Padding(
|
||||||
@ -163,7 +164,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Default grid view',
|
child: Text(s.settingsDefaultGrid,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -176,13 +177,17 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||||||
scrollDirection: Axis.vertical,
|
scrollDirection: Axis.vertical,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
_setDefaultGridView(context,
|
_setDefaultGridView(context,
|
||||||
text: 'Podcast page', key: podcastLayoutKey),
|
text: s.settingsDefaultGridPodcast,
|
||||||
|
key: podcastLayoutKey),
|
||||||
_setDefaultGridView(context,
|
_setDefaultGridView(context,
|
||||||
text: 'Recent tab', key: recentLayoutKey),
|
text: s.settingsDefaultGridRecent,
|
||||||
|
key: recentLayoutKey),
|
||||||
_setDefaultGridView(context,
|
_setDefaultGridView(context,
|
||||||
text: 'Favorite tab', key: favLayoutKey),
|
text: s.settingsDefaultGridFavorite,
|
||||||
|
key: favLayoutKey),
|
||||||
_setDefaultGridView(context,
|
_setDefaultGridView(context,
|
||||||
text: 'Downlaod tab', key: downloadLayoutKey),
|
text: s.settingsDefaultGridDownload,
|
||||||
|
key: downloadLayoutKey),
|
||||||
]),
|
]),
|
||||||
Divider(height: 2)
|
Divider(height: 2)
|
||||||
]),
|
]),
|
||||||
|
@ -207,6 +207,7 @@ class PlaySetting extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var settings = Provider.of<SettingState>(context, listen: false);
|
var settings = Provider.of<SettingState>(context, listen: false);
|
||||||
|
final s = context.s;
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||||
@ -216,7 +217,7 @@ class PlaySetting extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('Player Setting'),
|
title: Text(s.play),
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: Theme.of(context).primaryColor,
|
backgroundColor: Theme.of(context).primaryColor,
|
||||||
),
|
),
|
||||||
@ -237,7 +238,7 @@ class PlaySetting extends StatelessWidget {
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Playlist',
|
child: Text(s.homeMenuPlaylist,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -254,8 +255,8 @@ class PlaySetting extends StatelessWidget {
|
|||||||
onTap: () => settings.setAutoPlay = !data,
|
onTap: () => settings.setAutoPlay = !data,
|
||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.only(left: 80.0, right: 20),
|
EdgeInsets.only(left: 80.0, right: 20),
|
||||||
title: Text('Autoplay'),
|
title: Text('Auto play next'),
|
||||||
subtitle: Text('Autoplay next episode in playlist'),
|
subtitle: Text(s.settingsAutoPlayDes),
|
||||||
trailing: Transform.scale(
|
trailing: Transform.scale(
|
||||||
scale: 0.9,
|
scale: 0.9,
|
||||||
child: Switch(
|
child: Switch(
|
||||||
@ -274,10 +275,8 @@ class PlaySetting extends StatelessWidget {
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Sleep timer',
|
child: Text(s.sleepTimer,
|
||||||
style: Theme.of(context)
|
style: context.textTheme.bodyText1
|
||||||
.textTheme
|
|
||||||
.bodyText1
|
|
||||||
.copyWith(color: Theme.of(context).accentColor)),
|
.copyWith(color: Theme.of(context).accentColor)),
|
||||||
),
|
),
|
||||||
ListView(
|
ListView(
|
||||||
@ -287,8 +286,8 @@ class PlaySetting extends StatelessWidget {
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
ListTile(
|
ListTile(
|
||||||
contentPadding: EdgeInsets.only(left: 80.0, right: 20),
|
contentPadding: EdgeInsets.only(left: 80.0, right: 20),
|
||||||
title: Text('Default time'),
|
title: Text(s.settingsSTDefaultTime),
|
||||||
subtitle: Text('Default time for sleep timer'),
|
subtitle: Text(s.settingsSTDefautTimeDes),
|
||||||
trailing: Selector<SettingState, int>(
|
trailing: Selector<SettingState, int>(
|
||||||
selector: (_, settings) => settings.defaultSleepTimer,
|
selector: (_, settings) => settings.defaultSleepTimer,
|
||||||
builder: (_, data, __) => DropdownButton(
|
builder: (_, data, __) => DropdownButton(
|
||||||
@ -313,9 +312,8 @@ class PlaySetting extends StatelessWidget {
|
|||||||
onTap: () => settings.setAutoSleepTimer = !data,
|
onTap: () => settings.setAutoSleepTimer = !data,
|
||||||
contentPadding: const EdgeInsets.only(
|
contentPadding: const EdgeInsets.only(
|
||||||
left: 80.0, right: 20.0, bottom: 10.0, top: 10.0),
|
left: 80.0, right: 20.0, bottom: 10.0, top: 10.0),
|
||||||
title: Text('Auto turn on sleep timer'),
|
title: Text(s.settingsSTAuto),
|
||||||
subtitle:
|
subtitle: Text(s.settingsSTAutoDes),
|
||||||
Text('Auto start sleep timer at scheduled time'),
|
|
||||||
trailing: Transform.scale(
|
trailing: Transform.scale(
|
||||||
scale: 0.9,
|
scale: 0.9,
|
||||||
child: Switch(
|
child: Switch(
|
||||||
@ -328,7 +326,7 @@ class PlaySetting extends StatelessWidget {
|
|||||||
ListTile(
|
ListTile(
|
||||||
contentPadding: const EdgeInsets.only(
|
contentPadding: const EdgeInsets.only(
|
||||||
left: 80.0, right: 20.0, bottom: 10.0, top: 10.0),
|
left: 80.0, right: 20.0, bottom: 10.0, top: 10.0),
|
||||||
title: Text('Auto sleep timer mode'),
|
title: Text(s.settingsSTMode),
|
||||||
subtitle:
|
subtitle:
|
||||||
context.width > 360 ? null : _modeWidget(context),
|
context.width > 360 ? null : _modeWidget(context),
|
||||||
trailing: context.width > 360
|
trailing: context.width > 360
|
||||||
@ -337,7 +335,7 @@ class PlaySetting extends StatelessWidget {
|
|||||||
ListTile(
|
ListTile(
|
||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.only(left: 80.0, right: 20),
|
EdgeInsets.only(left: 80.0, right: 20),
|
||||||
title: Text('Schedule'),
|
title: Text(s.schedule),
|
||||||
subtitle: context.width > 360
|
subtitle: context.width > 360
|
||||||
? null
|
? null
|
||||||
: _scheduleWidget(context),
|
: _scheduleWidget(context),
|
||||||
|
@ -102,6 +102,7 @@ class _SettingsState extends State<Settings>
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final s = context.s;
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||||
@ -111,7 +112,7 @@ class _SettingsState extends State<Settings>
|
|||||||
),
|
),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('Settings'),
|
title: Text(s.homeToprightMenuSettings),
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: context.primaryColor,
|
backgroundColor: context.primaryColor,
|
||||||
),
|
),
|
||||||
@ -134,7 +135,7 @@ class _SettingsState extends State<Settings>
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Prefrence',
|
child: Text(s.settingsPrefrence,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -153,8 +154,8 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.adjust_solid),
|
leading: Icon(LineIcons.adjust_solid),
|
||||||
title: Text('Appearance'),
|
title: Text(s.settingsAppearance),
|
||||||
subtitle: Text('Colors and themes'),
|
subtitle: Text(s.settingsAppearanceDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
@ -165,8 +166,8 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.stop_circle_solid),
|
leading: Icon(LineIcons.stop_circle_solid),
|
||||||
title: Text('Layout'),
|
title: Text(s.settingsLayout),
|
||||||
subtitle: Text('App layout'),
|
subtitle: Text(s.settingsLayoutDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
@ -177,21 +178,20 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.play_circle),
|
leading: Icon(LineIcons.play_circle),
|
||||||
title: Text('Play'),
|
title: Text(s.play),
|
||||||
subtitle: Text('Playlist and player'),
|
subtitle: Text(s.settingsPlayDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
onTap: () => Navigator.push(
|
onTap: () => Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => SyncingSetting())),
|
builder: (context) => SyncingSetting())),
|
||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.cloud_download_alt_solid),
|
leading: Icon(LineIcons.cloud_download_alt_solid),
|
||||||
title: Text('Syncing'),
|
title: Text(s.settingsSyncing),
|
||||||
subtitle: Text('Refresh podcasts in the background'),
|
subtitle: Text(s.settingsSyncingDes)),
|
||||||
),
|
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
onTap: () => Navigator.push(
|
onTap: () => Navigator.push(
|
||||||
@ -201,8 +201,8 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.save),
|
leading: Icon(LineIcons.save),
|
||||||
title: Text('Storage'),
|
title: Text(s.settingStorage),
|
||||||
subtitle: Text('Manage cache and download storage'),
|
subtitle: Text(s.settingsStorageDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
@ -213,8 +213,8 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(Icons.update),
|
leading: Icon(Icons.update),
|
||||||
title: Text('History'),
|
title: Text(s.settingsHistory),
|
||||||
subtitle: Text('Listen data'),
|
subtitle: Text(s.settingsHistoryDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
@ -224,8 +224,8 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.file_code_solid),
|
leading: Icon(LineIcons.file_code_solid),
|
||||||
title: Text('Export'),
|
title: Text(s.settingsExport),
|
||||||
subtitle: Text('Export ompl file of all podcasts'),
|
subtitle: Text(s.settingsExportDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
],
|
],
|
||||||
@ -243,7 +243,7 @@ class _SettingsState extends State<Settings>
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Info',
|
child: Text(s.settingsInfo,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -262,9 +262,8 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.book_open_solid),
|
leading: Icon(LineIcons.book_open_solid),
|
||||||
title: Text('Libraries'),
|
title: Text(s.settingsLibraries),
|
||||||
subtitle:
|
subtitle: Text(s.settingsLibrariesDes),
|
||||||
Text('Open source libraries in application'),
|
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
@ -280,8 +279,8 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.bug_solid),
|
leading: Icon(LineIcons.bug_solid),
|
||||||
title: Text('Feedback'),
|
title: Text(s.settingsFeedback),
|
||||||
subtitle: Text('Bugs and feature request'),
|
subtitle: Text(s.settingsFeedbackDes),
|
||||||
trailing: Transform.rotate(
|
trailing: Transform.rotate(
|
||||||
angle: math.pi * _value,
|
angle: math.pi * _value,
|
||||||
child: Icon(Icons.keyboard_arrow_down),
|
child: Icon(Icons.keyboard_arrow_down),
|
||||||
@ -298,19 +297,19 @@ class _SettingsState extends State<Settings>
|
|||||||
SizedBox(width: 75),
|
SizedBox(width: 75),
|
||||||
_feedbackItem(
|
_feedbackItem(
|
||||||
LineIcons.github,
|
LineIcons.github,
|
||||||
'Submit issue',
|
s.feedbackGithub,
|
||||||
'https://github.com/stonega/tsacdop/issues'),
|
'https://github.com/stonega/tsacdop/issues'),
|
||||||
_feedbackItem(
|
_feedbackItem(
|
||||||
LineIcons.telegram,
|
LineIcons.telegram,
|
||||||
'Join group',
|
s.feedbackTelegram,
|
||||||
'https://t.me/joinchat/Bk3LkRpTHy40QYC78PK7Qg'),
|
'https://t.me/joinchat/Bk3LkRpTHy40QYC78PK7Qg'),
|
||||||
_feedbackItem(
|
_feedbackItem(
|
||||||
LineIcons.envelope_open_text_solid,
|
LineIcons.envelope_open_text_solid,
|
||||||
'Write to me',
|
s.feedbackEmail,
|
||||||
'mailto:<tsacdop.app@gmail.com>?subject=Tsacdop Feedback'),
|
'mailto:<tsacdop.app@gmail.com>?subject=Tsacdop Feedback'),
|
||||||
_feedbackItem(
|
_feedbackItem(
|
||||||
LineIcons.google_play,
|
LineIcons.google_play,
|
||||||
'Rate on Play',
|
s.feedbackPlay,
|
||||||
'https://play.google.com/store/apps/details?id=com.stonegate.tsacdop')
|
'https://play.google.com/store/apps/details?id=com.stonegate.tsacdop')
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -341,7 +340,7 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.capsules_solid),
|
leading: Icon(LineIcons.capsules_solid),
|
||||||
title: Text('Discovery Features Again'),
|
title: Text(s.settingsDiscovery),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
@ -353,7 +352,7 @@ class _SettingsState extends State<Settings>
|
|||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 25.0),
|
EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
leading: Icon(LineIcons.columns_solid),
|
leading: Icon(LineIcons.columns_solid),
|
||||||
title: Text('App Intro'),
|
title: Text(s.settingsAppIntro),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
],
|
],
|
||||||
|
@ -77,6 +77,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final s = context.s;
|
||||||
var settings = Provider.of<SettingState>(context, listen: false);
|
var settings = Provider.of<SettingState>(context, listen: false);
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
@ -87,7 +88,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
),
|
),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('Storage'),
|
title: Text(s.settingStorage),
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: Theme.of(context).primaryColor,
|
backgroundColor: Theme.of(context).primaryColor,
|
||||||
),
|
),
|
||||||
@ -107,7 +108,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Network',
|
child: Text(s.network,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -125,9 +126,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
onTap: () => settings.downloadUsingData = !data,
|
onTap: () => settings.downloadUsingData = !data,
|
||||||
contentPadding: EdgeInsets.only(
|
contentPadding: EdgeInsets.only(
|
||||||
left: 80.0, right: 25, bottom: 10, top: 10),
|
left: 80.0, right: 25, bottom: 10, top: 10),
|
||||||
title: Text('Ask before using cellular data'),
|
title: Text(s.settingsNetworkCellular),
|
||||||
subtitle: Text(
|
subtitle: Text(s.settingsNetworkCellularDes),
|
||||||
'Ask to confirm when using cellular data to download episodes'),
|
|
||||||
trailing: Transform.scale(
|
trailing: Transform.scale(
|
||||||
scale: 0.9,
|
scale: 0.9,
|
||||||
child: Switch(
|
child: Switch(
|
||||||
@ -151,10 +151,9 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
},
|
},
|
||||||
contentPadding: EdgeInsets.only(
|
contentPadding: EdgeInsets.only(
|
||||||
left: 80.0, right: 25, bottom: 10, top: 10),
|
left: 80.0, right: 25, bottom: 10, top: 10),
|
||||||
title:
|
title: Text(s.settingsNetworkCellularAuto),
|
||||||
Text('Auto download using cellular data'),
|
subtitle:
|
||||||
subtitle: Text(
|
Text(s.settingsNetworkCellularAutoDes),
|
||||||
'You can set podcast auto download in group manage page'),
|
|
||||||
trailing: Transform.scale(
|
trailing: Transform.scale(
|
||||||
scale: 0.9,
|
scale: 0.9,
|
||||||
child: Switch(
|
child: Switch(
|
||||||
@ -182,7 +181,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Storage',
|
child: Text(s.settingStorage,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -199,8 +198,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => DownloadsManage())),
|
builder: (context) => DownloadsManage())),
|
||||||
contentPadding: EdgeInsets.symmetric(horizontal: 80.0),
|
contentPadding: EdgeInsets.symmetric(horizontal: 80.0),
|
||||||
title: Text('Downloads'),
|
title: Text(s.download),
|
||||||
subtitle: Text('Manage downloaded audio files'),
|
subtitle: Text(s.settingsManageDownloadDes),
|
||||||
),
|
),
|
||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
FutureBuilder<int>(
|
FutureBuilder<int>(
|
||||||
@ -210,8 +209,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
return ListTile(
|
return ListTile(
|
||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.only(left: 80.0, right: 20),
|
EdgeInsets.only(left: 80.0, right: 20),
|
||||||
title: Text('Auto delete downloads after'),
|
title: Text(s.settingsAutoDelete),
|
||||||
subtitle: Text('Default 30 days'),
|
subtitle: Text(s.settingsAutoDeleteDes),
|
||||||
trailing: DropdownButton(
|
trailing: DropdownButton(
|
||||||
hint: snapshot.data == -1
|
hint: snapshot.data == -1
|
||||||
? Text('Never')
|
? Text('Never')
|
||||||
@ -238,8 +237,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||||||
ListTile(
|
ListTile(
|
||||||
contentPadding: EdgeInsets.only(left: 80.0, right: 25),
|
contentPadding: EdgeInsets.only(left: 80.0, right: 25),
|
||||||
// leading: Icon(Icons.colorize),
|
// leading: Icon(Icons.colorize),
|
||||||
title: Text('Audio cache'),
|
title: Text(s.settingsAudioCache),
|
||||||
subtitle: Text('Audio cache max size'),
|
subtitle: Text(s.settingsAudioCacheDes),
|
||||||
trailing: Text.rich(TextSpan(
|
trailing: Text.rich(TextSpan(
|
||||||
text: '${(_value ~/ 100) * 100}',
|
text: '${(_value ~/ 100) * 100}',
|
||||||
style: GoogleFonts.teko(
|
style: GoogleFonts.teko(
|
||||||
|
@ -4,10 +4,12 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:tuple/tuple.dart';
|
import 'package:tuple/tuple.dart';
|
||||||
|
|
||||||
import '../state/settingstate.dart';
|
import '../state/settingstate.dart';
|
||||||
|
import '../util/context_extension.dart';
|
||||||
|
|
||||||
class SyncingSetting extends StatelessWidget {
|
class SyncingSetting extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final s = context.s;
|
||||||
var settings = Provider.of<SettingState>(context, listen: false);
|
var settings = Provider.of<SettingState>(context, listen: false);
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
@ -18,7 +20,7 @@ class SyncingSetting extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('Syncing'),
|
title: Text(s.settingsSyncing),
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: Theme.of(context).primaryColor,
|
backgroundColor: Theme.of(context).primaryColor,
|
||||||
),
|
),
|
||||||
@ -40,16 +42,16 @@ class SyncingSetting extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: const EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Syncing',
|
child: Text(s.settingsSyncing,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
.copyWith(color: Theme.of(context).accentColor)),
|
.copyWith(color: Theme.of(context).accentColor)),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.all(5.0),
|
padding: const EdgeInsets.all(5.0),
|
||||||
),
|
),
|
||||||
ListView(
|
ListView(
|
||||||
physics: const BouncingScrollPhysics(),
|
physics: const BouncingScrollPhysics(),
|
||||||
@ -66,11 +68,10 @@ class SyncingSetting extends StatelessWidget {
|
|||||||
settings.setWorkManager(data.item2);
|
settings.setWorkManager(data.item2);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
contentPadding: EdgeInsets.only(
|
contentPadding: const EdgeInsets.only(
|
||||||
left: 80.0, right: 20, bottom: 10),
|
left: 80.0, right: 20, bottom: 10),
|
||||||
title: Text('Enable syncing'),
|
title: Text(s.settingsEnableSyncing),
|
||||||
subtitle: Text(
|
subtitle: Text(s.settingsEnableSyncingDes),
|
||||||
'Refresh all podcasts in the background to get leatest episodes'),
|
|
||||||
trailing: Transform.scale(
|
trailing: Transform.scale(
|
||||||
scale: 0.9,
|
scale: 0.9,
|
||||||
child: Switch(
|
child: Switch(
|
||||||
@ -87,13 +88,13 @@ class SyncingSetting extends StatelessWidget {
|
|||||||
Divider(height: 2),
|
Divider(height: 2),
|
||||||
ListTile(
|
ListTile(
|
||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.only(left: 80.0, right: 20),
|
const EdgeInsets.only(left: 80.0, right: 20),
|
||||||
title: Text('Update Interval'),
|
title: Text(s.settingsUpdateInterval),
|
||||||
subtitle: Text('Default 24 hours'),
|
subtitle: Text(s.settingsUpdateIntervalDes),
|
||||||
trailing: DropdownButton(
|
trailing: DropdownButton(
|
||||||
hint: data.item2 == 1
|
hint: data.item2 == 1
|
||||||
? Text(data.item2.toString() + ' hour')
|
? Text(data.item2.toString() + ' hour')
|
||||||
: Text(data.item2.toString() + 'hours'),
|
: Text(data.item2.toString() + ' hours'),
|
||||||
underline: Center(),
|
underline: Center(),
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
value: data.item2,
|
value: data.item2,
|
||||||
|
@ -9,6 +9,7 @@ import '../util/general_dialog.dart';
|
|||||||
class ThemeSetting extends StatelessWidget {
|
class ThemeSetting extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final s = context.s;
|
||||||
var settings = Provider.of<SettingState>(context, listen: false);
|
var settings = Provider.of<SettingState>(context, listen: false);
|
||||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||||
value: SystemUiOverlayStyle(
|
value: SystemUiOverlayStyle(
|
||||||
@ -19,7 +20,7 @@ class ThemeSetting extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('Appearance'),
|
title: Text(s.settingsAppearance),
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: Theme.of(context).primaryColor,
|
backgroundColor: Theme.of(context).primaryColor,
|
||||||
),
|
),
|
||||||
@ -34,7 +35,7 @@ class ThemeSetting extends StatelessWidget {
|
|||||||
height: 30.0,
|
height: 30.0,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: Text('Interface',
|
child: Text(s.settingsInterface,
|
||||||
style: Theme.of(context)
|
style: Theme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.bodyText1
|
.bodyText1
|
||||||
@ -74,7 +75,7 @@ class ThemeSetting extends StatelessWidget {
|
|||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.all(Radius.circular(10.0))),
|
BorderRadius.all(Radius.circular(10.0))),
|
||||||
title: Text('Theme'),
|
title: Text(s.settingsTheme),
|
||||||
content: SingleChildScrollView(
|
content: SingleChildScrollView(
|
||||||
scrollDirection: Axis.vertical,
|
scrollDirection: Axis.vertical,
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -82,7 +83,7 @@ class ThemeSetting extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
RadioListTile(
|
RadioListTile(
|
||||||
title: Text('System default'),
|
title: Text(s.systemDefault),
|
||||||
value: ThemeMode.system,
|
value: ThemeMode.system,
|
||||||
groupValue: settings.theme,
|
groupValue: settings.theme,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
@ -112,8 +113,8 @@ class ThemeSetting extends StatelessWidget {
|
|||||||
)),
|
)),
|
||||||
contentPadding: EdgeInsets.symmetric(horizontal: 80.0),
|
contentPadding: EdgeInsets.symmetric(horizontal: 80.0),
|
||||||
// leading: Icon(Icons.colorize),
|
// leading: Icon(Icons.colorize),
|
||||||
title: Text('Theme'),
|
title: Text(s.settingsTheme),
|
||||||
subtitle: Text('System default'),
|
subtitle: Text(s.systemDefault),
|
||||||
),
|
),
|
||||||
Selector<SettingState, bool>(
|
Selector<SettingState, bool>(
|
||||||
selector: (_, setting) => setting.realDark,
|
selector: (_, setting) => setting.realDark,
|
||||||
@ -123,10 +124,9 @@ class ThemeSetting extends StatelessWidget {
|
|||||||
left: 80.0, right: 20, bottom: 10, top: 10),
|
left: 80.0, right: 20, bottom: 10, top: 10),
|
||||||
// leading: Icon(Icons.colorize),
|
// leading: Icon(Icons.colorize),
|
||||||
title: Text(
|
title: Text(
|
||||||
'Real Dark',
|
s.settingsRealDark,
|
||||||
),
|
),
|
||||||
subtitle: Text(
|
subtitle: Text(s.settingsRealDarkDes),
|
||||||
'Turn on if you think the night is not dark enough'),
|
|
||||||
trailing: Transform.scale(
|
trailing: Transform.scale(
|
||||||
scale: 0.9,
|
scale: 0.9,
|
||||||
child: Switch(
|
child: Switch(
|
||||||
@ -153,8 +153,8 @@ class ThemeSetting extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
contentPadding: EdgeInsets.only(left: 80.0, right: 25),
|
contentPadding: EdgeInsets.only(left: 80.0, right: 25),
|
||||||
title: Text('Accent color'),
|
title: Text(s.settingsAccentColor),
|
||||||
subtitle: Text('Include the overlay color'),
|
subtitle: Text(s.settingsAccentColorDes),
|
||||||
trailing: Container(
|
trailing: Container(
|
||||||
height: 25,
|
height: 25,
|
||||||
width: 25,
|
width: 25,
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../generated/l10n.dart';
|
||||||
|
|
||||||
extension ContextExtension on BuildContext{
|
extension ContextExtension on BuildContext {
|
||||||
Color get primaryColor => Theme.of(this).primaryColor;
|
Color get primaryColor => Theme.of(this).primaryColor;
|
||||||
Color get accentColor => Theme.of(this).accentColor;
|
Color get accentColor => Theme.of(this).accentColor;
|
||||||
Color get scaffoldBackgroundColor => Theme.of(this).scaffoldBackgroundColor;
|
Color get scaffoldBackgroundColor => Theme.of(this).scaffoldBackgroundColor;
|
||||||
Color get primaryColorDark => Theme.of(this).primaryColorDark;
|
Color get primaryColorDark => Theme.of(this).primaryColorDark;
|
||||||
Color get textColor => Theme.of(this).textTheme.bodyText1.color;
|
Color get textColor => Theme.of(this).textTheme.bodyText1.color;
|
||||||
Brightness get brightness => Theme.of(this).brightness;
|
Brightness get brightness => Theme.of(this).brightness;
|
||||||
double get width => MediaQuery.of(this).size.width;
|
double get width => MediaQuery.of(this).size.width;
|
||||||
double get height => MediaQuery.of(this).size.width;
|
double get height => MediaQuery.of(this).size.width;
|
||||||
TextTheme get textTheme => Theme.of(this).textTheme;
|
TextTheme get textTheme => Theme.of(this).textTheme;
|
||||||
}
|
S get s => S.of(this);
|
||||||
|
}
|
||||||
|
@ -54,10 +54,10 @@ class MyRoundSliderThumpShape extends SliderComponentShape {
|
|||||||
begin: _disabledThumbRadius,
|
begin: _disabledThumbRadius,
|
||||||
end: enabledThumbRadius,
|
end: enabledThumbRadius,
|
||||||
);
|
);
|
||||||
final ColorTween colorTween = ColorTween(
|
// final ColorTween colorTween = ColorTween(
|
||||||
begin: sliderTheme.disabledThumbColor,
|
// begin: sliderTheme.disabledThumbColor,
|
||||||
end: sliderTheme.thumbColor,
|
// end: sliderTheme.thumbColor,
|
||||||
);
|
// );
|
||||||
|
|
||||||
canvas.drawCircle(
|
canvas.drawCircle(
|
||||||
center,
|
center,
|
||||||
|
@ -10,7 +10,6 @@ import 'package:tuple/tuple.dart';
|
|||||||
import 'package:line_icons/line_icons.dart';
|
import 'package:line_icons/line_icons.dart';
|
||||||
import 'package:fluttertoast/fluttertoast.dart';
|
import 'package:fluttertoast/fluttertoast.dart';
|
||||||
import 'package:auto_animated/auto_animated.dart';
|
import 'package:auto_animated/auto_animated.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
|
||||||
import 'open_container.dart';
|
import 'open_container.dart';
|
||||||
|
|
||||||
import '../state/audiostate.dart';
|
import '../state/audiostate.dart';
|
||||||
@ -398,7 +397,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||||||
showItemDuration: Duration(milliseconds: 50),
|
showItemDuration: Duration(milliseconds: 50),
|
||||||
);
|
);
|
||||||
final scrollController = ScrollController();
|
final scrollController = ScrollController();
|
||||||
|
final s = context.s;
|
||||||
return SliverPadding(
|
return SliverPadding(
|
||||||
padding: const EdgeInsets.only(
|
padding: const EdgeInsets.only(
|
||||||
top: 10.0, bottom: 5.0, left: 15.0, right: 15.0),
|
top: 10.0, bottom: 5.0, left: 15.0, right: 15.0),
|
||||||
@ -507,7 +506,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||||||
? context.primaryColor
|
? context.primaryColor
|
||||||
: context.scaffoldBackgroundColor,
|
: context.scaffoldBackgroundColor,
|
||||||
title: Text(data.item1 != episodes[index]
|
title: Text(data.item1 != episodes[index]
|
||||||
? "Play"
|
? s.play
|
||||||
: "Playing"),
|
: "Playing"),
|
||||||
trailingIcon: Icon(
|
trailingIcon: Icon(
|
||||||
LineIcons.play_circle_solid,
|
LineIcons.play_circle_solid,
|
||||||
@ -526,7 +525,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||||||
title: data.item2.contains(
|
title: data.item2.contains(
|
||||||
episodes[index].enclosureUrl)
|
episodes[index].enclosureUrl)
|
||||||
? Text("Remove")
|
? Text("Remove")
|
||||||
: Text("Later"),
|
: Text(s.later),
|
||||||
trailingIcon: Icon(
|
trailingIcon: Icon(
|
||||||
LineIcons.clock_solid,
|
LineIcons.clock_solid,
|
||||||
color: Colors.cyan,
|
color: Colors.cyan,
|
||||||
@ -556,8 +555,8 @@ class EpisodeGrid extends StatelessWidget {
|
|||||||
? context.primaryColor
|
? context.primaryColor
|
||||||
: context.scaffoldBackgroundColor,
|
: context.scaffoldBackgroundColor,
|
||||||
title: isLiked
|
title: isLiked
|
||||||
? Text("Unlike")
|
? Text(s.unlike)
|
||||||
: Text("Like"),
|
: Text(s.like),
|
||||||
trailingIcon: Icon(LineIcons.heart,
|
trailingIcon: Icon(LineIcons.heart,
|
||||||
color: Colors.red, size: 21),
|
color: Colors.red, size: 21),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
@ -592,7 +591,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||||||
color: context.textColor
|
color: context.textColor
|
||||||
.withOpacity(0.5)))
|
.withOpacity(0.5)))
|
||||||
: Text(
|
: Text(
|
||||||
'Mark Listened',
|
s.markListened,
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
@ -609,7 +608,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||||||
await _markListened(episodes[index]);
|
await _markListened(episodes[index]);
|
||||||
audio.setEpisodeState = true;
|
audio.setEpisodeState = true;
|
||||||
Fluttertoast.showToast(
|
Fluttertoast.showToast(
|
||||||
msg: 'Mark listened',
|
msg: s.markListened,
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -622,11 +621,11 @@ class EpisodeGrid extends StatelessWidget {
|
|||||||
? context.primaryColor
|
? context.primaryColor
|
||||||
: context.scaffoldBackgroundColor,
|
: context.scaffoldBackgroundColor,
|
||||||
title: isDownloaded
|
title: isDownloaded
|
||||||
? Text('Downloaded',
|
? Text(s.homeSubMenuDownloaded,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: context.textColor
|
color: context.textColor
|
||||||
.withOpacity(0.5)))
|
.withOpacity(0.5)))
|
||||||
: Text('Download'),
|
: Text(s.download),
|
||||||
trailingIcon: Icon(
|
trailingIcon: Icon(
|
||||||
LineIcons.download_solid,
|
LineIcons.download_solid,
|
||||||
color: Colors.green),
|
color: Colors.green),
|
||||||
|
@ -70,3 +70,5 @@ flutter:
|
|||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
flutter_intl:
|
flutter_intl:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
localizely:
|
||||||
|
project_id: bde4e9bd-4cb2-449b-9de2-18f231ddb47d
|
||||||
|
Loading…
x
Reference in New Issue
Block a user