From a813ac50f6d636c99403a6180be90c6fdf838a9b Mon Sep 17 00:00:00 2001 From: stonegate Date: Mon, 10 Aug 2020 03:35:04 +0800 Subject: [PATCH] Volume gain settings. --- lib/generated/intl/messages_en.dart | 2 ++ lib/generated/intl/messages_es.dart | 2 ++ lib/generated/intl/messages_fr.dart | 2 ++ lib/generated/intl/messages_zh-Hans.dart | 2 ++ lib/generated/l10n.dart | 20 +++++++++++++ lib/l10n/intl_en.arb | 4 +++ lib/l10n/intl_es.arb | 4 +++ lib/l10n/intl_fr.arb | 4 +++ lib/l10n/intl_zh_Hans.arb | 4 +++ lib/settings/play_setting.dart | 38 +++++++++++++++++++++++- lib/state/audio_state.dart | 6 ++++ 11 files changed, 87 insertions(+), 1 deletion(-) diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart index 2f7b9d4..e60144a 100644 --- a/lib/generated/intl/messages_en.dart +++ b/lib/generated/intl/messages_en.dart @@ -240,6 +240,8 @@ class MessageLookup extends MessageLookupByLibrary { "settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("Auto play next episode in playlist"), "settingsBackup" : MessageLookupByLibrary.simpleMessage("Backup"), "settingsBackupDes" : MessageLookupByLibrary.simpleMessage("Backup app data"), + "settingsBoostVolume" : MessageLookupByLibrary.simpleMessage("Volume boost level"), + "settingsBoostVolumeDes" : MessageLookupByLibrary.simpleMessage("Change volume boost level"), "settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("Default grid view"), "settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("Download tab"), "settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("Favorites tab"), diff --git a/lib/generated/intl/messages_es.dart b/lib/generated/intl/messages_es.dart index b97daf7..a245313 100644 --- a/lib/generated/intl/messages_es.dart +++ b/lib/generated/intl/messages_es.dart @@ -240,6 +240,8 @@ class MessageLookup extends MessageLookupByLibrary { "settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("Reproducir automaticamente episodio siguiente "), "settingsBackup" : MessageLookupByLibrary.simpleMessage("Respaldo"), "settingsBackupDes" : MessageLookupByLibrary.simpleMessage("Respaldar datos de la app"), + "settingsBoostVolume" : MessageLookupByLibrary.simpleMessage("Volume boost level"), + "settingsBoostVolumeDes" : MessageLookupByLibrary.simpleMessage("Change volume boost level"), "settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("Vista de cuadricula por defecto"), "settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("Pestaña de descargas"), "settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("Pestaña de favoritos"), diff --git a/lib/generated/intl/messages_fr.dart b/lib/generated/intl/messages_fr.dart index 1cc68b8..6d1910b 100644 --- a/lib/generated/intl/messages_fr.dart +++ b/lib/generated/intl/messages_fr.dart @@ -240,6 +240,8 @@ class MessageLookup extends MessageLookupByLibrary { "settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("Lancer automatiquement l\'épisode suivant"), "settingsBackup" : MessageLookupByLibrary.simpleMessage("Backup"), "settingsBackupDes" : MessageLookupByLibrary.simpleMessage("Sauvegarde des données de l\'application"), + "settingsBoostVolume" : MessageLookupByLibrary.simpleMessage("Volume boost level"), + "settingsBoostVolumeDes" : MessageLookupByLibrary.simpleMessage("Change volume boost level"), "settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("Vue par défaut"), "settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("Onglet Téléchargés"), "settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("Onglet Favoris"), diff --git a/lib/generated/intl/messages_zh-Hans.dart b/lib/generated/intl/messages_zh-Hans.dart index 708bc01..3e266ee 100644 --- a/lib/generated/intl/messages_zh-Hans.dart +++ b/lib/generated/intl/messages_zh-Hans.dart @@ -240,6 +240,8 @@ class MessageLookup extends MessageLookupByLibrary { "settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("自动播放下一节目"), "settingsBackup" : MessageLookupByLibrary.simpleMessage("备份"), "settingsBackupDes" : MessageLookupByLibrary.simpleMessage("备份应用数据"), + "settingsBoostVolume" : MessageLookupByLibrary.simpleMessage("声音增强水平"), + "settingsBoostVolumeDes" : MessageLookupByLibrary.simpleMessage("修改声音增强水平"), "settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("默认布局"), "settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("下载页"), "settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("收藏页"), diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index 42464e3..a6b4ebe 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -1672,6 +1672,26 @@ class S { ); } + /// `Volume boost level` + String get settingsBoostVolume { + return Intl.message( + 'Volume boost level', + name: 'settingsBoostVolume', + desc: '', + args: [], + ); + } + + /// `Change volume boost level` + String get settingsBoostVolumeDes { + return Intl.message( + 'Change volume boost level', + name: 'settingsBoostVolumeDes', + desc: '', + args: [], + ); + } + /// `Default grid view` String get settingsDefaultGrid { return Intl.message( diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 65421de..57c90db 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -391,6 +391,10 @@ "@settingsBackup": {}, "settingsBackupDes": "Backup app data", "@settingsBackupDes": {}, + "settingsBoostVolume": "Volume boost level", + "@settingsBoostVolume": {}, + "settingsBoostVolumeDes": "Change volume boost level", + "@settingsBoostVolumeDes": {}, "settingsDefaultGrid": "Default grid view", "@settingsDefaultGrid": {}, "settingsDefaultGridDownload": "Download tab", diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index e7933ef..65d9138 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -391,6 +391,10 @@ "@settingsBackup": {}, "settingsBackupDes": "Respaldar datos de la app", "@settingsBackupDes": {}, + "settingsBoostVolume": "Volume boost level", + "@settingsBoostVolume": {}, + "settingsBoostVolumeDes": "Change volume boost level", + "@settingsBoostVolumeDes": {}, "settingsDefaultGrid": "Vista de cuadricula por defecto", "@settingsDefaultGrid": {}, "settingsDefaultGridDownload": "Pestaña de descargas", diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index 4ad1828..77f13c2 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -391,6 +391,10 @@ "@settingsBackup": {}, "settingsBackupDes": "Sauvegarde des données de l'application", "@settingsBackupDes": {}, + "settingsBoostVolume": "Volume boost level", + "@settingsBoostVolume": {}, + "settingsBoostVolumeDes": "Change volume boost level", + "@settingsBoostVolumeDes": {}, "settingsDefaultGrid": "Vue par défaut", "@settingsDefaultGrid": {}, "settingsDefaultGridDownload": "Onglet Téléchargés", diff --git a/lib/l10n/intl_zh_Hans.arb b/lib/l10n/intl_zh_Hans.arb index 26bb655..0874425 100644 --- a/lib/l10n/intl_zh_Hans.arb +++ b/lib/l10n/intl_zh_Hans.arb @@ -391,6 +391,10 @@ "@settingsBackup": {}, "settingsBackupDes": "备份应用数据", "@settingsBackupDes": {}, + "settingsBoostVolume": "声音增强水平", + "@settingsBoostVolume": {}, + "settingsBoostVolumeDes": "修改声音增强水平", + "@settingsBoostVolumeDes": {}, "settingsDefaultGrid": "默认布局", "@settingsDefaultGrid": {}, "settingsDefaultGridDownload": "下载页", diff --git a/lib/settings/play_setting.dart b/lib/settings/play_setting.dart index b443f6e..369f937 100644 --- a/lib/settings/play_setting.dart +++ b/lib/settings/play_setting.dart @@ -9,6 +9,7 @@ import 'package:provider/provider.dart'; import 'package:tuple/tuple.dart'; import '../home/audioplayer.dart'; +import '../state/audio_state.dart'; import '../state/setting_state.dart'; import '../util/custom_dropdown.dart'; import '../util/extension_helper.dart'; @@ -17,6 +18,16 @@ import '../util/general_dialog.dart'; const List secondsToSelect = [10, 15, 20, 25, 30, 45, 60]; class PlaySetting extends StatelessWidget { + String _volumeEffect(BuildContext context, int i) { + final s = context.s; + if (i == 2000) { + return s.playerHeightShort; + } else if (i == 3000) { + return s.playerHeightMed; + } + return s.playerHeightTall; + } + Widget _modeWidget(BuildContext context) { var settings = Provider.of(context, listen: false); return Selector>( @@ -234,7 +245,8 @@ class PlaySetting extends StatelessWidget { @override Widget build(BuildContext context) { - var settings = Provider.of(context, listen: false); + var settings = context.watch(); + var audio = context.watch(); final s = context.s; return AnnotatedRegion( value: SystemUiOverlayStyle( @@ -361,6 +373,30 @@ class PlaySetting extends StatelessWidget { }).toList()), ), ), + ListTile( + contentPadding: EdgeInsets.only( + left: 70.0, right: 20, bottom: 10, top: 10), + title: Text(s.settingsBoostVolume), + subtitle: Text(s.settingsBoostVolumeDes), + trailing: Selector( + selector: (_, audio) => audio.volumeGain, + builder: (_, volumeGain, __) => MyDropdownButton( + hint: Text(_volumeEffect(context, volumeGain)), + underline: Center(), + elevation: 1, + displayItemCount: 5, + isDense: true, + value: volumeGain, + onChanged: (value) => + audio.setVolumeGain = value, + items: [2000, 3000, 4000] + .map>((e) { + return DropdownMenuItem( + value: e, + child: Text(_volumeEffect(context, e))); + }).toList()), + ), + ), Divider(), ]), Padding( diff --git a/lib/state/audio_state.dart b/lib/state/audio_state.dart index e98e384..3207660 100644 --- a/lib/state/audio_state.dart +++ b/lib/state/audio_state.dart @@ -202,6 +202,12 @@ class AudioPlayerNotifier extends ChangeNotifier { _savePlayerHeight(); } + set setVolumeGain(int volumeGain) { + _volumeGain = volumeGain; + notifyListeners(); + volumeGainStorage.saveInt(volumeGain); + } + Future _initAudioData() async { var index = await playerHeightStorage.getInt(defaultValue: 0); _playerHeight = PlayerHeight.values[index];