Implement option to disable fullscreen mode

using a switch in the settings launcher tab
This commit is contained in:
Finn M Glas 2020-08-20 20:51:31 +02:00
parent 5dcf710418
commit 7ecca96ad2
No known key found for this signature in database
GPG key ID: 902A30146014DFBF
6 changed files with 56 additions and 2 deletions

View file

@ -56,6 +56,7 @@ const val PREF_WALLPAPER = "background_uri"
const val PREF_THEME = "theme" const val PREF_THEME = "theme"
const val PREF_SCREEN_TIMEOUT_DISABLED = "disableTimeout" const val PREF_SCREEN_TIMEOUT_DISABLED = "disableTimeout"
const val PREF_SCREEN_FULLSCREEN = "useFullScreen"
const val PREF_DATE_FORMAT = "dateFormat" const val PREF_DATE_FORMAT = "dateFormat"
const val PREF_SEARCH_AUTO_LAUNCH = "searchAutoLaunch" const val PREF_SEARCH_AUTO_LAUNCH = "searchAutoLaunch"
@ -371,8 +372,14 @@ fun resetSettings(context: Context) {
fun setWindowFlags(window: Window) { fun setWindowFlags(window: Window) {
window.setFlags(0, 0) // clear flags 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)) if (launcherPreferences.getBoolean(PREF_SCREEN_TIMEOUT_DISABLED, false))
window.setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, window.setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

View file

@ -110,6 +110,7 @@ class SettingsFragmentLauncher : Fragment(), UIObject {
override fun applyTheme() { override fun applyTheme() {
setSwitchColor(settings_launcher_switch_screen_timeout, vibrantColor) setSwitchColor(settings_launcher_switch_screen_timeout, vibrantColor)
setSwitchColor(settings_launcher_switch_screen_full, vibrantColor)
settings_launcher_container.setBackgroundColor(dominantColor) settings_launcher_container.setBackgroundColor(dominantColor)
setButtonColor(settings_theme_custom_button_select, vibrantColor) setButtonColor(settings_theme_custom_button_select, vibrantColor)
@ -128,6 +129,14 @@ class SettingsFragmentLauncher : Fragment(), UIObject {
setWindowFlags(activity!!.window) 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) { fun resetToCustomTheme(context: Activity) {
@ -156,9 +165,10 @@ class SettingsFragmentLauncher : Fragment(), UIObject {
R.string.settings_launcher_change_wallpaper R.string.settings_launcher_change_wallpaper
) )
// visually load settings
settings_launcher_switch_screen_timeout.isChecked = settings_launcher_switch_screen_timeout.isChecked =
launcherPreferences.getBoolean(PREF_SCREEN_TIMEOUT_DISABLED, false) 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 // Load values into the date-format spinner
val staticAdapter = ArrayAdapter.createFromResource( val staticAdapter = ArrayAdapter.createFromResource(

View file

@ -155,4 +155,38 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16sp"
android:gravity="top"
android:orientation="horizontal"
android:paddingLeft="8sp">
<TextView
android:id="@+id/settings_launcher_text_screen_full"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_launcher_full_screen"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/settings_launcher_text_time_format" />
<Space
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Switch
android:id="@+id/settings_launcher_switch_screen_full"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="@id/settings_launcher_text_screen_timeout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/settings_launcher_text_screen_timeout" />
</LinearLayout>
</LinearLayout> </LinearLayout>

View file

@ -69,6 +69,7 @@
<string name="settings_launcher_section_display">Bildschirm</string> <string name="settings_launcher_section_display">Bildschirm</string>
<string name="settings_launcher_disable_timeout">Bildschirm wach halten</string> <string name="settings_launcher_disable_timeout">Bildschirm wach halten</string>
<string name="settings_launcher_full_screen">Vollbild verwenden</string>
<!-- <!--
- -

View file

@ -69,6 +69,7 @@
<string name="settings_launcher_section_display">Écran</string> <string name="settings_launcher_section_display">Écran</string>
<string name="settings_launcher_disable_timeout">Gardez l\'écran allumé</string> <string name="settings_launcher_disable_timeout">Gardez l\'écran allumé</string>
<string name="settings_launcher_full_screen">Utiliser le plein écran</string>
<!-- <!--
- -

View file

@ -89,6 +89,7 @@
<string name="settings_launcher_section_display">Display</string> <string name="settings_launcher_section_display">Display</string>
<string name="settings_launcher_disable_timeout">Keep screen on</string> <string name="settings_launcher_disable_timeout">Keep screen on</string>
<string name="settings_launcher_full_screen">Use full screen</string>
<!-- <!--
- -