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