[Android] Force TV UI on certain devices
Nicolas Pomepuy
git at videolan.org
Tue May 20 12:12:28 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Mon May 19 11:57:32 2025 +0200| [13f416ca0e19a58bfd2d9a4eb89248d1393480d5] | committer: Duncan McNamara
Force TV UI on certain devices
For now only used on Amazon Echo 15
> https://code.videolan.org/videolan/vlc-android/commit/13f416ca0e19a58bfd2d9a4eb89248d1393480d5
---
.../src/main/java/org/videolan/resources/AndroidDevices.kt | 7 +++++++
application/vlc-android/src/org/videolan/vlc/StartActivity.kt | 4 ++++
2 files changed, 11 insertions(+)
diff --git a/application/resources/src/main/java/org/videolan/resources/AndroidDevices.kt b/application/resources/src/main/java/org/videolan/resources/AndroidDevices.kt
index 56978dac42..e57386396f 100644
--- a/application/resources/src/main/java/org/videolan/resources/AndroidDevices.kt
+++ b/application/resources/src/main/java/org/videolan/resources/AndroidDevices.kt
@@ -72,6 +72,9 @@ object AndroidDevices {
private val mountWL = arrayOf("/mnt", "/Removable", "/storage")
val mountBL = arrayOf(EXTERNAL_PUBLIC_DIRECTORY, "/mnt/secure", "/mnt/shell", "/mnt/asec", "/mnt/nand", "/mnt/runtime", "/mnt/obb", "/mnt/media_rw/extSdCard", "/mnt/media_rw/sdcard", "/storage/emulated", "/var/run/arc")
private val deviceWL = arrayOf("/dev/block/vold", "/dev/fuse", "/mnt/media_rw", "passthrough", "//")
+ // Some devices should be considered as TVs
+ // Amazon Echo 15 (AEOHY): has touch screen but main navigation is done by remote
+ val forcedTVModels = arrayOf("AEOHY")
/**
* hasCombBar test if device has Combined Bar : only for tablet with Honeycomb or ICS
@@ -193,6 +196,10 @@ object AndroidDevices {
}
+ fun hasToForceTV(): Boolean {
+ return Build.MODEL in forcedTVModels
+ }
+
object MediaFolders {
private val EXTERNAL_PUBLIC_MOVIES_DIRECTORY_FILE: File = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
private val EXTERNAL_PUBLIC_MUSIC_DIRECTORY_FILE: File = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)
diff --git a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
index 88eef20613..69585c4b22 100644
--- a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
@@ -65,6 +65,7 @@ import org.videolan.tools.BETA_WELCOME
import org.videolan.tools.KEY_CURRENT_SETTINGS_VERSION
import org.videolan.tools.KEY_TV_ONBOARDING_DONE
import org.videolan.tools.PREF_SHOW_VIDEO_SETTINGS_DISCLAIMER
+import org.videolan.tools.PREF_TV_UI
import org.videolan.tools.Settings
import org.videolan.tools.awaitAppIsForegroung
import org.videolan.tools.getContextWithLocale
@@ -185,6 +186,9 @@ class StartActivity : FragmentActivity() {
/* Check if it's the first run */
val firstRun = savedVersionNumber == -1
Settings.firstRun = firstRun
+ if (firstRun && AndroidDevices.hasToForceTV()) {
+ settings.putSingle(PREF_TV_UI, true)
+ }
val upgrade = firstRun || savedVersionNumber != currentVersionNumber
val tv = showTvUi()
if (upgrade && (tv || !firstRun)) settings.putSingle(PREF_FIRST_RUN, currentVersionNumber)
More information about the Android
mailing list