diff --git a/app/src/main/java/com/futo/platformplayer/Settings.kt b/app/src/main/java/com/futo/platformplayer/Settings.kt
index 256d4ccf..ec425e45 100644
--- a/app/src/main/java/com/futo/platformplayer/Settings.kt
+++ b/app/src/main/java/com/futo/platformplayer/Settings.kt
@@ -6,28 +6,41 @@ import android.content.Intent
import android.net.Uri
import android.webkit.CookieManager
import androidx.lifecycle.lifecycleScope
-import com.futo.platformplayer.activities.*
+import com.futo.platformplayer.activities.MainActivity
+import com.futo.platformplayer.activities.ManageTabsActivity
+import com.futo.platformplayer.activities.PolycentricHomeActivity
+import com.futo.platformplayer.activities.PolycentricProfileActivity
+import com.futo.platformplayer.activities.SettingsActivity
import com.futo.platformplayer.api.http.ManagedHttpClient
import com.futo.platformplayer.constructs.Event0
import com.futo.platformplayer.fragment.mainactivity.bottombar.MenuBottomBarFragment
import com.futo.platformplayer.logging.Logger
import com.futo.platformplayer.serializers.FlexibleBooleanSerializer
import com.futo.platformplayer.serializers.OffsetDateTimeSerializer
-import com.futo.platformplayer.states.*
+import com.futo.platformplayer.states.StateAnnouncement
+import com.futo.platformplayer.states.StateApp
+import com.futo.platformplayer.states.StateBackup
+import com.futo.platformplayer.states.StateCache
+import com.futo.platformplayer.states.StateMeta
+import com.futo.platformplayer.states.StatePayment
+import com.futo.platformplayer.states.StatePolycentric
+import com.futo.platformplayer.states.StateUpdate
import com.futo.platformplayer.stores.FragmentedStorage
import com.futo.platformplayer.stores.FragmentedStorageFileJson
import com.futo.platformplayer.views.FeedStyle
import com.futo.platformplayer.views.fields.DropdownFieldOptionsId
-import com.futo.platformplayer.views.fields.FormField
import com.futo.platformplayer.views.fields.FieldForm
+import com.futo.platformplayer.views.fields.FormField
import com.futo.platformplayer.views.fields.FormFieldButton
import com.futo.platformplayer.views.fields.FormFieldWarning
import com.futo.platformplayer.views.overlays.slideup.SlideUpMenuItem
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
-import kotlinx.serialization.*
-import kotlinx.serialization.json.*
+import kotlinx.serialization.Serializable
+import kotlinx.serialization.Transient
+import kotlinx.serialization.encodeToString
+import kotlinx.serialization.json.Json
import java.io.File
import java.time.OffsetDateTime
@@ -407,6 +420,9 @@ class Settings : FragmentedStorageFileJson() {
@FormField(R.string.restart_after_connectivity_loss, FieldForm.DROPDOWN, R.string.restart_playback_when_gaining_connectivity_after_a_loss, 12)
@DropdownFieldOptionsId(R.array.restart_playback_after_loss)
var restartPlaybackAfterConnectivityLoss: Int = 1;
+
+ @FormField(R.string.full_screen_portrait, FieldForm.TOGGLE, R.string.allow_full_screen_portrait, 13)
+ var fullscreenPortrait: Boolean = false;
}
@FormField(R.string.comments, "group", R.string.comments_description, 6)
diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt
index 4f1b087e..e0aa0236 100644
--- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt
+++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt
@@ -108,17 +108,22 @@ class VideoDetailFragment : MainFragment {
if(Settings.instance.other.bypassRotationPrevention && orientation == OrientationManager.Orientation.PORTRAIT)
changeOrientation(OrientationManager.Orientation.PORTRAIT);
+
if(lastOrientation == newOrientation)
return;
activity?.let {
if (isFullscreen) {
- if(newOrientation == OrientationManager.Orientation.REVERSED_LANDSCAPE && it.requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
- changeOrientation(OrientationManager.Orientation.REVERSED_LANDSCAPE);
- else if(newOrientation == OrientationManager.Orientation.LANDSCAPE && it.requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE)
- changeOrientation(OrientationManager.Orientation.LANDSCAPE);
- else if(Settings.instance.playback.isAutoRotate() && (newOrientation == OrientationManager.Orientation.PORTRAIT || newOrientation == OrientationManager.Orientation.REVERSED_PORTRAIT)) {
- _viewDetail?.setFullscreen(false);
+ if (Settings.instance.playback.fullscreenPortrait) {
+ changeOrientation(newOrientation);
+ } else {
+ if(newOrientation == OrientationManager.Orientation.REVERSED_LANDSCAPE && it.requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
+ changeOrientation(OrientationManager.Orientation.REVERSED_LANDSCAPE);
+ else if(newOrientation == OrientationManager.Orientation.LANDSCAPE && it.requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE)
+ changeOrientation(OrientationManager.Orientation.LANDSCAPE);
+ else if(Settings.instance.playback.isAutoRotate() && (newOrientation == OrientationManager.Orientation.PORTRAIT || newOrientation == OrientationManager.Orientation.REVERSED_PORTRAIT)) {
+ _viewDetail?.setFullscreen(false);
+ }
}
}
else {
@@ -403,10 +408,14 @@ class VideoDetailFragment : MainFragment {
private fun onFullscreenChanged(fullscreen : Boolean) {
activity?.let {
if (fullscreen) {
- var orient = lastOrientation;
- if(orient == OrientationManager.Orientation.PORTRAIT || orient == OrientationManager.Orientation.REVERSED_PORTRAIT)
- orient = OrientationManager.Orientation.LANDSCAPE;
- changeOrientation(orient);
+ if (Settings.instance.playback.fullscreenPortrait) {
+ changeOrientation(lastOrientation);
+ } else {
+ var orient = lastOrientation;
+ if(orient == OrientationManager.Orientation.PORTRAIT || orient == OrientationManager.Orientation.REVERSED_PORTRAIT)
+ orient = OrientationManager.Orientation.LANDSCAPE;
+ changeOrientation(orient);
+ }
}
else
changeOrientation(OrientationManager.Orientation.PORTRAIT);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 893729c3..beca95c4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -342,6 +342,8 @@
Give feedback on the application
Info
Live Chat Webview
+ Fullscreen portrait
+ Allow fullscreen portrait
Switch to Audio in Background
Optimize bandwidth usage by switching to audio-only stream in background if available, may cause stutter
Preview Feed Items