diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c9917a2d..e4525f45 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,6 +15,7 @@
+
= Build.VERSION_CODES.S) {
+ val uiMode = getSystemService(UiModeManager::class.java)
+ uiMode.setApplicationNightMode(UiModeManager.MODE_NIGHT_YES)
+ }
setContentView(R.layout.activity_main);
setNavigationBarColorAndIcons();
if (Settings.instance.playback.allowVideoToGoUnderCutout)
diff --git a/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt b/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt
index 5e2b72de..1691b9df 100644
--- a/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt
+++ b/app/src/main/java/com/futo/platformplayer/dialogs/AutoUpdateDialog.kt
@@ -7,7 +7,9 @@ import android.app.PendingIntent.getBroadcast
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller
+import android.content.pm.PackageInstaller.SessionParams.USER_ACTION_NOT_REQUIRED
import android.graphics.drawable.Animatable
+import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -155,6 +157,9 @@ class AutoUpdateDialog(context: Context?) : AlertDialog(context) {
val packageInstaller: PackageInstaller = context.packageManager.packageInstaller;
val params = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ params.setRequireUserAction(USER_ACTION_NOT_REQUIRED)
+ }
val sessionId = packageInstaller.createSession(params);
session = packageInstaller.openSession(sessionId)
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 6477fa1f..fd3319f0 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
@@ -455,6 +455,10 @@ class VideoDetailFragment() : MainFragment() {
activity?.enterPictureInPictureMode(params);
}
}
+
+ if (isFullscreen) {
+ viewDetail?.restoreBrightness()
+ }
}
fun forcePictureInPicture() {
@@ -487,6 +491,10 @@ class VideoDetailFragment() : MainFragment() {
_isActive = true;
_leavingPiP = false;
+ if (isFullscreen) {
+ _viewDetail?.saveBrightness()
+ }
+
_viewDetail?.let {
Logger.v(TAG, "onResume preventPictureInPicture=false");
it.preventPictureInPicture = false;
diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
index 0e0bb19d..bc2c683b 100644
--- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
+++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
@@ -2430,6 +2430,7 @@ class VideoDetailView : ConstraintLayout {
Logger.i(TAG, "handleFullScreen(fullscreen=$fullscreen)")
if(fullscreen) {
+ _container_content.visibility = GONE
_layoutPlayerContainer.setPadding(0, 0, 0, 0);
val lp = _container_content.layoutParams as LayoutParams;
@@ -2443,6 +2444,7 @@ class VideoDetailView : ConstraintLayout {
setProgressBarOverlayed(null);
}
else {
+ _container_content.visibility = VISIBLE
_layoutPlayerContainer.setPadding(0, 0, 0, TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 6.0f, Resources.getSystem().displayMetrics).toInt());
val lp = _container_content.layoutParams as LayoutParams;
@@ -2502,6 +2504,13 @@ class VideoDetailView : ConstraintLayout {
}
}
+ fun saveBrightness() {
+ _player.gestureControl.saveBrightness()
+ }
+ fun restoreBrightness() {
+ _player.gestureControl.restoreBrightness()
+ }
+
fun setFullscreen(fullscreen : Boolean) {
Logger.i(TAG, "setFullscreen(fullscreen=$fullscreen)")
_player.setFullScreen(fullscreen)
diff --git a/app/src/main/java/com/futo/platformplayer/views/behavior/GestureControlView.kt b/app/src/main/java/com/futo/platformplayer/views/behavior/GestureControlView.kt
index 7e3c90c9..65a750a8 100644
--- a/app/src/main/java/com/futo/platformplayer/views/behavior/GestureControlView.kt
+++ b/app/src/main/java/com/futo/platformplayer/views/behavior/GestureControlView.kt
@@ -735,24 +735,43 @@ class GestureControlView : LinearLayout {
_animatorBrightness?.start();
}
+ fun saveBrightness() {
+ try {
+ _originalBrightnessMode = android.provider.Settings.System.getInt(context.contentResolver, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE)
+
+ val brightness = android.provider.Settings.System.getInt(context.contentResolver, android.provider.Settings.System.SCREEN_BRIGHTNESS)
+ _brightnessFactor = brightness / 255.0f;
+ Log.i(TAG, "Starting brightness brightness: $brightness, _brightnessFactor: $_brightnessFactor, _originalBrightnessMode: $_originalBrightnessMode")
+
+ _originalBrightnessFactor = _brightnessFactor
+ } catch (e: Throwable) {
+ Settings.instance.gestureControls.useSystemBrightness = false
+ Settings.instance.save()
+ UIDialogs.toast(context, "useSystemBrightness disabled due to an error")
+ }
+ }
+ fun restoreBrightness() {
+ if (Settings.instance.gestureControls.restoreSystemBrightness) {
+ onBrightnessAdjusted.emit(_originalBrightnessFactor)
+
+ if (android.provider.Settings.System.canWrite(context)) {
+ Log.i(TAG, "Restoring system brightness mode _originalBrightnessMode: $_originalBrightnessMode")
+
+ android.provider.Settings.System.putInt(
+ context.contentResolver,
+ android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE,
+ _originalBrightnessMode
+ )
+ }
+ }
+ }
+
fun setFullscreen(isFullScreen: Boolean) {
resetZoomPan()
if (isFullScreen) {
if (Settings.instance.gestureControls.useSystemBrightness) {
- try {
- _originalBrightnessMode = android.provider.Settings.System.getInt(context.contentResolver, android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE)
-
- val brightness = android.provider.Settings.System.getInt(context.contentResolver, android.provider.Settings.System.SCREEN_BRIGHTNESS)
- _brightnessFactor = brightness / 255.0f;
- Log.i(TAG, "Starting brightness brightness: $brightness, _brightnessFactor: $_brightnessFactor, _originalBrightnessMode: $_originalBrightnessMode")
-
- _originalBrightnessFactor = _brightnessFactor
- } catch (e: Throwable) {
- Settings.instance.gestureControls.useSystemBrightness = false
- Settings.instance.save()
- UIDialogs.toast(context, "useSystemBrightness disabled due to an error")
- }
+ saveBrightness()
}
if (Settings.instance.gestureControls.useSystemVolume) {
@@ -766,19 +785,7 @@ class GestureControlView : LinearLayout {
onSoundAdjusted.emit(_soundFactor);
} else {
if (Settings.instance.gestureControls.useSystemBrightness) {
- if (Settings.instance.gestureControls.restoreSystemBrightness) {
- onBrightnessAdjusted.emit(_originalBrightnessFactor)
-
- if (android.provider.Settings.System.canWrite(context)) {
- Log.i(TAG, "Restoring system brightness mode _originalBrightnessMode: $_originalBrightnessMode")
-
- android.provider.Settings.System.putInt(
- context.contentResolver,
- android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE,
- _originalBrightnessMode
- )
- }
- }
+ restoreBrightness()
} else {
onBrightnessAdjusted.emit(1.0f);
}