[Android] Add the display settings to the feedback text

Nicolas Pomepuy git at videolan.org
Thu Jul 10 16:09:45 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Tue Jul  8 13:00:02 2025 +0200| [8b7b90faa9ee7244d753e5735e2f1b6790e3b111] | committer: Duncan McNamara

Add the display settings to the feedback text

> https://code.videolan.org/videolan/vlc-android/commit/8b7b90faa9ee7244d753e5735e2f1b6790e3b111
---

 .../vlc/gui/preferences/search/PreferenceParser.kt | 78 ++++++++++++++++++++--
 1 file changed, 72 insertions(+), 6 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt
index 7a666bd619..d0a4178525 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt
@@ -40,10 +40,15 @@ import com.squareup.moshi.Types
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.withContext
 import kotlinx.parcelize.Parcelize
+import org.videolan.medialibrary.interfaces.Medialibrary
+import org.videolan.tools.ALBUMS_SHOW_TRACK_NUMBER
 import org.videolan.tools.AUDIO_DELAY_GLOBAL
 import org.videolan.tools.AUDIO_PLAY_PROGRESS_MODE
+import org.videolan.tools.BROWSER_SHOW_HIDDEN_FILES
+import org.videolan.tools.BROWSER_SHOW_ONLY_MULTIMEDIA
 import org.videolan.tools.CloseableUtils
 import org.videolan.tools.DISPLAY_UNDER_NOTCH
+import org.videolan.tools.KEY_ARTISTS_SHOW_ALL
 import org.videolan.tools.KEY_INCOGNITO_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE
 import org.videolan.tools.KEY_INCOGNITO_PLAYBACK_SPEED_VIDEO_GLOBAL_VALUE
 import org.videolan.tools.KEY_PLAYBACK_SPEED_AUDIO_GLOBAL
@@ -63,6 +68,15 @@ import org.videolan.vlc.R
 import org.videolan.vlc.gui.helpers.DefaultPlaybackAction
 import org.videolan.vlc.gui.helpers.DefaultPlaybackActionMediaType
 import org.videolan.vlc.gui.helpers.UiTools
+import org.videolan.vlc.providers.medialibrary.AlbumsProvider
+import org.videolan.vlc.providers.medialibrary.ArtistsProvider
+import org.videolan.vlc.providers.medialibrary.FoldersProvider
+import org.videolan.vlc.providers.medialibrary.GenresProvider
+import org.videolan.vlc.providers.medialibrary.PlaylistsProvider
+import org.videolan.vlc.providers.medialibrary.TracksProvider
+import org.videolan.vlc.providers.medialibrary.VideoGroupsProvider
+import org.videolan.vlc.providers.medialibrary.VideosProvider
+import org.videolan.vlc.util.DummyMediaWrapperProvider
 import org.videolan.vlc.util.FileUtils
 import org.videolan.vlc.util.share
 import java.io.BufferedWriter
@@ -229,22 +243,74 @@ object PreferenceParser {
             append("\r\nAudio controls:\r\n")
             append(audioControls)
         }
-        //default actions
-        val settings = Settings.getInstance(context)
-        val defaultActions = buildString {
+        //display settings
+        val displaySettings = buildString {
+            val settings = Settings.getInstance(context)
             DefaultPlaybackActionMediaType.entries.forEach {
                 val currentPlaybackAction = it.getCurrentPlaybackAction(settings)
                 if (currentPlaybackAction != DefaultPlaybackAction.PLAY) {
                     append("* ${it.defaultActionKey} -> $currentPlaybackAction\r\n")
                 }
             }
+
+            for ((key) in settings.all) {
+                if (key.startsWith("display_mode_")) {
+                    append("* $key -> ${settings.getBoolean(key, false)}\r\n")
+                }
+            }
+
+            for ((key) in settings.all) {
+                if (key.endsWith("_only_favs")) {
+                    append("* $key -> ${settings.getBoolean(key, false)}\r\n")
+                }
+            }
+
+            if (settings.getBoolean(KEY_ARTISTS_SHOW_ALL, false))
+                append("* $KEY_ARTISTS_SHOW_ALL -> true\r\n")
+
+            if (settings.getBoolean(BROWSER_SHOW_ONLY_MULTIMEDIA, false))
+                append("* $BROWSER_SHOW_ONLY_MULTIMEDIA -> true\r\n")
+
+            if (!Settings.showTrackNumber)
+                append("* $ALBUMS_SHOW_TRACK_NUMBER -> false\r\n")
+
+            if (!settings.getBoolean(BROWSER_SHOW_HIDDEN_FILES, true))
+                append("* $BROWSER_SHOW_HIDDEN_FILES -> false\r\n")
+
+            //sorts
+            arrayOf(
+                AlbumsProvider::class.java, ArtistsProvider::class.java, FoldersProvider::class.java, GenresProvider::class.java, PlaylistsProvider::class.java, TracksProvider::class.java,
+                VideoGroupsProvider::class.java, VideosProvider::class.java
+            ).forEach {
+                for ((key) in settings.all) {
+                    if (key.startsWith(it.simpleName) && !key.endsWith("_desc") && !key.endsWith("_only_favs")) {
+                        append("* Sort ${it.simpleName} -> ${settings.getInt(key, 0)} (${getSortName(settings.getInt(key, 0))}) - ${if (settings.getBoolean("${key}_desc", false)) "DESC" else "ASC"}\r\n")
+                    }
+                }
+            }
+
         }
-        if (defaultActions.isNotBlank()) {
-            append("\r\nDefault actions:\r\n")
-            append(defaultActions)
+        if (displaySettings.isNotBlank()) {
+            append("\r\nDisplay settings:\r\n")
+            append(displaySettings)
         }
     }
 
+    fun getSortName(index:Int) = when(index) {
+        Medialibrary.SORT_DEFAULT -> "Default"
+        Medialibrary.SORT_ALPHA -> "Alphabetical"
+        Medialibrary.SORT_DURATION -> "Duration"
+        Medialibrary.SORT_INSERTIONDATE -> "Insertion date"
+        Medialibrary.SORT_LASTMODIFICATIONDATE -> "Last modification date"
+        Medialibrary.SORT_RELEASEDATE -> "Release date"
+        Medialibrary.SORT_FILESIZE -> "File size"
+        Medialibrary.SORT_ARTIST -> "Artist"
+        Medialibrary.SORT_PLAYCOUNT -> "Play count"
+        Medialibrary.SORT_ALBUM -> "Album"
+        Medialibrary.SORT_FILENAME -> "Filename"
+        else -> "Unknown"
+    }
+
     /**
      * Get a string describing the preferences changed by the user in json format
      * @param context the context to be used to retrieve the preferences



More information about the Android mailing list