diff --git a/app/src/main/java/helium314/keyboard/keyboard/KeyboardLayoutSet.kt b/app/src/main/java/helium314/keyboard/keyboard/KeyboardLayoutSet.kt index 6910b5d6c0..0fddbb4d8a 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/KeyboardLayoutSet.kt +++ b/app/src/main/java/helium314/keyboard/keyboard/KeyboardLayoutSet.kt @@ -238,7 +238,8 @@ class KeyboardLayoutSet internal constructor(private val mContext: Context, priv } InputType.TYPE_CLASS_PHONE -> KeyboardMode.PHONE InputType.TYPE_CLASS_TEXT -> - if (InputTypeUtils.isEmailVariation(variation)) KeyboardMode.EMAIL + if (!Settings.getValues().mUrlEmailLayout) KeyboardMode.TEXT + else if (InputTypeUtils.isEmailVariation(variation)) KeyboardMode.EMAIL else if (variation == InputType.TYPE_TEXT_VARIATION_URI) KeyboardMode.URL else KeyboardMode.TEXT else -> KeyboardMode.TEXT diff --git a/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt b/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt index d2086574a0..8f1685a761 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt +++ b/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt @@ -145,6 +145,7 @@ object Defaults { const val PREF_POPUP_KEYS_HINT_ORDER = POPUP_KEYS_LABEL_DEFAULT const val PREF_SHOW_POPUP_HINTS = false const val PREF_SHOW_TLD_POPUP_KEYS = true + const val PREF_URL_EMAIL_LAYOUT = true const val PREF_MORE_POPUP_KEYS = "main" const val PREF_SPACE_TO_CHANGE_LANG = true const val PREF_LANGUAGE_SWIPE_DISTANCE = 5 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 c85cd9687b..e98cdcaaa2 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/Settings.java +++ b/app/src/main/java/helium314/keyboard/latin/settings/Settings.java @@ -160,6 +160,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang public static final String PREF_SHOW_POPUP_HINTS = "show_popup_hints"; public static final String PREF_MORE_POPUP_KEYS = "more_popup_keys"; public static final String PREF_SHOW_TLD_POPUP_KEYS = "show_tld_popup_keys"; + public static final String PREF_URL_EMAIL_LAYOUT = "url_email_layout"; public static final String PREF_SPACE_TO_CHANGE_LANG = "prefs_long_press_keyboard_to_change_lang"; public static final String PREF_LANGUAGE_SWIPE_DISTANCE = "language_swipe_distance"; diff --git a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java index c7718ba179..50f9aeeaa5 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java +++ b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java @@ -73,6 +73,7 @@ public class SettingsValues { public final boolean mShowsHints; public final boolean mShowsPopupHints; public final boolean mShowTldPopupKeys; + public final boolean mUrlEmailLayout; public final boolean mSpaceForLangChange; public final boolean mShowsEmojiKey; public final boolean mVarToolbarDirection; @@ -211,6 +212,7 @@ public SettingsValues(final Context context, final SharedPreferences prefs, fina mShowsHints = prefs.getBoolean(Settings.PREF_SHOW_HINTS, Defaults.PREF_SHOW_HINTS); mShowsPopupHints = prefs.getBoolean(Settings.PREF_SHOW_POPUP_HINTS, Defaults.PREF_SHOW_POPUP_HINTS); mShowTldPopupKeys = prefs.getBoolean(Settings.PREF_SHOW_TLD_POPUP_KEYS, Defaults.PREF_SHOW_TLD_POPUP_KEYS); + mUrlEmailLayout = prefs.getBoolean(Settings.PREF_URL_EMAIL_LAYOUT, Defaults.PREF_URL_EMAIL_LAYOUT); mSpaceForLangChange = prefs.getBoolean(Settings.PREF_SPACE_TO_CHANGE_LANG, Defaults.PREF_SPACE_TO_CHANGE_LANG); mShowsEmojiKey = prefs.getBoolean(Settings.PREF_SHOW_EMOJI_KEY, Defaults.PREF_SHOW_EMOJI_KEY); mVarToolbarDirection = mToolbarMode != ToolbarMode.HIDDEN && prefs.getBoolean(Settings.PREF_VARIABLE_TOOLBAR_DIRECTION, Defaults.PREF_VARIABLE_TOOLBAR_DIRECTION); diff --git a/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt index 3a503e0948..db163d7f1f 100644 --- a/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt +++ b/app/src/main/java/helium314/keyboard/settings/screens/PreferencesScreen.kt @@ -50,6 +50,7 @@ fun PreferencesScreen( Settings.PREF_POPUP_KEYS_ORDER, Settings.PREF_SHOW_POPUP_HINTS, Settings.PREF_SHOW_TLD_POPUP_KEYS, + Settings.PREF_URL_EMAIL_LAYOUT, Settings.PREF_POPUP_ON, if (AudioAndHapticFeedbackManager.getInstance().hasVibrator()) Settings.PREF_VIBRATE_ON else null, @@ -109,6 +110,12 @@ fun createPreferencesSettings(context: Context) = listOf( ) { SwitchPreference(it, Defaults.PREF_SHOW_TLD_POPUP_KEYS) { KeyboardSwitcher.getInstance().setThemeNeedsReload() } }, + Setting( + context, Settings.PREF_URL_EMAIL_LAYOUT, R.string.url_email_layout, + R.string.url_email_layout_summary + ) { + SwitchPreference(it, Defaults.PREF_URL_EMAIL_LAYOUT) { 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() } }, diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index cb4edb1040..2c40772b9a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -393,6 +393,8 @@ %s (Baisakhi) Zeige TLD-Popup-Tasten Ersetze Punkt-Tastenpopups mit Top-Level-Domains wenn URLs und Mailadressen eingegeben werden + Layout für URL- und E-Mail-Felder anpassen + Zeige in URL-Feldern eine Schrägstrich-Taste und in E-Mail-Feldern eine @-Taste (anstelle des Kommas) samt passender Popup-Tasten. Deaktivieren, um immer das normale Layout zu behalten. Nicht immer Vorschläge für Web-Editierfelder anzeigen Zahlenreihe (Basis) Web-Eingabefelder (meist in Browsern) sind eine häufige Ursache für Probleme mit der Einstellung \"Immer Vorschläge anzeigen\" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc29125207..37d59321fa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -323,6 +323,10 @@ Show TLD popup keys Replace period key popups with top level domains when typing URLs and email addresses + + Adapt layout for URL and email fields + + Show a slash key in URL fields and an @ key in email fields (in place of the comma), and matching popup keys. Disable to always keep the normal layout. Number row @string/subtype_locale