diff --git a/app/src/main/kotlin/org/fossify/gallery/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/SettingsActivity.kt index 0666fa3a3..d5333f335 100644 --- a/app/src/main/kotlin/org/fossify/gallery/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/SettingsActivity.kt @@ -76,6 +76,7 @@ class SettingsActivity : SimpleActivity() { setupAppPasswordProtection() setupFileDeletionPasswordProtection() setupDeleteEmptyFolders() + setupKeepScreenOn() setupAllowPhotoGestures() setupAllowVideoGestures() setupAllowDownGesture() @@ -446,6 +447,14 @@ class SettingsActivity : SimpleActivity() { } } + private fun setupKeepScreenOn() { + binding.settingsKeepScreenOnFullscreenPhotos.isChecked = config.keepScreenOn + binding.settingsKeepScreenOnFullscreenPhotosHolder.setOnClickListener { + binding.settingsKeepScreenOnFullscreenPhotos.toggle() + config.keepScreenOn = binding.settingsKeepScreenOnFullscreenPhotos.isChecked + } + } + private fun setupAllowPhotoGestures() { binding.settingsAllowPhotoGestures.isChecked = config.allowPhotoGestures binding.settingsAllowPhotoGesturesHolder.setOnClickListener { @@ -884,6 +893,7 @@ class SettingsActivity : SimpleActivity() { put(BLACK_BACKGROUND, config.blackBackground) put(HIDE_SYSTEM_UI, config.hideSystemUI) put(ALLOW_INSTANT_CHANGE, config.allowInstantChange) + put(KEEP_SCREEN_ON, config.keepScreenOn) put(ALLOW_PHOTO_GESTURES, config.allowPhotoGestures) put(ALLOW_DOWN_GESTURE, config.allowDownGesture) put(ALLOW_ROTATING_WITH_GESTURES, config.allowRotatingWithGestures) @@ -1027,6 +1037,7 @@ class SettingsActivity : SimpleActivity() { BLACK_BACKGROUND -> config.blackBackground = value.toBoolean() HIDE_SYSTEM_UI -> config.hideSystemUI = value.toBoolean() ALLOW_INSTANT_CHANGE -> config.allowInstantChange = value.toBoolean() + KEEP_SCREEN_ON -> config.keepScreenOn = value.toBoolean() ALLOW_PHOTO_GESTURES -> config.allowPhotoGestures = value.toBoolean() ALLOW_DOWN_GESTURE -> config.allowDownGesture = value.toBoolean() ALLOW_ROTATING_WITH_GESTURES -> config.allowRotatingWithGestures = value.toBoolean() diff --git a/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt b/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt index c97d56290..15b7c17bf 100644 --- a/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt @@ -17,6 +17,7 @@ import android.view.LayoutInflater import android.view.MotionEvent import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.RelativeLayout import androidx.exifinterface.media.ExifInterface.* import com.alexvasilkov.gestures.GestureController @@ -220,6 +221,7 @@ class PhotoFragment : ViewPagerFragment() { override fun onPause() { super.onPause() + activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) storeStateVariables() } @@ -245,6 +247,7 @@ class PhotoFragment : ViewPagerFragment() { mShouldResetImage = false } + val keepScreenOn = config.keepScreenOn val allowPhotoGestures = config.allowPhotoGestures val allowInstantChange = config.allowInstantChange @@ -254,6 +257,10 @@ class PhotoFragment : ViewPagerFragment() { instantNextItem.beVisibleIf(allowInstantChange) } + if (keepScreenOn) { + activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + } + storeStateVariables() } diff --git a/app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt index e6609c575..5ea55c1d0 100644 --- a/app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt @@ -308,6 +308,10 @@ class Config(context: Context) : BaseConfig(context) { get() = prefs.getBoolean(DELETE_EMPTY_FOLDERS, false) set(deleteEmptyFolders) = prefs.edit().putBoolean(DELETE_EMPTY_FOLDERS, deleteEmptyFolders).apply() + var keepScreenOn: Boolean + get() = prefs.getBoolean(KEEP_SCREEN_ON, true) + set(keepScreenOn) = prefs.edit().putBoolean(KEEP_SCREEN_ON, keepScreenOn).apply() + var allowPhotoGestures: Boolean get() = prefs.getBoolean(ALLOW_PHOTO_GESTURES, false) set(allowPhotoGestures) = prefs.edit().putBoolean(ALLOW_PHOTO_GESTURES, allowPhotoGestures).apply() diff --git a/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt index 70c03b259..1d3a63b25 100644 --- a/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt @@ -45,6 +45,7 @@ const val INCLUDED_FOLDERS = "included_folders" const val ALBUM_COVERS = "album_covers" const val HIDE_SYSTEM_UI = "hide_system_ui" const val DELETE_EMPTY_FOLDERS = "delete_empty_folders" +const val KEEP_SCREEN_ON = "keep_screen_on" const val ALLOW_PHOTO_GESTURES = "allow_photo_gestures" const val ALLOW_VIDEO_GESTURES = "allow_video_gestures" const val TEMP_FOLDER_PATH = "temp_folder_path" diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 80372ac37..ae1ba24dc 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -491,6 +491,21 @@ + + + + + + Przewijaj miniaturki w poziomie Automatycznie ukrywaj interfejs systemu dla multimediów na pełnym ekranie Usuwaj puste foldery po usunięciu ich zawartości + Pozostawiaj ekran włączony podczas oglądania obrazów na pełnym ekranie Zezwalaj na kontrolowanie jasności obrazów pionowymi gestami Zezwalaj na kontrolowanie głośności i jasności wideo pionowymi gestami Pokazuj liczbę multimediów w folderze w widoku głównym @@ -259,4 +260,4 @@ Plik przekracza możliwości urządzenia. Nieobsługiwany format. Plik jest wadliwy lub uszkodzony. - \ 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 56e1173af..1ae52535d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,6 +180,7 @@ Scroll thumbnails horizontally Automatically hide system UI at fullscreen media Delete empty folders after deleting their content + Keep the screen on while viewing fullscreen photos Allow controlling photo brightness with vertical gestures Allow controlling video volume and brightness with vertical gestures Playback speed