Display file name on video player
This commit is contained in:
parent
71a314b0a0
commit
bea0906f65
@ -2,7 +2,6 @@ package sushi.hardcore.droidfs.file_viewers
|
|||||||
|
|
||||||
import com.google.android.exoplayer2.ExoPlayer
|
import com.google.android.exoplayer2.ExoPlayer
|
||||||
import sushi.hardcore.droidfs.databinding.ActivityAudioPlayerBinding
|
import sushi.hardcore.droidfs.databinding.ActivityAudioPlayerBinding
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
class AudioPlayer: MediaPlayer(){
|
class AudioPlayer: MediaPlayer(){
|
||||||
private lateinit var binding: ActivityAudioPlayerBinding
|
private lateinit var binding: ActivityAudioPlayerBinding
|
||||||
@ -11,7 +10,6 @@ class AudioPlayer: MediaPlayer(){
|
|||||||
binding = ActivityAudioPlayerBinding.inflate(layoutInflater)
|
binding = ActivityAudioPlayerBinding.inflate(layoutInflater)
|
||||||
setContentView(binding.root)
|
setContentView(binding.root)
|
||||||
super.viewFile()
|
super.viewFile()
|
||||||
refreshFileName()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getFileType(): String {
|
override fun getFileType(): String {
|
||||||
@ -22,17 +20,7 @@ class AudioPlayer: MediaPlayer(){
|
|||||||
binding.audioController.player = player
|
binding.audioController.player = player
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPlaylistIndexChanged() {
|
override fun onNewFileName(fileName: String) {
|
||||||
refreshFileName()
|
binding.musicTitle.text = fileName
|
||||||
}
|
|
||||||
|
|
||||||
private fun refreshFileName() {
|
|
||||||
val filename = File(filePath).name
|
|
||||||
val pos = filename.lastIndexOf('.')
|
|
||||||
binding.musicTitle.text = if (pos != -1){
|
|
||||||
filename.substring(0,pos)
|
|
||||||
} else {
|
|
||||||
filename
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,6 +9,7 @@ import com.google.android.exoplayer2.video.VideoSize
|
|||||||
import sushi.hardcore.droidfs.ConstValues
|
import sushi.hardcore.droidfs.ConstValues
|
||||||
import sushi.hardcore.droidfs.R
|
import sushi.hardcore.droidfs.R
|
||||||
import sushi.hardcore.droidfs.widgets.CustomAlertDialogBuilder
|
import sushi.hardcore.droidfs.widgets.CustomAlertDialogBuilder
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
abstract class MediaPlayer: FileViewerActivity() {
|
abstract class MediaPlayer: FileViewerActivity() {
|
||||||
private lateinit var player: ExoPlayer
|
private lateinit var player: ExoPlayer
|
||||||
@ -16,10 +17,11 @@ abstract class MediaPlayer: FileViewerActivity() {
|
|||||||
override fun viewFile() {
|
override fun viewFile() {
|
||||||
supportActionBar?.hide()
|
supportActionBar?.hide()
|
||||||
initializePlayer()
|
initializePlayer()
|
||||||
|
refreshFileName()
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract fun bindPlayer(player: ExoPlayer)
|
abstract fun bindPlayer(player: ExoPlayer)
|
||||||
protected open fun onPlaylistIndexChanged() {}
|
abstract fun onNewFileName(fileName: String)
|
||||||
protected open fun onVideoSizeChanged(width: Int, height: Int) {}
|
protected open fun onVideoSizeChanged(width: Int, height: Int) {}
|
||||||
|
|
||||||
private fun createMediaSource(filePath: String): MediaSource {
|
private fun createMediaSource(filePath: String): MediaSource {
|
||||||
@ -60,7 +62,7 @@ abstract class MediaPlayer: FileViewerActivity() {
|
|||||||
override fun onPositionDiscontinuity(reason: Int) {
|
override fun onPositionDiscontinuity(reason: Int) {
|
||||||
if (player.currentMediaItemIndex != currentPlaylistIndex) {
|
if (player.currentMediaItemIndex != currentPlaylistIndex) {
|
||||||
playlistNext(player.currentMediaItemIndex == (currentPlaylistIndex+1) % mappedPlaylist.size)
|
playlistNext(player.currentMediaItemIndex == (currentPlaylistIndex+1) % mappedPlaylist.size)
|
||||||
onPlaylistIndexChanged()
|
refreshFileName()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -73,4 +75,8 @@ abstract class MediaPlayer: FileViewerActivity() {
|
|||||||
player.release()
|
player.release()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun refreshFileName() {
|
||||||
|
onNewFileName(File(filePath).name)
|
||||||
|
}
|
||||||
}
|
}
|
@ -21,7 +21,7 @@ class VideoPlayer: MediaPlayer() {
|
|||||||
binding.videoPlayer.player = player
|
binding.videoPlayer.player = player
|
||||||
binding.videoPlayer.doubleTapOverlay = binding.doubleTapOverlay
|
binding.videoPlayer.doubleTapOverlay = binding.doubleTapOverlay
|
||||||
binding.videoPlayer.setControllerVisibilityListener { visibility ->
|
binding.videoPlayer.setControllerVisibilityListener { visibility ->
|
||||||
binding.rotateButton.visibility = visibility
|
binding.topBar.visibility = visibility
|
||||||
}
|
}
|
||||||
binding.rotateButton.setOnClickListener {
|
binding.rotateButton.setOnClickListener {
|
||||||
requestedOrientation =
|
requestedOrientation =
|
||||||
@ -33,6 +33,10 @@ class VideoPlayer: MediaPlayer() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onNewFileName(fileName: String) {
|
||||||
|
binding.textFileName.text = fileName
|
||||||
|
}
|
||||||
|
|
||||||
override fun getFileType(): String {
|
override fun getFileType(): String {
|
||||||
return "video"
|
return "video"
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:id="@+id/root_layout"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@color/fullScreenBackgroundColor">
|
android:background="@color/fullScreenBackgroundColor">
|
||||||
@ -17,8 +15,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:layout_margin="20dp"
|
android:layout_marginHorizontal="20dp"
|
||||||
android:orientation="horizontal">
|
android:layout_marginTop="10dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/text_filename"
|
android:id="@+id/text_filename"
|
||||||
@ -26,7 +24,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:textSize="20sp"
|
android:textSize="@dimen/title_file_name_text_size"
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:layout_toStartOf="@id/image_delete"
|
android:layout_toStartOf="@id/image_delete"
|
||||||
android:layout_centerVertical="true"/>
|
android:layout_centerVertical="true"/>
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:gravity="center"
|
|
||||||
android:layoutDirection="ltr"
|
|
||||||
android:background="@color/fullScreenBackgroundColor">
|
android:background="@color/fullScreenBackgroundColor">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
@ -26,12 +24,32 @@
|
|||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/top_bar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_marginStart="20dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/text_file_name"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textSize="@dimen/title_file_name_text_size"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_toStartOf="@id/rotate_button"
|
||||||
|
android:layout_centerVertical="true"/>
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/rotate_button"
|
android:id="@+id/rotate_button"
|
||||||
style="@style/ExoMediaButton"
|
style="@style/ExoMediaButton"
|
||||||
android:layout_gravity="top|end"
|
|
||||||
android:layout_marginTop="15dp"
|
|
||||||
android:src="@drawable/icon_screen_rotation"
|
android:src="@drawable/icon_screen_rotation"
|
||||||
app:tint="@color/neutralIconTint"/>
|
app:tint="@color/neutralIconTint"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"/>
|
||||||
|
|
||||||
</FrameLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
@ -11,4 +11,5 @@
|
|||||||
<dimen name="dialog_horizontal_padding">30dp</dimen>
|
<dimen name="dialog_horizontal_padding">30dp</dimen>
|
||||||
<dimen name="dialog_padding_top">10dp</dimen>
|
<dimen name="dialog_padding_top">10dp</dimen>
|
||||||
<dimen name="dialog_text_size">16sp</dimen>
|
<dimen name="dialog_text_size">16sp</dimen>
|
||||||
|
<dimen name="title_file_name_text_size">20sp</dimen>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user