From 2c7dd1241bb3e3f6a4df4b68ca52935f289fb60e Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sun, 22 May 2022 09:56:25 -0600 Subject: [PATCH] style: remove android string references Remove references to android system strings, in favor of in-house translations. Previously Auxio would use the `android.R.string.ok` and `android.R.string.cancel` strings to represent Ok and Cancel respectively, but these system strings are actually untranslated on some devices, so it is better for i18n if we use our own strings for such. --- CHANGELOG.md | 1 + .../java/org/oxycblt/auxio/MainFragment.kt | 2 +- .../auxio/home/tabs/TabCustomizeDialog.kt | 11 +- .../auxio/music/excluded/ExcludedDatabase.kt | 4 +- .../auxio/music/excluded/ExcludedDialog.kt | 9 +- .../auxio/playback/PlaybackBarFragment.kt | 5 + ...GainDialog.kt => PreAmpCustomizeDialog.kt} | 6 +- .../replaygain/ReplayGainAudioProcessor.kt | 15 +- .../auxio/settings/SettingsListFragment.kt | 5 +- .../auxio/settings/pref/IntListPrefDialog.kt | 3 +- .../auxio/ui/accent/AccentCustomizeDialog.kt | 6 +- app/src/main/res/layout/dialog_excluded.xml | 2 +- app/src/main/res/layout/dialog_pre_amp.xml | 199 +++++++++--------- app/src/main/res/values-ar-rIQ/strings.xml | 4 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 4 +- app/src/main/res/values-es/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 4 +- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-zh-rCN/strings.xml | 4 +- app/src/main/res/values/integers.xml | 2 +- app/src/main/res/values/strings.xml | 10 +- 23 files changed, 159 insertions(+), 149 deletions(-) rename app/src/main/java/org/oxycblt/auxio/playback/replaygain/{ReplayGainDialog.kt => PreAmpCustomizeDialog.kt} (94%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e37ad868..81b9fd18e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ #### What's New - Added disc number support - Added ReplayGain support for below-reference volume tracks [i.e positive ReplayGain values] +- Added ReplayGain pre-amp customization - About screen now shows counts for multiple types of library items, alongside a total duration - New disc, track, song count, and duration sorting modes diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index a9c3b5e00..34395910e 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -186,7 +186,7 @@ class MainFragment : ViewBindingFragment() { /** * A back press callback that handles how to respond to backwards navigation in the detail - * fragments and the playback panel. + * fragments and the playback panel. TODO: Migrate to new predictive API */ inner class DynamicBackPressedCallback : OnBackPressedCallback(false) { override fun handleOnBackPressed() { diff --git a/app/src/main/java/org/oxycblt/auxio/home/tabs/TabCustomizeDialog.kt b/app/src/main/java/org/oxycblt/auxio/home/tabs/TabCustomizeDialog.kt index 6a1416b8d..7373c7664 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/tabs/TabCustomizeDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/tabs/TabCustomizeDialog.kt @@ -32,8 +32,7 @@ import org.oxycblt.auxio.util.logD import org.oxycblt.auxio.util.requireAttached /** - * The dialog for customizing library tabs. This dialog does not rely on any specific ViewModel and - * serializes it's state instead of + * The dialog for customizing library tabs. * @author OxygenCobalt */ class TabCustomizeDialog : ViewBindingDialogFragment(), TabAdapter.Listener { @@ -46,14 +45,10 @@ class TabCustomizeDialog : ViewBindingDialogFragment(), TabAd override fun onConfigDialog(builder: AlertDialog.Builder) { builder.setTitle(R.string.set_lib_tabs) - - builder.setPositiveButton(android.R.string.ok) { _, _ -> + .setPositiveButton(R.string.lbl_ok) { _, _ -> logD("Committing tab changes") settingsManager.libTabs = tabAdapter.data.tabs - } - - // Negative button just dismisses, no need for a listener. - builder.setNegativeButton(android.R.string.cancel, null) + }.setNegativeButton(R.string.lbl_cancel, null) } override fun onBindingCreated(binding: DialogTabsBinding, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDatabase.kt b/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDatabase.kt index db2b94d6b..0cf4b6d9c 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDatabase.kt @@ -30,7 +30,9 @@ import org.oxycblt.auxio.util.requireBackgroundThread * Database for storing excluded directories. Note that the paths stored here will not work with * MediaStore unless you append a "%" at the end. Yes. I know Room exists. But that would needlessly * bloat my app and has crippling bugs. - * @author OxygenCobalt TODO: Migrate this to SharedPreferences? + * @author OxygenCobalt + * + * TODO: Migrate this to SharedPreferences? */ class ExcludedDatabase(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) { override fun onCreate(db: SQLiteDatabase) { diff --git a/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDialog.kt index af63b4d16..573d97f59 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/excluded/ExcludedDialog.kt @@ -53,12 +53,11 @@ class ExcludedDialog : override fun onCreateBinding(inflater: LayoutInflater) = DialogExcludedBinding.inflate(inflater) override fun onConfigDialog(builder: AlertDialog.Builder) { - builder.setTitle(R.string.set_excluded) - // Don't set the click listener here, we do some custom black magic in onCreateView instead. - builder.setNeutralButton(R.string.lbl_add, null) - builder.setPositiveButton(R.string.lbl_save, null) - builder.setNegativeButton(android.R.string.cancel, null) + builder.setTitle(R.string.set_excluded) + .setNeutralButton(R.string.lbl_add, null) + .setPositiveButton(R.string.lbl_save, null) + .setNegativeButton(R.string.lbl_cancel, null) } override fun onBindingCreated(binding: DialogExcludedBinding, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt index 3de34434d..3b91658c9 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt @@ -34,6 +34,11 @@ import org.oxycblt.auxio.util.getAttrColorSafe import org.oxycblt.auxio.util.systemBarInsetsCompat import org.oxycblt.auxio.util.textSafe +/** + * A fragment showing the current playback state in a compact manner. Placed at the bottom of the + * screen. This expands into [PlaybackPanelFragment]. + * @author OxygenCobalt + */ class PlaybackBarFragment : ViewBindingFragment() { private val playbackModel: PlaybackViewModel by activityViewModels() private val navModel: NavigationViewModel by activityViewModels() diff --git a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainDialog.kt b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/PreAmpCustomizeDialog.kt similarity index 94% rename from app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainDialog.kt rename to app/src/main/java/org/oxycblt/auxio/playback/replaygain/PreAmpCustomizeDialog.kt index d7439e0bc..8c26c01a0 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/PreAmpCustomizeDialog.kt @@ -33,7 +33,7 @@ import org.oxycblt.auxio.util.textSafe * The dialog for customizing the ReplayGain pre-amp values. * @author OxygenCobalt */ -class ReplayGainDialog : ViewBindingDialogFragment() { +class PreAmpCustomizeDialog : ViewBindingDialogFragment() { private val settingsManager = SettingsManager.getInstance() override fun onCreateBinding(inflater: LayoutInflater) = DialogPreAmpBinding.inflate(inflater) @@ -41,12 +41,12 @@ class ReplayGainDialog : ViewBindingDialogFragment() { override fun onConfigDialog(builder: AlertDialog.Builder) { builder .setTitle(R.string.set_pre_amp) - .setPositiveButton(android.R.string.ok) { _, _ -> + .setPositiveButton(R.string.lbl_ok) { _, _ -> val binding = requireBinding() settingsManager.replayGainPreAmp = ReplayGainPreAmp(binding.withTagsSlider.value, binding.withoutTagsSlider.value) } - .setNegativeButton(android.R.string.cancel, null) + .setNegativeButton(R.string.lbl_cancel, null) } override fun onBindingCreated(binding: DialogPreAmpBinding, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt index c4780d81d..3a4bf355e 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/replaygain/ReplayGainAudioProcessor.kt @@ -35,10 +35,12 @@ import org.oxycblt.auxio.util.logW import org.oxycblt.auxio.util.unlikelyToBeNull /** - * An [AudioProcessor] that automatically handles ReplayGain values and their amplification of the - * audio stream. Instead of leveraging the volume attribute like other implementations, this system - * manipulates the bitstream itself to modify the volume, which allows the use of positive - * ReplayGain values. + * An [AudioProcessor] that handles ReplayGain values and their amplification of the audio stream. + * Instead of leveraging the volume attribute like other implementations, this system manipulates + * the bitstream itself to modify the volume, which allows the use of positive ReplayGain values. + * + * Note that you must still give it a [Metadata] instance for it to function, which should be done + * when the active track changes. * * @author OxygenCobalt */ @@ -59,9 +61,8 @@ class ReplayGainAudioProcessor : BaseAudioProcessor() { // --- REPLAYGAIN PARSING --- /** - * Updates the rough volume adjustment for [Metadata] with ReplayGain tags. This is - * tangentially based off Vanilla Music's implementation, but has diverged to a significant - * extent. + * Updates the rough volume adjustment for [Metadata] with ReplayGain tags. This is tangentially + * based off Vanilla Music's implementation, but has diverged to a significant extent. */ fun applyReplayGain(metadata: Metadata?) { if (settingsManager.replayGainMode == ReplayGainMode.OFF) { diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt index 782af507a..d540a7774 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt @@ -33,8 +33,8 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.home.tabs.TabCustomizeDialog import org.oxycblt.auxio.music.excluded.ExcludedDialog import org.oxycblt.auxio.playback.PlaybackViewModel -import org.oxycblt.auxio.playback.replaygain.ReplayGainDialog import org.oxycblt.auxio.playback.replaygain.ReplayGainMode +import org.oxycblt.auxio.playback.replaygain.PreAmpCustomizeDialog import org.oxycblt.auxio.settings.pref.IntListPreference import org.oxycblt.auxio.settings.pref.IntListPreferenceDialog import org.oxycblt.auxio.ui.accent.AccentCustomizeDialog @@ -168,7 +168,8 @@ class SettingsListFragment : PreferenceFragmentCompat() { SettingsManager.KEY_PRE_AMP -> { onPreferenceClickListener = Preference.OnPreferenceClickListener { - ReplayGainDialog().show(childFragmentManager, ReplayGainDialog.TAG) + PreAmpCustomizeDialog() + .show(childFragmentManager, PreAmpCustomizeDialog.TAG) true } } diff --git a/app/src/main/java/org/oxycblt/auxio/settings/pref/IntListPrefDialog.kt b/app/src/main/java/org/oxycblt/auxio/settings/pref/IntListPrefDialog.kt index 6114162ce..d991c8099 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/pref/IntListPrefDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/pref/IntListPrefDialog.kt @@ -22,6 +22,7 @@ import android.os.Bundle import androidx.preference.PreferenceDialogFragmentCompat import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.oxycblt.auxio.BuildConfig +import org.oxycblt.auxio.R class IntListPreferenceDialog : PreferenceDialogFragmentCompat() { private val listPreference: IntListPreference @@ -35,7 +36,7 @@ class IntListPreferenceDialog : PreferenceDialogFragmentCompat() { val builder = MaterialAlertDialogBuilder(requireContext(), theme) builder.setTitle(listPreference.title) builder.setPositiveButton(null, null) - builder.setNegativeButton(android.R.string.cancel, null) + builder.setNegativeButton(R.string.lbl_cancel, null) builder.setSingleChoiceItems(listPreference.entries, listPreference.getValueIndex()) { _, index -> diff --git a/app/src/main/java/org/oxycblt/auxio/ui/accent/AccentCustomizeDialog.kt b/app/src/main/java/org/oxycblt/auxio/ui/accent/AccentCustomizeDialog.kt index fe93acc81..ff2629cd4 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/accent/AccentCustomizeDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/accent/AccentCustomizeDialog.kt @@ -42,7 +42,7 @@ class AccentCustomizeDialog : override fun onConfigDialog(builder: AlertDialog.Builder) { builder .setTitle(R.string.set_accent) - .setPositiveButton(android.R.string.ok) { _, _ -> + .setPositiveButton(R.string.lbl_ok) { _, _ -> if (accentAdapter.selectedAccent != settingsManager.accent) { logD("Applying new accent") settingsManager.accent = unlikelyToBeNull(accentAdapter.selectedAccent) @@ -51,9 +51,7 @@ class AccentCustomizeDialog : dismiss() } - - // Negative button just dismisses, no need for a listener. - .setNegativeButton(android.R.string.cancel, null) + .setNegativeButton(R.string.lbl_cancel, null) } override fun onBindingCreated(binding: DialogAccentBinding, savedInstanceState: Bundle?) { diff --git a/app/src/main/res/layout/dialog_excluded.xml b/app/src/main/res/layout/dialog_excluded.xml index f4bc48212..1062cd669 100644 --- a/app/src/main/res/layout/dialog_excluded.xml +++ b/app/src/main/res/layout/dialog_excluded.xml @@ -26,7 +26,7 @@ android:paddingStart="@dimen/spacing_medium" android:paddingEnd="@dimen/spacing_medium" android:paddingBottom="@dimen/spacing_medium" - android:text="@string/lbl_no_dirs" + android:text="@string/err_no_dirs" android:textAlignment="center" android:textAppearance="@style/TextAppearance.Auxio.TitleMidLarge" android:textColor="?android:attr/textColorSecondary" /> diff --git a/app/src/main/res/layout/dialog_pre_amp.xml b/app/src/main/res/layout/dialog_pre_amp.xml index 87a9a7dc4..5b21fbb0d 100644 --- a/app/src/main/res/layout/dialog_pre_amp.xml +++ b/app/src/main/res/layout/dialog_pre_amp.xml @@ -1,103 +1,108 @@ - + android:layout_height="match_parent"> - - - - - - - - - - - - - + android:layout_height="match_parent"> - \ No newline at end of file + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-ar-rIQ/strings.xml b/app/src/main/res/values-ar-rIQ/strings.xml index aa930ae13..4bfa5fc38 100644 --- a/app/src/main/res/values-ar-rIQ/strings.xml +++ b/app/src/main/res/values-ar-rIQ/strings.xml @@ -47,7 +47,7 @@ أضف احفظ - لا مجلد + لا مجلد حول الإصدار @@ -82,7 +82,7 @@ صوتيات صخب الصوت - اطفاء + اطفاء تفضيل المقطع تفضيل الالبوم ديناميكي diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 4bfe687ba..4e2fbf871 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -38,7 +38,7 @@ "Stav uložen" "Přidat" "Uložit" - "Žádné složky" + "Žádné složky" "O aplikaci" "Verze" "Zobrazit na GitHubu" diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 0c375acfe..8894c76f5 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -40,7 +40,7 @@ Hinzufügen Speichern - Keine Ordner + Keine Ordner Über Version @@ -74,7 +74,7 @@ Kopfhörer automatische Wiedergabe Beginne die Wiedergabe immer, wenn Kopfhörer verbunden sind (funktioniert nicht auf allen Geräten) ReplayGain - Aus + Aus Titel bevorzugen Album bevorzugen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b9e43f475..6ab4d0164 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -47,7 +47,7 @@ Agregar Guardar - Sin carpetas + Sin carpetas Acerca de Versión @@ -82,7 +82,7 @@ Sonido ReplayGain - Desactivado + Desactivado Por pista Por álbum Dinámico diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 2ace338c8..613846408 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -46,7 +46,7 @@ Aggiungi Salva - Nessuna cartella + Nessuna cartella Informazioni Versione @@ -105,7 +105,7 @@ Cartelle escluse Il contenuto delle cartelle escluse sarà nascosto dalla tua libreria - Spento + Spento Musica non trovata diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 22aa19213..b09238326 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -41,7 +41,7 @@ Toevoegen Opslaan - Geen Mappen + Geen Mappen Over Versie diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9cef75174..b3164b552 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -47,7 +47,7 @@ Добавить Сохранить - Папок нет + Папок нет О программе Версия @@ -84,7 +84,7 @@ Воспроизводить при подключении Всегда начинать воспроизведение при подключении наушников (может работать не на всех устройствах) ReplayGain - Выкл. + Выкл. По треку По альбому Динамический diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 690398bff..9df6349c7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -46,7 +46,7 @@ 添加 保存 - 没有任何文件夹 + 没有任何文件夹 关于 版本 @@ -104,7 +104,7 @@ 排除文件夹 被排除文件夹的内容将从媒体库中隐藏 - 关闭 + 关闭 没有找到音乐 diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml index 37925a9ee..9213cc925 100644 --- a/app/src/main/res/values/integers.xml +++ b/app/src/main/res/values/integers.xml @@ -31,7 +31,7 @@ - @string/set_off + @string/lbl_off @string/set_replay_gain_track @string/set_replay_gain_album @string/set_replay_gain_dynamic diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8849ccffb..945ca0cd8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -48,9 +48,13 @@ State saved + + @android:string/ok + + @android:string/cancel Add Save - No Folders + Off About Version @@ -114,14 +118,12 @@ Excluded folders The content of excluded folders is hidden from your library - - Off - No music found Music loading failed Auxio needs permission to read your music library No app can open this link + No Folders This folder is not supported Auxio does not support this window size