diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardIconsSet.kt b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardIconsSet.kt
index 72ca012e6..dd4852675 100644
--- a/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardIconsSet.kt
+++ b/app/src/main/java/helium314/keyboard/keyboard/internal/KeyboardIconsSet.kt
@@ -18,8 +18,8 @@ class KeyboardIconsSet private constructor() {
fun loadIcons(context: Context) {
val prefs = DeviceProtectedUtils.getSharedPreferences(context)
- val theme = prefs.getString(Settings.PREF_THEME_STYLE, KeyboardTheme.STYLE_MATERIAL)
- val ids = when (theme) {
+ val iconStyle = prefs.getString(Settings.PREF_ICON_STYLE, KeyboardTheme.STYLE_MATERIAL)
+ val ids = when (iconStyle) {
KeyboardTheme.STYLE_HOLO -> keyboardIconsHolo
KeyboardTheme.STYLE_ROUNDED -> keyboardIconsRounded
else -> keyboardIconsMaterial
diff --git a/app/src/main/java/helium314/keyboard/latin/settings/AppearanceSettingsFragment.kt b/app/src/main/java/helium314/keyboard/latin/settings/AppearanceSettingsFragment.kt
index df1969b2a..5bf2525e2 100644
--- a/app/src/main/java/helium314/keyboard/latin/settings/AppearanceSettingsFragment.kt
+++ b/app/src/main/java/helium314/keyboard/latin/settings/AppearanceSettingsFragment.kt
@@ -33,6 +33,7 @@ class AppearanceSettingsFragment : SubScreenFragment() {
private var needsReload = false
private val stylePref: ListPreference by lazy { preferenceScreen.findPreference(Settings.PREF_THEME_STYLE)!! }
+ private val iconStylePref: ListPreference by lazy { preferenceScreen.findPreference(Settings.PREF_ICON_STYLE)!! }
private val colorsPref: ListPreference by lazy { preferenceScreen.findPreference(Settings.PREF_THEME_COLORS)!! }
private val colorsNightPref: ListPreference? by lazy { preferenceScreen.findPreference(Settings.PREF_THEME_COLORS_NIGHT) }
private val dayNightPref: TwoStatePreference? by lazy { preferenceScreen.findPreference(Settings.PREF_THEME_DAY_NIGHT) }
@@ -155,6 +156,18 @@ class AppearanceSettingsFragment : SubScreenFragment() {
}
summary = entries[entryValues.indexOfFirst { it == value }]
}
+ iconStylePref.apply {
+ entryValues = KeyboardTheme.STYLES
+ entries = entryValues.getNamesFromResourcesIfAvailable("style_name_")
+ if (value !in entryValues)
+ value = entryValues.first().toString()
+
+ onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, value ->
+ summary = entries[entryValues.indexOfFirst { it == value }]
+ true
+ }
+ summary = entries[entryValues.indexOfFirst { it == value }]
+ }
dayNightPref?.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, value ->
val yesThisIsBoolean = value as Boolean // apparently kotlin smartcast got less smart with 2.0.0
colorsNightPref?.isVisible = yesThisIsBoolean
diff --git a/app/src/main/java/helium314/keyboard/latin/settings/Settings.java b/app/src/main/java/helium314/keyboard/latin/settings/Settings.java
index 8273f6601..b94e916b1 100644
--- a/app/src/main/java/helium314/keyboard/latin/settings/Settings.java
+++ b/app/src/main/java/helium314/keyboard/latin/settings/Settings.java
@@ -60,6 +60,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
// theme-related stuff
public static final String PREF_THEME_STYLE = "theme_style";
+ public static final String PREF_ICON_STYLE = "icon_style";
public static final String PREF_THEME_COLORS = "theme_colors";
public static final String PREF_THEME_COLORS_NIGHT = "theme_colors_night";
public static final String PREF_THEME_KEY_BORDERS = "theme_key_borders";
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bc8113f74..bd74923d4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -697,6 +697,8 @@ New dictionary:
Add a word
Style
+
+ Icon style
Rounded
diff --git a/app/src/main/res/xml/prefs_screen_appearance.xml b/app/src/main/res/xml/prefs_screen_appearance.xml
index f02ede3d4..ea44b42ca 100644
--- a/app/src/main/res/xml/prefs_screen_appearance.xml
+++ b/app/src/main/res/xml/prefs_screen_appearance.xml
@@ -19,6 +19,12 @@
android:defaultValue="Material"
latin:singleLineTitle="false" />
+
+