From be802aa5af51e16862f1f6cddc85c69f451ba927 Mon Sep 17 00:00:00 2001 From: Hang Hang Date: Wed, 15 Dec 2021 16:13:30 +0800 Subject: [PATCH] Legacy fullscreen mode option & Button to toggle screen orientation in video player --- .../droidfs/file_viewers/FileViewerActivity.kt | 15 +++++++++++++-- .../hardcore/droidfs/file_viewers/VideoPlayer.kt | 11 +++++++++++ app/src/main/res/drawable/icon_mod.xml | 6 ++++++ app/src/main/res/layout/activity_video_player.xml | 12 ++++++++++-- app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/root_preferences.xml | 7 +++++++ 6 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable/icon_mod.xml diff --git a/app/src/main/java/sushi/hardcore/droidfs/file_viewers/FileViewerActivity.kt b/app/src/main/java/sushi/hardcore/droidfs/file_viewers/FileViewerActivity.kt index fbf05a8..58ba635 100644 --- a/app/src/main/java/sushi/hardcore/droidfs/file_viewers/FileViewerActivity.kt +++ b/app/src/main/java/sushi/hardcore/droidfs/file_viewers/FileViewerActivity.kt @@ -1,6 +1,7 @@ package sushi.hardcore.droidfs.file_viewers import android.os.Bundle +import android.view.View import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat import sushi.hardcore.droidfs.BaseActivity @@ -24,6 +25,9 @@ abstract class FileViewerActivity: BaseActivity() { private var wasMapped = false protected val mappedPlaylist = mutableListOf() protected var currentPlaylistIndex = -1 + private val legacyMod by lazy { + sharedPrefs.getBoolean("legacyMod", false) + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -41,8 +45,15 @@ abstract class FileViewerActivity: BaseActivity() { viewFile() } - open fun hideSystemUi(){ - windowInsetsController.hide(WindowInsetsCompat.Type.statusBars()) + open fun hideSystemUi() { + if (legacyMod) { + @Suppress("Deprecation") + window.decorView.systemUiVisibility = + View.SYSTEM_UI_FLAG_LOW_PROFILE or + View.SYSTEM_UI_FLAG_FULLSCREEN + } else { + windowInsetsController.hide(WindowInsetsCompat.Type.statusBars()) + } } abstract fun getFileType(): String diff --git a/app/src/main/java/sushi/hardcore/droidfs/file_viewers/VideoPlayer.kt b/app/src/main/java/sushi/hardcore/droidfs/file_viewers/VideoPlayer.kt index 0ba21c5..aa1c781 100644 --- a/app/src/main/java/sushi/hardcore/droidfs/file_viewers/VideoPlayer.kt +++ b/app/src/main/java/sushi/hardcore/droidfs/file_viewers/VideoPlayer.kt @@ -19,6 +19,17 @@ class VideoPlayer: MediaPlayer() { override fun bindPlayer(player: ExoPlayer) { binding.videoPlayer.player = player + binding.videoPlayer.setControllerVisibilityListener { visibility -> + binding.rotateButton.visibility = visibility + } + binding.rotateButton.setOnClickListener { + requestedOrientation = + if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE) + ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + else + ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE + } + } override fun getFileType(): String { diff --git a/app/src/main/res/drawable/icon_mod.xml b/app/src/main/res/drawable/icon_mod.xml new file mode 100644 index 0000000..d0267e7 --- /dev/null +++ b/app/src/main/res/drawable/icon_mod.xml @@ -0,0 +1,6 @@ + + + diff --git a/app/src/main/res/layout/activity_video_player.xml b/app/src/main/res/layout/activity_video_player.xml index e50d331..4accef8 100644 --- a/app/src/main/res/layout/activity_video_player.xml +++ b/app/src/main/res/layout/activity_video_player.xml @@ -1,9 +1,10 @@ - - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ac4debd..9e85694 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -190,6 +190,8 @@ Show folders at the beginning of the list Video player screen auto-rotation Auto-rotate the screen to fit video dimensions + Legacy fullscreen mode + Try this if windowInsetsController doesn\'t work properly on your device (usually not needed) No file explorer found. Please install one and retry. Close volume Sort By diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 05f9c9a..09d5b80 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -19,6 +19,13 @@ android:defaultValue="false" android:icon="@drawable/icon_screen_rotation"/> + +