more fonts

This commit is contained in:
Josia Pietsch 2024-09-11 14:26:08 +02:00
parent c89e74205d
commit 32c3c41266
Signed by: jrpie
GPG key ID: E70B571D66986A2D
8 changed files with 59 additions and 1 deletions

View file

@ -1,6 +1,7 @@
package de.jrpie.android.launcher package de.jrpie.android.launcher
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences
import android.content.res.Resources import android.content.res.Resources
import android.os.AsyncTask import android.os.AsyncTask
import android.os.Bundle import android.os.Bundle
@ -42,6 +43,13 @@ class HomeActivity: UIObject, AppCompatActivity(),
private lateinit var binding: HomeBinding 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 bufferedPointerCount = 1 // how many fingers on screen
private var pointerBufferTimer = Timer() private var pointerBufferTimer = Timer()
@ -71,6 +79,7 @@ class HomeActivity: UIObject, AppCompatActivity(),
// Initialise layout // Initialise layout
binding = HomeBinding.inflate(layoutInflater) binding = HomeBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
} }
override fun onStart(){ override fun onStart(){
@ -80,6 +89,8 @@ class HomeActivity: UIObject, AppCompatActivity(),
mDetector.setOnDoubleTapListener(this) mDetector.setOnDoubleTapListener(this)
super<UIObject>.onStart() super<UIObject>.onStart()
LauncherPreferences.getSharedPreferences().registerOnSharedPreferenceChangeListener(sharedPreferencesListener)
} }
private fun updateClock() { private fun updateClock() {
@ -127,6 +138,7 @@ class HomeActivity: UIObject, AppCompatActivity(),
override fun getTheme(): Resources.Theme { override fun getTheme(): Resources.Theme {
val mTheme = modifyTheme(super.getTheme()) val mTheme = modifyTheme(super.getTheme())
mTheme.applyStyle(R.style.backgroundWallpaper, true) mTheme.applyStyle(R.style.backgroundWallpaper, true)
LauncherPreferences.clock().font().applyToTheme(mTheme)
return mTheme return mTheme
} }
@ -138,7 +150,11 @@ class HomeActivity: UIObject, AppCompatActivity(),
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
clockTimer.cancel() clockTimer.cancel()
}
override fun onDestroy() {
LauncherPreferences.getSharedPreferences().unregisterOnSharedPreferenceChangeListener(sharedPreferencesListener)
super.onDestroy()
} }
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {

View file

@ -31,6 +31,7 @@ import eu.jonahbauer.android.preference.annotations.Preferences;
@Preference(name = "monochrome_icons", type = boolean.class, defaultValue = "false"), @Preference(name = "monochrome_icons", type = boolean.class, defaultValue = "false"),
}), }),
@PreferenceGroup(name = "clock", prefix = "settings_clock_", suffix = "_key", value = { @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 = "date_visible", type = boolean.class, defaultValue = "true"),
@Preference(name = "time_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"), @Preference(name = "flip_date_time", type = boolean.class, defaultValue = "false"),

View file

@ -3,9 +3,16 @@ package de.jrpie.android.launcher.preferences.theme
import android.content.res.Resources import android.content.res.Resources
import de.jrpie.android.launcher.R import de.jrpie.android.launcher.R
/**
* Changes here must also be added to @array/settings_theme_font_values
*/
enum class Font(val id: Int) { enum class Font(val id: Int) {
HACK(R.style.fontHack), HACK(R.style.fontHack),
SYSTEM_DEFAULT(R.style.fontSystemDefault), 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) { fun applyToTheme(theme: Resources.Theme) {

View file

@ -32,7 +32,8 @@ class SettingsActivity: AppCompatActivity(), UIObject {
private var sharedPreferencesListener = private var sharedPreferencesListener =
SharedPreferences.OnSharedPreferenceChangeListener { _,prefKey -> SharedPreferences.OnSharedPreferenceChangeListener { _,prefKey ->
if(prefKey?.startsWith("theme.") == true) { if(prefKey?.startsWith("theme.") == true ||
prefKey?.startsWith("display.") == true) {
recreate() recreate()
} }
} }
@ -49,6 +50,7 @@ class SettingsActivity: AppCompatActivity(), UIObject {
val sectionsPagerAdapter = SettingsSectionsPagerAdapter(this, supportFragmentManager) val sectionsPagerAdapter = SettingsSectionsPagerAdapter(this, supportFragmentManager)
val viewPager: ViewPager = findViewById(R.id.settings_viewpager) val viewPager: ViewPager = findViewById(R.id.settings_viewpager)
viewPager.adapter = sectionsPagerAdapter viewPager.adapter = sectionsPagerAdapter
val tabs: TabLayout = findViewById(R.id.settings_tabs) val tabs: TabLayout = findViewById(R.id.settings_tabs)
tabs.setupWithViewPager(viewPager) tabs.setupWithViewPager(viewPager)
} }

View file

@ -58,9 +58,15 @@
</string-array> </string-array>
<string name="settings_theme_wallpaper_key" translatable="false">theme.wallpaper</string> <string name="settings_theme_wallpaper_key" translatable="false">theme.wallpaper</string>
<string name="settings_theme_font_key" translatable="false">theme.font</string> <string name="settings_theme_font_key" translatable="false">theme.font</string>
<!-- values of de.jrpie.android.launcher.preferences.theme.Font -->
<string-array name="settings_theme_font_values" translatable="false"> <string-array name="settings_theme_font_values" translatable="false">
<item>HACK</item> <item>HACK</item>
<item>SYSTEM_DEFAULT</item> <item>SYSTEM_DEFAULT</item>
<item>SANS_SERIF</item>
<item>SERIF</item>
<item>MONOSPACE</item>
<item>SERIF_MONOSPACE</item>
</string-array> </string-array>
<string name="settings_theme_monochrome_icons_key" translatable="false">theme.monochrome_icons</string> <string name="settings_theme_monochrome_icons_key" translatable="false">theme.monochrome_icons</string>
@ -69,6 +75,7 @@
- Settings : Clock - Settings : Clock
- -
--> -->
<string name="settings_clock_font_key" translatable="false">clock.font</string>
<string name="settings_clock_time_visible_key" translatable="false">clock.time_visible</string> <string name="settings_clock_time_visible_key" translatable="false">clock.time_visible</string>
<string name="settings_clock_date_visible_key" translatable="false">clock.date_visible</string> <string name="settings_clock_date_visible_key" translatable="false">clock.date_visible</string>
<string name="settings_clock_localized_key" translatable="false">clock.date_localized</string> <string name="settings_clock_localized_key" translatable="false">clock.date_localized</string>

View file

@ -77,9 +77,15 @@
<item>Solid</item> <item>Solid</item>
</string-array> </string-array>
<string name="settings_theme_font">Font</string> <string name="settings_theme_font">Font</string>
<!-- names for @array/settings_theme_font_values -->
<string-array name="settings_theme_font_items"> <string-array name="settings_theme_font_items">
<item>Hack</item> <item>Hack</item>
<item>System default</item> <item>System default</item>
<item>Sans serif</item>
<item>Serif</item>
<item>Monospace</item>
<item>Serif monospace</item>
</string-array> </string-array>
<string name="settings_theme_monochrome_icons">Monochrome app icons</string> <string name="settings_theme_monochrome_icons">Monochrome app icons</string>

View file

@ -65,6 +65,18 @@
<item name="android:fontFamily">@font/hack</item> <item name="android:fontFamily">@font/hack</item>
<!--<item name="android:textSize">18sp</item>--> <!--<item name="android:textSize">18sp</item>-->
</style> </style>
<style name="fontMonospace">
<item name="android:fontFamily">monospace</item>
</style>
<style name="fontSerifMonospace">
<item name="android:fontFamily">serif-monospace</item>
</style>
<style name="fontSansSerif">
<item name="android:fontFamily">sans-serif</item>
</style>
<style name="fontSerif">
<item name="android:fontFamily">serif</item>
</style>

View file

@ -46,6 +46,13 @@
<PreferenceCategory <PreferenceCategory
android:title="@string/settings_launcher_section_date_time" android:title="@string/settings_launcher_section_date_time"
app:allowDividerAbove="false"> app:allowDividerAbove="false">
<DropDownPreference
android:key="@string/settings_clock_font_key"
android:title="@string/settings_theme_font"
android:entryValues="@array/settings_theme_font_values"
android:entries="@array/settings_theme_font_items"
android:summary="%s"
android:defaultValue="HACK"/>
<SwitchPreference <SwitchPreference
android:key="@string/settings_clock_localized_key" android:key="@string/settings_clock_localized_key"
android:defaultValue="false" android:defaultValue="false"