diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0b3a74be..b73c08e3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -113,7 +113,7 @@ dependencies { kapt("com.google.dagger:hilt-compiler:$hiltVersion") // ExoPlayer - val exoplayerVersion = "2.16.1" + val exoplayerVersion = "2.17.1" implementation("com.google.android.exoplayer:exoplayer-core:$exoplayerVersion") implementation("com.google.android.exoplayer:exoplayer-ui:$exoplayerVersion") implementation(files("libs/extension-ffmpeg-release.aar")) diff --git a/app/libs/extension-ffmpeg-release.aar b/app/libs/extension-ffmpeg-release.aar index cbcf99aa..019feffa 100644 Binary files a/app/libs/extension-ffmpeg-release.aar and b/app/libs/extension-ffmpeg-release.aar differ diff --git a/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt b/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt index 19815b8a..95520971 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt @@ -10,7 +10,7 @@ import android.widget.TextView import androidx.activity.viewModels import androidx.navigation.navArgs import com.google.android.exoplayer2.C -import com.google.android.exoplayer2.SimpleExoPlayer +import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.ui.TrackSelectionDialogBuilder import dagger.hilt.android.AndroidEntryPoint import dev.jdtech.jellyfin.databinding.ActivityPlayerBinding @@ -64,9 +64,9 @@ class PlayerActivity : BasePlayerActivity() { val videoNameTextView = binding.playerView.findViewById(R.id.video_name) - viewModel.currentItemTitle.observe(this, { title -> + viewModel.currentItemTitle.observe(this) { title -> videoNameTextView.text = title - }) + } val audioButton = binding.playerView.findViewById(R.id.btn_audio_track) val subtitleButton = binding.playerView.findViewById(R.id.btn_subtitle) @@ -89,7 +89,7 @@ class PlayerActivity : BasePlayerActivity() { "trackselectiondialog" ) } - is SimpleExoPlayer -> { + is ExoPlayer -> { val mappedTrackInfo = viewModel.trackSelector.currentMappedTrackInfo ?: return@setOnClickListener @@ -120,7 +120,7 @@ class PlayerActivity : BasePlayerActivity() { "trackselectiondialog" ) } - is SimpleExoPlayer -> { + is ExoPlayer -> { val mappedTrackInfo = viewModel.trackSelector.currentMappedTrackInfo ?: return@setOnClickListener @@ -152,7 +152,7 @@ class PlayerActivity : BasePlayerActivity() { ) } - viewModel.fileLoaded.observe(this, { + viewModel.fileLoaded.observe(this) { if (it) { audioButton.isEnabled = true audioButton.imageAlpha = 255 @@ -161,13 +161,13 @@ class PlayerActivity : BasePlayerActivity() { speedButton.isEnabled = true speedButton.imageAlpha = 255 } - }) + } - viewModel.navigateBack.observe(this, { + viewModel.navigateBack.observe(this) { if (it) { onBackPressed() } - }) + } viewModel.initializePlayer(args.items) hideSystemUI() diff --git a/app/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt b/app/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt index ff4bb00a..9b7b830e 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt @@ -9,7 +9,7 @@ import android.view.View import android.view.WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL import android.view.WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF import com.google.android.exoplayer2.ui.AspectRatioFrameLayout -import com.google.android.exoplayer2.ui.PlayerView +import com.google.android.exoplayer2.ui.StyledPlayerView import dev.jdtech.jellyfin.PlayerActivity import timber.log.Timber import kotlin.math.abs @@ -17,7 +17,7 @@ import kotlin.math.abs class PlayerGestureHelper( private val appPreferences: AppPreferences, private val activity: PlayerActivity, - private val playerView: PlayerView, + private val playerView: StyledPlayerView, private val audioManager: AudioManager ) { @@ -44,7 +44,7 @@ class PlayerGestureHelper( override fun onSingleTapUp(e: MotionEvent?): Boolean { playerView.apply { - if (!isControllerVisible) showController() else hideController() + if (!isControllerFullyVisible) showController() else hideController() } return true } diff --git a/app/src/main/res/layout/activity_player.xml b/app/src/main/res/layout/activity_player.xml index 65efc487..8546d4f5 100644 --- a/app/src/main/res/layout/activity_player.xml +++ b/app/src/main/res/layout/activity_player.xml @@ -6,11 +6,12 @@ android:layout_height="match_parent" tools:context=".PlayerActivity"> - + tools:visibility="visible"> + android:textColor="@color/white" /> + tools:progress="58" /> + tools:visibility="visible"> + android:textColor="@color/white" /> + tools:progress="58" /> - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/exo_player_control_view.xml b/app/src/main/res/layout/exo_styled_player_control_view.xml similarity index 97% rename from app/src/main/res/layout/exo_player_control_view.xml rename to app/src/main/res/layout/exo_styled_player_control_view.xml index 4667c681..f2baaef7 100644 --- a/app/src/main/res/layout/exo_player_control_view.xml +++ b/app/src/main/res/layout/exo_styled_player_control_view.xml @@ -62,6 +62,7 @@ android:layout_height="wrap_content" android:layout_gravity="end" android:background="@drawable/transparent_circle_background" + android:contentDescription="@string/select_playback_speed" android:padding="16dp" android:src="@drawable/ic_gauge" app:tint="@color/white" /> @@ -126,7 +127,7 @@ android:src="@drawable/ic_rewind" /> + android:paddingStart="8dp" + android:paddingEnd="8dp"> + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/drawables.xml b/app/src/main/res/values/drawables.xml index 131b14cb..f50bbce9 100644 --- a/app/src/main/res/values/drawables.xml +++ b/app/src/main/res/values/drawables.xml @@ -1,5 +1,5 @@ - - @drawable/ic_play - @drawable/ic_pause + + @drawable/ic_play + @drawable/ic_pause \ No newline at end of file