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); }