From 27e8e1c3c2bc9bd75c7bfa0cb19fd6b515c679a6 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sat, 7 Nov 2020 18:23:09 +0100 Subject: [PATCH] player interface part 2 * replace current time position with remaining time * show title and back button at the top --- .../java/org/mosad/teapod/MainActivity.kt | 3 +- .../java/org/mosad/teapod/PlayerActivity.kt | 12 ++++- .../teapod/ui/fragments/MediaFragment.kt | 2 +- .../drawable/ic_baseline_arrow_back_24.xml | 5 ++ app/src/main/res/layout/player_controls.xml | 52 ++++++++++++++----- app/src/main/res/values-de-rDE/strings.xml | 5 ++ app/src/main/res/values/strings.xml | 11 +++- 7 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_arrow_back_24.xml diff --git a/app/src/main/java/org/mosad/teapod/MainActivity.kt b/app/src/main/java/org/mosad/teapod/MainActivity.kt index 5ae7a4e..d3e29fd 100644 --- a/app/src/main/java/org/mosad/teapod/MainActivity.kt +++ b/app/src/main/java/org/mosad/teapod/MainActivity.kt @@ -151,9 +151,10 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS } } - fun startPlayer(streamUrl: String) { + fun startPlayer(streamUrl: String, title: String) { val intent = Intent(this, PlayerActivity::class.java).apply { putExtra(getString(R.string.intent_stream_url), streamUrl) + putExtra(getString(R.string.intent_title), title) } startActivity(intent) } diff --git a/app/src/main/java/org/mosad/teapod/PlayerActivity.kt b/app/src/main/java/org/mosad/teapod/PlayerActivity.kt index 2f02383..928d0a6 100644 --- a/app/src/main/java/org/mosad/teapod/PlayerActivity.kt +++ b/app/src/main/java/org/mosad/teapod/PlayerActivity.kt @@ -25,6 +25,7 @@ class PlayerActivity : AppCompatActivity() { private lateinit var controller: StyledPlayerControlView private var streamUrl = "" + private var title = "" private var playWhenReady = true private var currentWindow = 0 @@ -45,6 +46,7 @@ class PlayerActivity : AppCompatActivity() { playWhenReady = it.getBoolean(getString(R.string.state_is_playing)) } streamUrl = intent.getStringExtra(getString(R.string.intent_stream_url)).toString() + title = intent.getStringExtra(getString(R.string.intent_title)).toString() initActions() } @@ -107,7 +109,6 @@ class PlayerActivity : AppCompatActivity() { player.seekTo(playbackPosition) player.prepare() - player.addListener(object : Player.EventListener { override fun onPlaybackStateChanged(state: Int) { super.onPlaybackStateChanged(state) @@ -125,6 +126,7 @@ class PlayerActivity : AppCompatActivity() { } } }) + video_view.player = player // when the player controls get hidden, hide the bars too video_view.setControllerVisibilityListener { @@ -149,10 +151,14 @@ class PlayerActivity : AppCompatActivity() { } } - video_view.player = player + exo_text_title.text = title // set media title } private fun initActions() { + exo_close_player.setOnClickListener { + this.finish() + } + exo_rew_10.setOnClickListener { player.seekTo(player.currentPosition - rwdTime) } @@ -167,6 +173,8 @@ class PlayerActivity : AppCompatActivity() { currentWindow = player.currentWindowIndex playWhenReady = player.playWhenReady player.release() + + Log.d(javaClass.name, "Released player") } /** diff --git a/app/src/main/java/org/mosad/teapod/ui/fragments/MediaFragment.kt b/app/src/main/java/org/mosad/teapod/ui/fragments/MediaFragment.kt index a5ae999..14ec0fc 100644 --- a/app/src/main/java/org/mosad/teapod/ui/fragments/MediaFragment.kt +++ b/app/src/main/java/org/mosad/teapod/ui/fragments/MediaFragment.kt @@ -164,7 +164,7 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) : } Log.d(javaClass.name, "Playing stream: $streamUrl") - (activity as MainActivity).startPlayer(streamUrl) + (activity as MainActivity).startPlayer(streamUrl, ep.title) } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml b/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml new file mode 100644 index 0000000..fa122e1 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/player_controls.xml b/app/src/main/res/layout/player_controls.xml index 65ac427..881cf48 100644 --- a/app/src/main/res/layout/player_controls.xml +++ b/app/src/main/res/layout/player_controls.xml @@ -1,11 +1,38 @@ + + + + + + + + android:contentDescription="@string/rewind_10" + android:tint="@color/exo_white" /> + android:layout_gravity="center" + android:contentDescription="@string/play_pause" /> + android:layout_height="42dp" + android:contentDescription="@string/forward_10" /> - - - \ No newline at end of file diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 7b56b4f..6da3fdf 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -30,6 +30,11 @@ Bevorzuge alternativen Stream Untertitle-Stream verwenden, sofern vorhanden + + Player schließen + 10 Sekunden zurück + Abspielen/Pause + 10 Sekunden vorwärts speichern @android:string/cancel diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e9d4d4e..d821c67 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -39,6 +39,14 @@ Prefer secondary (sub) stream Use the subtitles stream if present + + close player + rewind 10 seconds + play/pause + forward 10 seconds + %1$02d:%2$02d + %1$d:%2$02d:%3$02d + save @android:string/cancel @@ -48,8 +56,6 @@ You need to login before you can use Teapod. The Login-Data will be stored encrypted on your device. Could not login. Please try again. Password - %1$02d:%2$02d - %1$d:%2$02d:%3$02d org.mosad.teapod.encrypted_preferences @@ -60,6 +66,7 @@ intent_stream_url + intent_title state_resume_window state_resume_position state_is_playing