From 31fd1e3fdcd80565f46ce935204bc9632483eb94 Mon Sep 17 00:00:00 2001 From: js6pak Date: Sun, 15 Jan 2023 15:20:56 +0100 Subject: [PATCH] Add intro skipper support (#219) * Add intro skipper support * Fix checking for 404 * Add back missing Intro class and dependencies due to rebase * Add preference * Clean up visibility logic * Update skip intro button design * Add proguard file to keep Serializable classes * Move introCheck to a separate Runnable and fix Runnables are never cleaned up * Simplify check before starting runnable Co-authored-by: Jarne Demeulemeester --- .../dev/jdtech/jellyfin/PlayerActivity.kt | 13 ++++++ .../src/main/res/layout/exo_player_view.xml | 19 ++++++++ build.gradle.kts | 1 + core/src/main/res/values/strings.xml | 3 ++ .../main/res/xml/fragment_settings_player.xml | 6 +++ data/build.gradle.kts | 4 ++ data/proguard-rules.pro | 40 +++++++++++++++++ .../java/dev/jdtech/jellyfin/models/Intro.kt | 16 +++++++ .../jellyfin/repository/JellyfinRepository.kt | 3 ++ .../repository/JellyfinRepositoryImpl.kt | 17 +++++++ gradle/libs.versions.toml | 3 ++ .../viewmodels/PlayerActivityViewModel.kt | 45 ++++++++++++++++--- .../dev/jdtech/jellyfin/AppPreferences.kt | 1 + .../java/dev/jdtech/jellyfin/Constants.kt | 1 + 14 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 data/proguard-rules.pro create mode 100644 data/src/main/java/dev/jdtech/jellyfin/models/Intro.kt diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt index 985ca978..914b77af 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt @@ -5,9 +5,11 @@ import android.media.AudioManager import android.os.Bundle import android.view.View import android.view.WindowManager +import android.widget.Button import android.widget.ImageButton import android.widget.TextView import androidx.activity.viewModels +import androidx.core.view.isVisible import androidx.media3.common.C import androidx.media3.exoplayer.ExoPlayer import androidx.media3.ui.TrackSelectionDialogBuilder @@ -70,6 +72,7 @@ class PlayerActivity : BasePlayerActivity() { val audioButton = binding.playerView.findViewById(R.id.btn_audio_track) val subtitleButton = binding.playerView.findViewById(R.id.btn_subtitle) val speedButton = binding.playerView.findViewById(R.id.btn_speed) + val skipIntroButton = binding.playerView.findViewById