Add options to disable player gestures and remember screen brightness

This commit is contained in:
Jarne Demeulemeester 2022-03-28 14:07:31 +02:00
parent e1319683ae
commit a7e63eb1bb
No known key found for this signature in database
GPG key ID: B61B7B150DB6A6D2
10 changed files with 63 additions and 33 deletions

View file

@ -31,7 +31,7 @@ class PlayerActivity : BasePlayerActivity() {
lateinit var appPreferences: AppPreferences
lateinit var binding: ActivityPlayerBinding
private lateinit var playerGestureHelper: PlayerGestureHelper
private var playerGestureHelper: PlayerGestureHelper? = null
override val viewModel: PlayerActivityViewModel by viewModels()
private val args: PlayerActivityArgs by navArgs()
@ -49,12 +49,14 @@ class PlayerActivity : BasePlayerActivity() {
configureInsets(playerControls)
playerGestureHelper = PlayerGestureHelper(
appPreferences,
this,
binding.playerView,
getSystemService(Context.AUDIO_SERVICE) as AudioManager
)
if (appPreferences.playerGestures) {
playerGestureHelper = PlayerGestureHelper(
appPreferences,
this,
binding.playerView,
getSystemService(Context.AUDIO_SERVICE) as AudioManager
)
}
binding.playerView.findViewById<View>(R.id.back_button).setOnClickListener {
onBackPressed()

View file

@ -10,6 +10,11 @@ class AppPreferences
constructor(
private val sharedPreferences: SharedPreferences
) {
val playerGestures = sharedPreferences.getBoolean(Constants.PREF_PLAYER_GESTURES, true)
val playerBrightnessRemember =
sharedPreferences.getBoolean(Constants.PREF_PLAYER_BRIGHTNESS_REMEMBER, false)
var playerBrightness: Float
get() = sharedPreferences.getFloat(
Constants.PREF_PLAYER_BRIGHTNESS,
@ -20,5 +25,4 @@ constructor(
putFloat(Constants.PREF_PLAYER_BRIGHTNESS, value)
}
}
}

View file

@ -1,14 +1,14 @@
package dev.jdtech.jellyfin.utils
object Constants {
//player
// player
const val GESTURE_EXCLUSION_AREA_TOP = 48
const val FULL_SWIPE_RANGE_SCREEN_RATIO = 0.66f
const val ZOOM_SCALE_BASE = 1f
const val ZOOM_SCALE_THRESHOLD = 0.01f
//pref
// pref
const val PREF_PLAYER_GESTURES = "pref_player_gestures"
const val PREF_PLAYER_BRIGHTNESS_REMEMBER = "pref_player_brightness_remember"
const val PREF_PLAYER_BRIGHTNESS = "pref_player_brightness"
}

View file

@ -115,7 +115,9 @@ class PlayerGestureHelper(
private val hideGestureBrightnessIndicatorOverlayAction = Runnable {
activity.binding.gestureBrightnessLayout.visibility = View.GONE
appPreferences.playerBrightness = activity.window.attributes.screenBrightness
if (appPreferences.playerBrightnessRemember) {
appPreferences.playerBrightness = activity.window.attributes.screenBrightness
}
}
/**
@ -141,7 +143,9 @@ class PlayerGestureHelper(
}
init {
activity.window.attributes.screenBrightness = appPreferences.playerBrightness
if (appPreferences.playerBrightnessRemember) {
activity.window.attributes.screenBrightness = appPreferences.playerBrightness
}
@Suppress("ClickableViewAccessibility")
playerView.setOnTouchListener { _, event ->
if (playerView.useController) {

View file

@ -55,8 +55,8 @@
<string name="unknown_error">Error desconocido</string>
<string name="search_hint">Buscar películas, series, episodios…</string>
<string name="latest_library">Reciente en %1$s</string>
<string name="mpv_player">Reproductor MPV</string>
<string name="mpv_player_summary">Usar el reproductor MPV parar reproducir contenidos. MPV soporta mas codecs de video, audio y subtitulos.</string>
<string name="mpv_player">Reproductor mpv</string>
<string name="mpv_player_summary">Usar el reproductor mpv parar reproducir contenidos. mpv soporta mas codecs de video, audio y subtitulos.</string>
<string name="select_audio_track">Elegir pista de audio</string>
<string name="select_subtile_track">Elegir subtítulo</string>
<string name="force_software_decoding">Forzar la decodificación por software</string>

View file

@ -70,8 +70,8 @@
<string name="unknown_error">Neočekávaná chyba</string>
<string name="select_audio_track">Vyberte zvukovou stopu</string>
<string name="select_subtile_track">Vyberte titulky</string>
<string name="mpv_player">MPV přehrávač</string>
<string name="mpv_player_summary">Použít experimentální MPV přehrávač k přehrávání videí. MPV má podporu pro více video a audio kodeků a formátů titulků.</string>
<string name="mpv_player">mpv přehrávač</string>
<string name="mpv_player_summary">Použít experimentální mpv přehrávač k přehrávání videí. mpv má podporu pro více video a audio kodeků a formátů titulků.</string>
<string name="force_software_decoding">Vynutit softwarové dekódování</string>
<string name="force_software_decoding_summary">Vypnout hardwarové dekódování a vynutit softwarové dekódování. Může být užitečné pokud hardwarové dekódování produkuje artefakty.</string>
<string name="image_description_poster">%1$s plakát</string>

View file

@ -55,8 +55,8 @@
<string name="app_info">Información de la App</string>
<string name="unknown_error">Error desconocido</string>
<string name="search_hint">Buscar películas, series, episodios…</string>
<string name="mpv_player">Reproductor MPV</string>
<string name="mpv_player_summary">Usar el reproductor MPV parar reproducir contenidos. MPV soporta mas codecs de video, audio y subtitulos.</string>
<string name="mpv_player">Reproductor mpv</string>
<string name="mpv_player_summary">Usar el reproductor mpv parar reproducir contenidos. mpv soporta mas codecs de video, audio y subtitulos.</string>
<string name="select_subtile_track">Elegir subtítulo</string>
<string name="select_audio_track">Elegir pista de audio</string>
<string name="force_software_decoding">Forzar la decodificación por software</string>

View file

@ -55,10 +55,10 @@
<string name="app_info">Información de aplicación</string>
<string name="unknown_error">Error desconocido</string>
<string name="search_hint">Buscar películas, series, episodios…</string>
<string name="mpv_player">Reproductor MPV</string>
<string name="mpv_player">Reproductor mpv</string>
<string name="select_audio_track">Elegir pista de audio</string>
<string name="select_subtile_track">Elegir pista de subtitulo</string>
<string name="mpv_player_summary">Usar el reproductor MPV parar reproducir contenidos. MPV soporta mas codecs de video, audio y subtitulos.</string>
<string name="mpv_player_summary">Usar el reproductor mpv parar reproducir contenidos. mpv soporta mas codecs de video, audio y subtitulos.</string>
<string name="force_software_decoding">Forzar la decodificación por software</string>
<string name="force_software_decoding_summary">Deshabilita la decodificación por hardtware y usa solo software. Puede ser útil sí la decodificación por hardware genera artefactos visuales.</string>
</resources>

View file

@ -80,10 +80,10 @@
<string name="select_audio_track">Select audio track</string>
<string name="select_subtile_track">Select subtitle track</string>
<string name="select_playback_speed">Select playback speed</string>
<string name="mpv_player">MPV Player</string>
<string name="mpv_player">mpv player</string>
<string name="download_mobile_data">Download using mobile data</string>
<string name="download_roaming">Download when roaming</string>
<string name="mpv_player_summary">Use the experimental MPV Player to play videos. MPV has support for more video, audio and subtitle codecs.</string>
<string name="mpv_player_summary">Use the experimental mpv player to play videos. mpv has support for more video, audio and subtitle codecs.</string>
<string name="force_software_decoding">Force software decoding</string>
<string name="force_software_decoding_summary">Disable hardware decoding and use software decoding. Can be useful if hardware decoding gives weird artifacts.</string>
<string name="download_button_description">Download</string>
@ -99,6 +99,10 @@
<string name="share">Share</string>
<string name="image_description_poster">%1$s poster</string>
<string name="image_description_backdrop">%1$s backdrop</string>
<string name="gestures">Gestures</string>
<string name="player_gestures">Player gestures</string>
<string name="player_gestures_summary">Swipe up and down on the right side of the screen to change the volume and on the left side to change the brightness</string>
<string name="player_brightness_remember">Remember brightness level</string>
<string-array name="sort_by_options">
<item>Name</item>

View file

@ -1,16 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreference
app:key="mpv_player"
app:summary="@string/mpv_player_summary"
app:title="@string/mpv_player" />
<SwitchPreference
app:dependency="mpv_player"
app:key="mpv_disable_hwdec"
app:summary="@string/force_software_decoding_summary"
app:title="@string/force_software_decoding" />
<SwitchPreference
app:key="display_extended_title"
app:summary="@string/display_extended_title_summary"
app:title="@string/display_extended_title" />
<PreferenceCategory app:title="@string/mpv_player">
<SwitchPreference
app:key="mpv_player"
app:summary="@string/mpv_player_summary"
app:title="@string/mpv_player" />
<SwitchPreference
app:dependency="mpv_player"
app:key="mpv_disable_hwdec"
app:summary="@string/force_software_decoding_summary"
app:title="@string/force_software_decoding" />
</PreferenceCategory>
<PreferenceCategory app:title="@string/gestures">
<SwitchPreference
app:defaultValue="true"
app:key="pref_player_gestures"
app:summary="@string/player_gestures_summary"
app:title="@string/player_gestures" />
<SwitchPreference
app:dependency="pref_player_gestures"
app:key="pref_player_brightness_remember"
app:title="@string/player_brightness_remember" />
</PreferenceCategory>
</PreferenceScreen>