From 32c3c41266e0e60e816d51ef3621acdaad7d8b08 Mon Sep 17 00:00:00 2001 From: Josia Pietsch Date: Wed, 11 Sep 2024 14:26:08 +0200 Subject: [PATCH] more fonts --- .../de/jrpie/android/launcher/HomeActivity.kt | 16 ++++++++++++++++ .../preferences/LauncherPreferences$Config.java | 1 + .../android/launcher/preferences/theme/Font.kt | 7 +++++++ .../launcher/settings/SettingsActivity.kt | 4 +++- app/src/main/res/values/donottranslate.xml | 7 +++++++ app/src/main/res/values/strings.xml | 6 ++++++ app/src/main/res/values/styles.xml | 12 ++++++++++++ app/src/main/res/xml/preferences.xml | 7 +++++++ 8 files changed, 59 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/jrpie/android/launcher/HomeActivity.kt b/app/src/main/java/de/jrpie/android/launcher/HomeActivity.kt index 3fb83b4..d0d074d 100644 --- a/app/src/main/java/de/jrpie/android/launcher/HomeActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/HomeActivity.kt @@ -1,6 +1,7 @@ package de.jrpie.android.launcher import android.content.Intent +import android.content.SharedPreferences import android.content.res.Resources import android.os.AsyncTask import android.os.Bundle @@ -42,6 +43,13 @@ class HomeActivity: UIObject, AppCompatActivity(), private lateinit var binding: HomeBinding + private var sharedPreferencesListener = + SharedPreferences.OnSharedPreferenceChangeListener { _, prefKey -> + if(prefKey?.startsWith("clock.") == true || + prefKey?.startsWith("display.") == true) { + recreate() + } + } private var bufferedPointerCount = 1 // how many fingers on screen private var pointerBufferTimer = Timer() @@ -71,6 +79,7 @@ class HomeActivity: UIObject, AppCompatActivity(), // Initialise layout binding = HomeBinding.inflate(layoutInflater) setContentView(binding.root) + } override fun onStart(){ @@ -80,6 +89,8 @@ class HomeActivity: UIObject, AppCompatActivity(), mDetector.setOnDoubleTapListener(this) super.onStart() + + LauncherPreferences.getSharedPreferences().registerOnSharedPreferenceChangeListener(sharedPreferencesListener) } private fun updateClock() { @@ -127,6 +138,7 @@ class HomeActivity: UIObject, AppCompatActivity(), override fun getTheme(): Resources.Theme { val mTheme = modifyTheme(super.getTheme()) mTheme.applyStyle(R.style.backgroundWallpaper, true) + LauncherPreferences.clock().font().applyToTheme(mTheme) return mTheme } @@ -138,7 +150,11 @@ class HomeActivity: UIObject, AppCompatActivity(), override fun onPause() { super.onPause() clockTimer.cancel() + } + override fun onDestroy() { + LauncherPreferences.getSharedPreferences().unregisterOnSharedPreferenceChangeListener(sharedPreferencesListener) + super.onDestroy() } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java b/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java index 3e67d91..0205c74 100644 --- a/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java +++ b/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java @@ -31,6 +31,7 @@ import eu.jonahbauer.android.preference.annotations.Preferences; @Preference(name = "monochrome_icons", type = boolean.class, defaultValue = "false"), }), @PreferenceGroup(name = "clock", prefix = "settings_clock_", suffix = "_key", value = { + @Preference(name = "font", type = Font.class, defaultValue = "HACK"), @Preference(name = "date_visible", type = boolean.class, defaultValue = "true"), @Preference(name = "time_visible", type = boolean.class, defaultValue = "true"), @Preference(name = "flip_date_time", type = boolean.class, defaultValue = "false"), diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/theme/Font.kt b/app/src/main/java/de/jrpie/android/launcher/preferences/theme/Font.kt index 15d9398..c8c415d 100644 --- a/app/src/main/java/de/jrpie/android/launcher/preferences/theme/Font.kt +++ b/app/src/main/java/de/jrpie/android/launcher/preferences/theme/Font.kt @@ -3,9 +3,16 @@ package de.jrpie.android.launcher.preferences.theme import android.content.res.Resources import de.jrpie.android.launcher.R +/** + * Changes here must also be added to @array/settings_theme_font_values + */ enum class Font(val id: Int) { HACK(R.style.fontHack), SYSTEM_DEFAULT(R.style.fontSystemDefault), + SANS_SERIF(R.style.fontSansSerif), + SERIF(R.style.fontSerifMonospace), + MONOSPACE(R.style.fontMonospace), + SERIF_MONOSPACE(R.style.fontSerifMonospace), ; fun applyToTheme(theme: Resources.Theme) { diff --git a/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt b/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt index c021f34..54938fd 100644 --- a/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt @@ -32,7 +32,8 @@ class SettingsActivity: AppCompatActivity(), UIObject { private var sharedPreferencesListener = SharedPreferences.OnSharedPreferenceChangeListener { _,prefKey -> - if(prefKey?.startsWith("theme.") == true) { + if(prefKey?.startsWith("theme.") == true || + prefKey?.startsWith("display.") == true) { recreate() } } @@ -49,6 +50,7 @@ class SettingsActivity: AppCompatActivity(), UIObject { val sectionsPagerAdapter = SettingsSectionsPagerAdapter(this, supportFragmentManager) val viewPager: ViewPager = findViewById(R.id.settings_viewpager) viewPager.adapter = sectionsPagerAdapter + val tabs: TabLayout = findViewById(R.id.settings_tabs) tabs.setupWithViewPager(viewPager) } diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 96233d5..658a03d 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -58,9 +58,15 @@ theme.wallpaper theme.font + + HACK SYSTEM_DEFAULT + SANS_SERIF + SERIF + MONOSPACE + SERIF_MONOSPACE theme.monochrome_icons @@ -69,6 +75,7 @@ - Settings : Clock - --> + clock.font clock.time_visible clock.date_visible clock.date_localized diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 90b1a87..95bbbce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -77,9 +77,15 @@ Solid Font + + Hack System default + Sans serif + Serif + Monospace + Serif monospace Monochrome app icons diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index db2f80f..9d94609 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -65,6 +65,18 @@ @font/hack + + + + diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index c462d8e..87ba943 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -46,6 +46,13 @@ +