From 548af757e7b93c572f387ed1b3de74c5a3a3743b Mon Sep 17 00:00:00 2001 From: ChaoticByte <9070224-ChaoticByte@users.noreply.gitlab.com> Date: Mon, 13 Feb 2023 19:47:00 +0100 Subject: [PATCH] Disable on-screen keyboard when smartphone is detected #14 --- app/static/js/simple-keyboard_configure.js | 72 ++++++++++++---------- 1 file changed, 38 insertions(+), 34 deletions(-) diff --git a/app/static/js/simple-keyboard_configure.js b/app/static/js/simple-keyboard_configure.js index ed88956..eac5aa0 100644 --- a/app/static/js/simple-keyboard_configure.js +++ b/app/static/js/simple-keyboard_configure.js @@ -41,42 +41,46 @@ "{bksp} . ," ] } + // Check if on smartphone + let onSmartphone = navigator.userAgent.toLowerCase().match(/android|webos|iphone|ipod|blackberry/i) != null; + console.log(onSmartphone) // Configure keyboard when all DOM content has loaded document.addEventListener("DOMContentLoaded", () => { - // Get element to send input to - let keyboardInputElement = document.querySelector(".keyboard-input"); - // Get language code - let layoutCode = document.getElementById("keyboard").dataset.layout; - // Determine keyboard layout (default: en) - let layout; - switch (layoutCode) { - case "de": - layout = layout_de; - break; - case "numeric": - layout = layout_numeric; - break; - default: - layout = layout_en; - } - // determine if the numeric class has to be added - if (layoutCode == "numeric") { - theme = "hg-theme-default darkTheme numeric" - } - else { - theme = "hg-theme-default darkTheme" - } - // virtual keyboard - const Keyboard = window.SimpleKeyboard.default; - const myKeyboard = new Keyboard({ - theme: theme, - // choose german layout if language is de, - // else choose english layout - layout: layout, - onChange: (input) => { - keyboardInputElement.value = input; + if (!onSmartphone) { + // Get element to send input to + let keyboardInputElement = document.querySelector(".keyboard-input"); + // Get language code + let layoutCode = document.getElementById("keyboard").dataset.layout; + // Determine keyboard layout (default: en) + let layout; + switch (layoutCode) { + case "de": + layout = layout_de; + break; + case "numeric": + layout = layout_numeric; + break; + default: + layout = layout_en; } - }); - + // determine if the numeric class has to be added + if (layoutCode == "numeric") { + theme = "hg-theme-default darkTheme numeric"; + } + else { + theme = "hg-theme-default darkTheme"; + } + // virtual keyboard + const Keyboard = window.SimpleKeyboard.default; + const myKeyboard = new Keyboard({ + theme: theme, + // choose german layout if language is de, + // else choose english layout + layout: layout, + onChange: (input) => { + keyboardInputElement.value = input; + } + }); + } }); })() \ No newline at end of file