diff --git a/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt b/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt index 6b13018e5..1b75b2f1b 100644 --- a/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt +++ b/app/src/main/java/org/oxycblt/auxio/IntegerTable.kt @@ -143,12 +143,12 @@ object IntegerTable { /** ReplayGainMode.Dynamic */ const val REPLAY_GAIN_MODE_DYNAMIC = 0xA113 - /** BarAction.Next */ + /** ActionMode.Next */ const val BAR_ACTION_NEXT = 0xA119 - /** BarAction.Repeat */ + /** ActionMode.Repeat */ const val BAR_ACTION_REPEAT = 0xA11A - /** BarAction.Shuffle */ + /** ActionMode.Shuffle */ const val BAR_ACTION_SHUFFLE = 0xA11B } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/ActionMode.kt b/app/src/main/java/org/oxycblt/auxio/playback/ActionMode.kt new file mode 100644 index 000000000..6c9f2eb92 --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/playback/ActionMode.kt @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022 Auxio Project + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package org.oxycblt.auxio.playback + +import org.oxycblt.auxio.IntegerTable + +/** Represents the action that should be shown on the playback bar. */ +enum class ActionMode { + NEXT, + REPEAT, + SHUFFLE; + + val intCode: Int + get() = when (this) { + NEXT -> IntegerTable.BAR_ACTION_NEXT + REPEAT -> IntegerTable.BAR_ACTION_REPEAT + SHUFFLE -> IntegerTable.BAR_ACTION_SHUFFLE + } + + companion object { + /** Convert an int [code] into an instance, or null if it isn't valid. */ + fun fromIntCode(code: Int) = + when (code) { + IntegerTable.BAR_ACTION_NEXT -> NEXT + IntegerTable.BAR_ACTION_REPEAT -> REPEAT + IntegerTable.BAR_ACTION_SHUFFLE -> SHUFFLE + else -> null + } + } +} 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 108fa3ce6..596fb1462 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt @@ -20,7 +20,6 @@ package org.oxycblt.auxio.playback import android.os.Bundle import android.view.LayoutInflater import androidx.fragment.app.activityViewModels -import org.oxycblt.auxio.IntegerTable import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentPlaybackBarBinding import org.oxycblt.auxio.music.Song @@ -73,8 +72,8 @@ class PlaybackBarFragment : ViewBindingFragment() { // Update the secondary action to match the setting. - when (Settings(context).barAction) { - BarAction.NEXT -> { + when (Settings(context).actionMode) { + ActionMode.NEXT -> { binding.playbackSecondaryAction.apply { setIconResource(R.drawable.ic_skip_next_24) contentDescription = getString(R.string.desc_skip_next) @@ -82,7 +81,7 @@ class PlaybackBarFragment : ViewBindingFragment() { setOnClickListener { playbackModel.next() } } } - BarAction.REPEAT -> { + ActionMode.REPEAT -> { binding.playbackSecondaryAction.apply { contentDescription = getString(R.string.desc_change_repeat) iconTint = context.getColorCompat(R.color.sel_accented) @@ -90,7 +89,7 @@ class PlaybackBarFragment : ViewBindingFragment() { collectImmediately(playbackModel.repeatMode, ::updateRepeat) } } - BarAction.SHUFFLE -> { + ActionMode.SHUFFLE -> { binding.playbackSecondaryAction.apply { setIconResource(R.drawable.sel_shuffle_state_24) contentDescription = getString(R.string.desc_shuffle) @@ -144,21 +143,3 @@ class PlaybackBarFragment : ViewBindingFragment() { requireBinding().playbackProgressBar.progress = positionDs.toInt() } } - -/** Represents the action that should be shown on the playback bar. */ -enum class BarAction { - NEXT, - REPEAT, - SHUFFLE; - - companion object { - /** Convert an int [code] into an instance, or null if it isn't valid. */ - fun fromIntCode(code: Int) = - when (code) { - IntegerTable.BAR_ACTION_NEXT -> NEXT - IntegerTable.BAR_ACTION_REPEAT -> REPEAT - IntegerTable.BAR_ACTION_SHUFFLE -> SHUFFLE - else -> null - } - } -} diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt index 09fa5884f..650bf9ab3 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt @@ -32,6 +32,7 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.image.BitmapProvider import org.oxycblt.auxio.music.MusicParent import org.oxycblt.auxio.music.Song +import org.oxycblt.auxio.playback.ActionMode import org.oxycblt.auxio.playback.state.InternalPlayer import org.oxycblt.auxio.playback.state.PlaybackStateManager import org.oxycblt.auxio.playback.state.RepeatMode @@ -254,7 +255,7 @@ class MediaSessionComponent(private val context: Context, private val callback: context.getString(R.string.set_key_show_covers), context.getString(R.string.set_key_quality_covers) -> updateMediaMetadata(playbackManager.song, playbackManager.parent) - context.getString(R.string.set_key_alt_notif_action) -> invalidateSecondaryAction() + context.getString(R.string.set_key_notif_action) -> invalidateSecondaryAction() } } @@ -368,24 +369,23 @@ class MediaSessionComponent(private val context: Context, private val callback: // Android 13+ leverages custom actions in the notification. - val extraAction = - if (settings.useAltNotifAction) { - PlaybackStateCompat.CustomAction.Builder( - PlaybackService.ACTION_INVERT_SHUFFLE, - context.getString(R.string.desc_shuffle), - if (playbackManager.isShuffled) { - R.drawable.ic_shuffle_on_24 - } else { - R.drawable.ic_shuffle_off_24 - } - ) - } else { - PlaybackStateCompat.CustomAction.Builder( - PlaybackService.ACTION_INC_REPEAT_MODE, - context.getString(R.string.desc_change_repeat), - playbackManager.repeatMode.icon - ) - } + val extraAction = when (settings.notifAction) { + ActionMode.SHUFFLE -> PlaybackStateCompat.CustomAction.Builder( + PlaybackService.ACTION_INVERT_SHUFFLE, + context.getString(R.string.desc_shuffle), + if (playbackManager.isShuffled) { + R.drawable.ic_shuffle_on_24 + } else { + R.drawable.ic_shuffle_off_24 + } + ) + + else -> PlaybackStateCompat.CustomAction.Builder( + PlaybackService.ACTION_INC_REPEAT_MODE, + context.getString(R.string.desc_change_repeat), + playbackManager.repeatMode.icon + ) + } val exitAction = PlaybackStateCompat.CustomAction.Builder( @@ -404,10 +404,9 @@ class MediaSessionComponent(private val context: Context, private val callback: private fun invalidateSecondaryAction() { invalidateSessionState() - if (settings.useAltNotifAction) { - notification.updateShuffled(playbackManager.isShuffled) - } else { - notification.updateRepeatMode(playbackManager.repeatMode) + when (settings.notifAction) { + ActionMode.SHUFFLE -> notification.updateShuffled(playbackManager.isShuffled) + else -> notification.updateRepeatMode(playbackManager.repeatMode) } if (!provider.isBusy) { diff --git a/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt b/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt index 76eaa391f..b546d37cc 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/Settings.kt @@ -31,7 +31,7 @@ import org.oxycblt.auxio.music.MusicMode import org.oxycblt.auxio.music.Sort import org.oxycblt.auxio.music.storage.Directory import org.oxycblt.auxio.music.storage.MusicDirs -import org.oxycblt.auxio.playback.BarAction +import org.oxycblt.auxio.playback.ActionMode import org.oxycblt.auxio.playback.replaygain.ReplayGainMode import org.oxycblt.auxio.playback.replaygain.ReplayGainPreAmp import org.oxycblt.auxio.ui.accent.Accent @@ -74,12 +74,28 @@ class Settings(private val context: Context, private val callback: Callback? = n } inner.edit { - putInt(context.getString(R.string.set_accent), accent) + putInt(context.getString(R.string.set_key_accent), accent) remove(OldKeys.KEY_ACCENT3) apply() } } + if (inner.contains(OldKeys.KEY_ALT_NOTIF_ACTION)) { + logD("Migrating ${OldKeys.KEY_ALT_NOTIF_ACTION}") + + val mode = if (inner.getBoolean(OldKeys.KEY_ALT_NOTIF_ACTION, false)) { + ActionMode.SHUFFLE + } else { + ActionMode.REPEAT + } + + inner.edit { + putInt(context.getString(R.string.set_key_notif_action), mode.intCode) + remove(OldKeys.KEY_ALT_NOTIF_ACTION) + apply() + } + } + fun Int.migratePlaybackMode() = when (this) { // Genre playback mode was retried in 3.0.0 @@ -100,6 +116,7 @@ class Settings(private val context: Context, private val callback: Callback? = n inner.edit { putInt(context.getString(R.string.set_key_library_song_playback_mode), mode.intCode) remove(OldKeys.KEY_LIB_PLAYBACK_MODE) + apply() } } @@ -114,6 +131,7 @@ class Settings(private val context: Context, private val callback: Callback? = n mode?.intCode ?: Int.MIN_VALUE ) remove(OldKeys.KEY_DETAIL_PLAYBACK_MODE) + apply() } } } @@ -182,19 +200,19 @@ class Settings(private val context: Context, private val callback: Callback? = n get() = inner.getBoolean(context.getString(R.string.set_key_round_mode), false) /** Which action to display on the playback bar. */ - val barAction: BarAction + val actionMode: ActionMode get() = - BarAction.fromIntCode( + ActionMode.fromIntCode( inner.getInt(context.getString(R.string.set_key_bar_action), Int.MIN_VALUE) ) - ?: BarAction.NEXT + ?: ActionMode.NEXT /** * Whether to display the RepeatMode or the shuffle status on the notification. False if repeat, * true if shuffle. */ - val useAltNotifAction: Boolean - get() = inner.getBoolean(context.getString(R.string.set_key_alt_notif_action), false) + val notifAction: ActionMode + get() = ActionMode.fromIntCode(inner.getInt(context.getString(R.string.set_key_notif_action), Int.MIN_VALUE)) ?: ActionMode.REPEAT /** Whether to resume playback when a headset is connected (may not work well in all cases) */ val headsetAutoplay: Boolean @@ -439,6 +457,7 @@ class Settings(private val context: Context, private val callback: Callback? = n /** Cache of the old keys used in Auxio. */ private object OldKeys { const val KEY_ACCENT3 = "auxio_accent" + const val KEY_ALT_NOTIF_ACTION = "KEY_ALT_NOTIF_ACTION" const val KEY_LIB_PLAYBACK_MODE = "KEY_SONG_PLAY_MODE2" const val KEY_DETAIL_PLAYBACK_MODE = "auxio_detail_song_play_mode" } diff --git a/app/src/main/res/values-ar-rIQ/strings.xml b/app/src/main/res/values-ar-rIQ/strings.xml index 8ebfb1ab6..564e933c9 100644 --- a/app/src/main/res/values-ar-rIQ/strings.xml +++ b/app/src/main/res/values-ar-rIQ/strings.xml @@ -61,7 +61,7 @@ يزيد من جودة غلاف الالبوم، لكن يؤذي إلى زيادة وقت التحميل واستخدام اعلى للذاكرة اغلفة البوم مدورة جعل اغلفة الابومات ذات زوايا مدورة - استخدام نشاط بديل للإشعار + استخدام نشاط بديل للإشعار تفضيل نشاط وضع التكرار تفضيل نشاط الخلط صوتيات diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 9b39177eb..89239c5cf 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -71,7 +71,7 @@ Zvýší kvalitu obalů alb, ale znamená také delší časy načítání a vyšší využití paměti Zakulacené obaly alb Použít obaly alb se zakulacenými rohy - Použít alternativní akci oznámení + Použít alternativní akci oznámení Preferovat akci režimu opakování Preferovat akci náhodného přehrávání Zvuk diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e7ef4639c..1f1ff3221 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -49,7 +49,7 @@ Verbesst die Albumcoverqualität, führt jedoch zu längeren Ladezeiten und höherem Speicherverbrauch Abgerundete Cover Rundet Ecken der Cover ab - Alternative Aktionstaste verwenden + Alternative Aktionstaste verwenden Wiederholen-Aktionstaste bevorzugen Zufällig-Aktionstaste bevorzugen Audio diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index be80aad3c..b3d21912a 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -61,7 +61,7 @@ Incrementa la calidad de las carátulas, pero deriva en mayores tiempos de carga y uso de memoria Carátulas redondeadas Usar carátulas redondeadas para los álbumes - Usar acciones de notificación alternativas + Usar acciones de notificación alternativas Preferir acción de bucle Preferir acción de mezcla Sonido diff --git a/app/src/main/res/values-fil/strings.xml b/app/src/main/res/values-fil/strings.xml index 5ba827e7b..4809362f2 100644 --- a/app/src/main/res/values-fil/strings.xml +++ b/app/src/main/res/values-fil/strings.xml @@ -83,7 +83,7 @@ Tunog Kusang pagtugtog ng headset Laging simulan ang pagtugtog tuwing pagkonekta ng headset (maaaring \'di gumana sa lahat ng device) - Naisin ang alternatibong aksyong patalastas + Naisin ang alternatibong aksyong patalastas Naisin ang aksyong modang pang-ulit Naisin ang album kung may isang tumutugtog ReplayGain pre-amp diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 3ec76fe94..c5462f42b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -82,7 +82,7 @@ Utiliser un thème noir pur Modifier la visibilité et l\'ordre des onglets de la bibliothèque Débit binaire - Utiliser une autre action de notification + Utiliser une autre action de notification Taux d\'échantillonnage Chemin parent Nom du fichier diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 9adefa121..1a320739f 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -195,7 +195,7 @@ Postavke Tema Automatski - Koristi alternativnu radnju za obavijest + Koristi alternativnu radnju za obavijest Omogući zaobljene rubove na dodatnim elementima korisničkog sučelja (zahtijeva zaobljene omote albuma) Ponašanje Premotaj prije preskakanja natrag diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index fa58272c9..02386f30c 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -88,7 +88,7 @@ Statistik perpustakaan Matikan untuk menghemat penggunaan memori Meningkatkan kualitas sampul album, tetapi menghasilkan waktu pemuatan yang lebih lama dan penggunaan memori yang lebih tinggi - Gunakan tindakan pemberitahuan alternatif + Gunakan tindakan pemberitahuan alternatif Lebih suka tindakan mode pengulangan Lebih suka tindakan mengacak Acak diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index cffc5f4ea..cd8b72894 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -62,7 +62,7 @@ Migliora la qualità delle copertine, ma comporta maggiori tempi di caricamento e consumo di memoria Copertine dischi arrotondate Usa copertine dischi con angoli arrotondati - Usa azioni notifica alternative + Usa azioni notifica alternative Preferisci azione modalità ripetizione Preferisci azione mescola Audio diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 9a6b4b292..3cf4de995 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -69,7 +69,7 @@ 앨범 커버의 품질을 높일 수 있지만 메모리 사용량이 늘어나고 불러오는 시간이 더 오래 걸립니다. 둥근 앨범 커버 사용 앨범 커버의 가장자리를 둥글게 표시 - 다른 방식의 알림 동작 사용 + 다른 방식의 알림 동작 사용 반복 모드 동작 선호 무작위 동작 선호 오디오 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 27a4b5f15..73e6b9fd1 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -94,7 +94,7 @@ Garso Ignoruoti „MediaStore“ viršelius Apvalus režimas - Naudoti alternatyvų pranešimo veiksmą + Naudoti alternatyvų pranešimo veiksmą MPEG-1 garsas Žalia Giliai žalia diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 94e08ff28..91be8579f 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -50,7 +50,7 @@ Schakel uit om geheugengebruik te besparen Negeer Mediaopslag illustraties Verhoogt de kwaliteit van de albumhoezen, maar resulteert in langere laadtijden en hoger geheugengebruik - Gebruikt een afternatief notification action + Gebruikt een afternatief notification action Voorkeur aan herhaalde actie Voorkeur aan shuffle actie Audio diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b2b6ab8a0..6437de279 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -215,7 +215,7 @@ Nie znaleziono aplikacji mogącej wykonać to zadanie Statystyki biblioteki Załadowani artyści: %d - Użyj alternatywnej akcji w powiadomieniu + Użyj alternatywnej akcji w powiadomieniu Zatrzymaj odtwarzanie przy powtórzeniu Wyczyść zapytanie wyszukiwania Nie można przywrócić stanu odtwarzania diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index f689b61fc..d99c6395a 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -79,7 +79,7 @@ Estatísticas da biblioteca Desligue para economizar o uso de memória Aumenta a qualidade da capa do álbum, mas resulta em tempos de carregamento mais longos e maior uso de memória - Usar ação de notificação alternativa + Usar ação de notificação alternativa Prefira a ação do modo de repetição O pré-amplificador é aplicado ao ajuste existente durante a reprodução Aviso: Alterar o pré-amplificador para um valor positivo alto pode resultar em picos em algumas faixas de áudio. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d78a3183a..7ee3293ee 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -61,7 +61,7 @@ Улучшает качество обложек, но увеличивает время загрузки и использование памяти Скруглённые обложки Показывать обложки со скруглёнными краями - Кнопка в уведомлении + Кнопка в уведомлении Режим повтора Режим перемешивания Звук diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 605200a89..282e8e015 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -145,7 +145,7 @@ Müzik kitaplığınız yükleniyor… (%1$d/%2$d) Yüklenen şarkılar: %d Yüklenen albümler: %d - Alternatif bildirim eylemi kullan + Alternatif bildirim eylemi kullan Çalan bir albüm varsa tercih et Tekrar modu eylemini tercih et Karıştırma eylemini tercih et diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index c540ecdeb..b11478b6b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -61,7 +61,7 @@ 提升专辑封面质量,但需要更长的加载时间并消耗更多内存 专辑封面圆角 使用圆角设计的专辑封面 - 使用替代通知操作方案 + 使用替代通知操作方案 偏好重复播放操作 偏好随机播放操作 音频 diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index 450173bbf..f4817ea3e 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -10,7 +10,7 @@ KEY_QUALITY_COVERS auxio_round_covers auxio_bar_action - KEY_ALT_NOTIF_ACTION + auxio_notif_action auxio_headset_autoplay auxio_replay_gain @@ -70,9 +70,19 @@ - @integer/bar_action_next - @integer/bar_action_repeat - @integer/bar_action_shuffle + @integer/action_mode_next + @integer/action_mode_repeat + @integer/action_mode_shuffle + + + + @string/set_bar_action_repeat + @string/lbl_shuffle + + + + @integer/action_mode_repeat + @integer/action_mode_shuffle @@ -117,9 +127,9 @@ 1 2 - 0xA119 - 0xA11A - 0xA11B + 0xA119 + 0xA11A + 0xA11B -2147483648 0xA109 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dd11aad0f..3cc5d0bf8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -181,9 +181,7 @@ Skip to next Repeat mode Shuffle - Use alternate notification action - Prefer repeat mode action - Prefer shuffle action + Custom notification action Audio Headset autoplay diff --git a/app/src/main/res/xml/prefs_main.xml b/app/src/main/res/xml/prefs_main.xml index 232af0d6b..858569d0a 100644 --- a/app/src/main/res/xml/prefs_main.xml +++ b/app/src/main/res/xml/prefs_main.xml @@ -51,18 +51,18 @@ app:title="@string/set_round_mode" /> - +