mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-18 21:32:04 +00:00
Enable TLD hint
Avoid TLD popups on tablet Revert to using set for TLDs, and insert default ones first Move setting one slot up Tweak setting description Update docs
This commit is contained in:
parent
3b415d5b0a
commit
85b02a2e88
7 changed files with 19 additions and 18 deletions
|
@ -100,8 +100,6 @@ __Planned features and improvements:__
|
|||
* Add and enable emoji dictionaries by default (if available for language)
|
||||
* Clearer / more intuitive arrangement of settings
|
||||
* Maybe hide some less used settings by default (similar to color customization)
|
||||
* Make use of the `.com` key in URL fields (currently only available for tablets)
|
||||
* With language-dependent TLDs
|
||||
* [Bug fixes](https://github.com/Helium314/HeliBoard/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
||||
|
||||
__What will _not_ be added:__
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
{ "$": "keyboard_state_selector", "emojiKeyEnabled": { "$": "keyboard_state_selector", "alphabet": { "label": "emoji" }}},
|
||||
{ "$": "keyboard_state_selector", "symbols": { "label": "numpad" }},
|
||||
{ "label": "space" },
|
||||
{ "label": "period", "labelFlags": 1073741824 },
|
||||
{ "label": "period" },
|
||||
{ "label": "action", "width": 0.15 }
|
||||
]
|
||||
]
|
||||
|
|
|
@ -89,12 +89,6 @@ class LocaleKeyboardInfos(dataStream: InputStream?, locale: Locale) {
|
|||
}
|
||||
}
|
||||
|
||||
fun addDefaultTlds(locale: Locale) {
|
||||
if ((locale.language != "en" && euroLocales.matches(locale.language)) || euroCountries.matches(locale.country))
|
||||
tlds.add(0, ".eu")
|
||||
tlds.addAll(0, defaultTlds.splitOnWhitespace())
|
||||
}
|
||||
|
||||
/** Pair(extraKeysLeft, extraKeysRight) */
|
||||
fun getTabletExtraKeys(elementId: Int): Pair<List<KeyData>, List<KeyData>> {
|
||||
val flags = Key.LABEL_FLAGS_FONT_DEFAULT
|
||||
|
@ -205,7 +199,6 @@ private fun createLocaleKeyTexts(context: Context, params: KeyboardParams, popup
|
|||
if (locale == params.mId.locale) return@forEach
|
||||
lkt.addFile(getStreamForLocale(locale, context), true)
|
||||
}
|
||||
lkt.addDefaultTlds(params.mId.locale)
|
||||
when (popupKeysSetting) {
|
||||
POPUP_KEYS_MAIN -> lkt.addFile(context.assets.open("$LOCALE_TEXTS_FOLDER/more_popups_main.txt"), false)
|
||||
POPUP_KEYS_MORE -> lkt.addFile(context.assets.open("$LOCALE_TEXTS_FOLDER/more_popups_more.txt"), false)
|
||||
|
@ -226,20 +219,28 @@ private fun getStreamForLocale(locale: Locale, context: Context) =
|
|||
}
|
||||
}
|
||||
|
||||
private fun getLocaleTlds(locale: Locale): ArrayList<String> {
|
||||
private fun getLocaleTlds(locale: Locale): LinkedHashSet<String> {
|
||||
val tlds = getDefaultTlds(locale)
|
||||
val ccLower = locale.country.lowercase()
|
||||
val tlds = arrayListOf<String>()
|
||||
if (ccLower.isEmpty() || locale.language == SubtypeLocaleUtils.NO_LANGUAGE)
|
||||
return tlds
|
||||
specialCountryTlds.forEach {
|
||||
if (ccLower != it.first) return@forEach
|
||||
tlds.addAll(it.second.splitOnWhitespace())
|
||||
return tlds
|
||||
return@getLocaleTlds tlds
|
||||
}
|
||||
tlds.add(".$ccLower")
|
||||
return tlds
|
||||
}
|
||||
|
||||
private fun getDefaultTlds(locale: Locale): LinkedHashSet<String> {
|
||||
val tlds = linkedSetOf<String>()
|
||||
tlds.addAll(defaultTlds.splitOnWhitespace())
|
||||
if ((locale.language != "en" && euroLocales.matches(locale.language)) || euroCountries.matches(locale.country))
|
||||
tlds.add(".eu")
|
||||
return tlds
|
||||
}
|
||||
|
||||
fun clearCache() = localeKeyboardInfosCache.clear()
|
||||
|
||||
// cache the texts, so they don't need to be read over and over
|
||||
|
|
|
@ -24,6 +24,7 @@ import helium314.keyboard.latin.common.StringUtils
|
|||
import helium314.keyboard.latin.settings.Settings
|
||||
import helium314.keyboard.latin.spellcheck.AndroidSpellCheckerService
|
||||
import helium314.keyboard.latin.utils.InputTypeUtils
|
||||
import helium314.keyboard.latin.utils.LayoutType
|
||||
import helium314.keyboard.latin.utils.Log
|
||||
import helium314.keyboard.latin.utils.ToolbarKey
|
||||
import helium314.keyboard.latin.utils.getCodeForToolbarKey
|
||||
|
@ -574,6 +575,7 @@ sealed interface KeyData : AbstractKeyData {
|
|||
private fun getPeriodPopups(params: KeyboardParams): SimplePopups =
|
||||
SimplePopups(
|
||||
if (Settings.getInstance().current.mShowTldPopupKeys
|
||||
&& params.mId.mSubtype.layouts[LayoutType.FUNCTIONAL] != "functional_keys_tablet"
|
||||
&& params.mId.mMode in setOf(KeyboardId.MODE_URL, KeyboardId.MODE_EMAIL)
|
||||
) params.mLocaleKeyboardInfos.tlds
|
||||
else getPunctuationPopupKeys(params)
|
||||
|
|
|
@ -90,15 +90,15 @@ fun createPreferencesSettings(context: Context) = listOf(
|
|||
Setting(context, Settings.PREF_POPUP_KEYS_ORDER, R.string.popup_order) {
|
||||
ReorderSwitchPreference(it, Defaults.PREF_POPUP_KEYS_ORDER)
|
||||
},
|
||||
Setting(context, Settings.PREF_SHOW_POPUP_HINTS, R.string.show_popup_hints, R.string.show_popup_hints_summary) {
|
||||
SwitchPreference(it, Defaults.PREF_SHOW_POPUP_HINTS) { KeyboardSwitcher.getInstance().setThemeNeedsReload() }
|
||||
},
|
||||
Setting(
|
||||
context, Settings.PREF_SHOW_TLD_POPUP_KEYS, R.string.show_tld_popup_keys,
|
||||
R.string.show_tld_popup_keys_summary
|
||||
) {
|
||||
SwitchPreference(it, Defaults.PREF_SHOW_TLD_POPUP_KEYS) { KeyboardSwitcher.getInstance().setThemeNeedsReload() }
|
||||
},
|
||||
Setting(context, Settings.PREF_SHOW_POPUP_HINTS, R.string.show_popup_hints, R.string.show_popup_hints_summary) {
|
||||
SwitchPreference(it, Defaults.PREF_SHOW_POPUP_HINTS) { KeyboardSwitcher.getInstance().setThemeNeedsReload() }
|
||||
},
|
||||
Setting(context, Settings.PREF_POPUP_ON, R.string.popup_on_keypress) {
|
||||
SwitchPreference(it, Defaults.PREF_POPUP_ON) { KeyboardSwitcher.getInstance().reloadKeyboard() }
|
||||
},
|
||||
|
|
|
@ -252,7 +252,7 @@
|
|||
<!-- Title of the setting to show TLD popup keys -->
|
||||
<string name="show_tld_popup_keys">Show TLD popup keys</string>
|
||||
<!-- Description of the setting to show TLD popup keys -->
|
||||
<string name="show_tld_popup_keys_summary">Replace period key popups with top level domains for URL and email inputs</string>
|
||||
<string name="show_tld_popup_keys_summary">Replace period key popups with top level domains when typing URLs and email addresses</string>
|
||||
<!-- Names of the popup key classes -->
|
||||
<string name="popup_keys_number" tools:keep="@string/popup_keys_number">Number row</string>
|
||||
<string name="popup_keys_language" tools:keep="@string/popup_keys_language">Language</string>
|
||||
|
|
|
@ -89,7 +89,7 @@ Usually the label is what is displayed on the key. However, there are some speci
|
|||
* _symbol_alpha_: toggle alpha / symbol keyboard
|
||||
* _numpad_: toggle numpad layout
|
||||
* _emoji_: switch to emoji view
|
||||
* _com_: display common TLDs (.com and similar, currently not localized)
|
||||
* _com_: display common TLDs (.com and similar, localized)
|
||||
* _language_switch_: language switch key
|
||||
* _action_: the action (enter) key
|
||||
* _delete_: delete key
|
||||
|
|
Loading…
Add table
Reference in a new issue