[Android] Force background and bars colors when forcing the theme

Nicolas Pomepuy git at videolan.org
Mon Jul 28 05:42:04 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Apr 30 12:03:12 2025 +0200| [b25b269161df5f87a4759995ef87c3b8c237fcbf] | committer: Nicolas Pomepuy

Force background and bars colors when forcing the theme

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

 .../src/org/videolan/vlc/gui/helpers/UiTools.kt        | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt b/application/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt
index 3269f03988..02b9061ec2 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt
@@ -69,9 +69,11 @@ import androidx.core.content.getSystemService
 import androidx.core.content.pm.ShortcutInfoCompat
 import androidx.core.content.pm.ShortcutManagerCompat
 import androidx.core.graphics.drawable.IconCompat
+import androidx.core.graphics.drawable.toDrawable
 import androidx.core.net.toUri
 import androidx.core.os.bundleOf
 import androidx.core.view.MenuItemCompat
+import androidx.core.view.WindowCompat
 import androidx.databinding.BindingAdapter
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentActivity
@@ -1074,7 +1076,21 @@ fun BaseActivity.applyTheme() {
         setTheme(R.style.Theme_VLC_Black)
         return
     }
-    AppCompatDelegate.setDefaultNightMode(Integer.valueOf(settings.getString(KEY_APP_THEME, "-1")!!))
+
+    val string = settings.getString(KEY_APP_THEME, "-1")
+    when (string) {
+        "1" -> {
+            window.setBackgroundDrawable(ContextCompat.getColor(this, R.color.white).toDrawable())
+            WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars = true
+            WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightNavigationBars = true
+        }
+        "2" -> {
+            window.setBackgroundDrawable(ContextCompat.getColor(this, R.color.mini_player_dark).toDrawable())
+            WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars = false
+            WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightNavigationBars = false
+        }
+    }
+    AppCompatDelegate.setDefaultNightMode(Integer.valueOf(string!!))
 }
 
 fun getTvIconRes(mediaLibraryItem: MediaLibraryItem) = when (mediaLibraryItem.itemType) {



More information about the Android mailing list