From 7ecca96ad29274d7043c89288f8af281949599b7 Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Thu, 20 Aug 2020 20:51:31 +0200 Subject: [PATCH] Implement option to disable fullscreen mode using a switch in the settings launcher tab --- .../java/com/finnmglas/launcher/Functions.kt | 9 ++++- .../launcher/SettingsFragmentLauncher.kt | 12 ++++++- app/src/main/res/layout/settings_launcher.xml | 34 +++++++++++++++++++ app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 6 files changed, 56 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/finnmglas/launcher/Functions.kt b/app/src/main/java/com/finnmglas/launcher/Functions.kt index 7956fba..7bb4717 100644 --- a/app/src/main/java/com/finnmglas/launcher/Functions.kt +++ b/app/src/main/java/com/finnmglas/launcher/Functions.kt @@ -56,6 +56,7 @@ const val PREF_WALLPAPER = "background_uri" const val PREF_THEME = "theme" const val PREF_SCREEN_TIMEOUT_DISABLED = "disableTimeout" +const val PREF_SCREEN_FULLSCREEN = "useFullScreen" const val PREF_DATE_FORMAT = "dateFormat" const val PREF_SEARCH_AUTO_LAUNCH = "searchAutoLaunch" @@ -371,8 +372,14 @@ fun resetSettings(context: Context) { fun setWindowFlags(window: Window) { window.setFlags(0, 0) // clear flags - window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + // Display notification bar + if (launcherPreferences.getBoolean(PREF_SCREEN_FULLSCREEN, true)) + window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, + WindowManager.LayoutParams.FLAG_FULLSCREEN) + else window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + + // Screen Timeout if (launcherPreferences.getBoolean(PREF_SCREEN_TIMEOUT_DISABLED, false)) window.setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) diff --git a/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt b/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt index 4f5aae7..d5f898b 100644 --- a/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt +++ b/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt @@ -110,6 +110,7 @@ class SettingsFragmentLauncher : Fragment(), UIObject { override fun applyTheme() { setSwitchColor(settings_launcher_switch_screen_timeout, vibrantColor) + setSwitchColor(settings_launcher_switch_screen_full, vibrantColor) settings_launcher_container.setBackgroundColor(dominantColor) setButtonColor(settings_theme_custom_button_select, vibrantColor) @@ -128,6 +129,14 @@ class SettingsFragmentLauncher : Fragment(), UIObject { setWindowFlags(activity!!.window) } + settings_launcher_switch_screen_full.setOnClickListener { // Toggle fullscreen + launcherPreferences.edit() + .putBoolean(PREF_SCREEN_FULLSCREEN, + !launcherPreferences.getBoolean(PREF_SCREEN_FULLSCREEN, true)) + .apply() + + setWindowFlags(activity!!.window) + } } fun resetToCustomTheme(context: Activity) { @@ -156,9 +165,10 @@ class SettingsFragmentLauncher : Fragment(), UIObject { R.string.settings_launcher_change_wallpaper ) - // visually load settings settings_launcher_switch_screen_timeout.isChecked = launcherPreferences.getBoolean(PREF_SCREEN_TIMEOUT_DISABLED, false) + settings_launcher_switch_screen_full.isChecked = + launcherPreferences.getBoolean(PREF_SCREEN_FULLSCREEN, false) // Load values into the date-format spinner val staticAdapter = ArrayAdapter.createFromResource( diff --git a/app/src/main/res/layout/settings_launcher.xml b/app/src/main/res/layout/settings_launcher.xml index 2e5ff71..685e07b 100644 --- a/app/src/main/res/layout/settings_launcher.xml +++ b/app/src/main/res/layout/settings_launcher.xml @@ -155,4 +155,38 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a82824b..873b97d 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -69,6 +69,7 @@ Bildschirm Bildschirm wach halten + Vollbild verwenden