# HG changeset patch
# User Adrián Romero <adrianromero@openbravo.com>
# Date 1553873498 -3600
#      Fri Mar 29 16:31:38 2019 +0100
# Node ID aa9edb9d4cc554d2af384d7d0019bec890c2285c
# Parent  2400aeb8a103c5d03590bee7e58b5739547e83b0
[TOYSRUS SCANNER] Adding support to Toysrus barcode scanner differences

diff --git a/web/org.openbravo.mobile.core/source/component/ob-keyboard.js b/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
--- a/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
+++ b/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
@@ -474,11 +474,226 @@
     return null;
   },
 
+
+  toysKeyChanger: function (keyevent) {
+
+    if (keyevent.key === 'Shift') {
+      this.shiftkey = true;
+      return keyevent;
+    }
+    var shiftkey = this.shiftkey;
+    this.shiftkey = false;
+
+    if (shiftkey && keyevent.key === 'a' && keyevent.which === 65 && keyevent.code === 'KeyA') {
+      return {
+        key: 'A',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'b' && keyevent.which === 66 && keyevent.code === 'KeyB') {
+      return {
+        key: 'B',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'c' && keyevent.which === 67 && keyevent.code === 'KeyC') {
+      return {
+        key: 'C',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'd' && keyevent.which === 68 && keyevent.code === 'KeyD') {
+      return {
+        key: 'D',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'e' && keyevent.which === 69 && keyevent.code === 'KeyE') {
+      return {
+        key: 'E',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'f' && keyevent.which === 70 && keyevent.code === 'KeyF') {
+      return {
+        key: 'F',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'g' && keyevent.which === 71 && keyevent.code === 'KeyG') {
+      return {
+        key: 'G',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'h' && keyevent.which === 72 && keyevent.code === 'KeyH') {
+      return {
+        key: 'H',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'i' && keyevent.which === 73 && keyevent.code === 'KeyI') {
+      return {
+        key: 'I',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'j' && keyevent.which === 74 && keyevent.code === 'KeyJ') {
+      return {
+        key: 'J',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'k' && keyevent.which === 75 && keyevent.code === 'KeyK') {
+      return {
+        key: 'K',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'l' && keyevent.which === 76 && keyevent.code === 'KeyL') {
+      return {
+        key: 'L',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'm' && keyevent.which === 77 && keyevent.code === 'KeyM') {
+      return {
+        key: 'M',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'n' && keyevent.which === 78 && keyevent.code === 'KeyN') {
+      return {
+        key: 'N',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'o' && keyevent.which === 79 && keyevent.code === 'KeyO') {
+      return {
+        key: 'O',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'p' && keyevent.which === 80 && keyevent.code === 'KeyP') {
+      return {
+        key: 'P',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'q' && keyevent.which === 81 && keyevent.code === 'KeyQ') {
+      return {
+        key: 'Q',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'r' && keyevent.which === 82 && keyevent.code === 'KeyR') {
+      return {
+        key: 'R',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 's' && keyevent.which === 83 && keyevent.code === 'KeyS') {
+      return {
+        key: 'S',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 't' && keyevent.which === 84 && keyevent.code === 'KeyT') {
+      return {
+        key: 'T',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'u' && keyevent.which === 85 && keyevent.code === 'KeyU') {
+      return {
+        key: 'U',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'v' && keyevent.which === 86 && keyevent.code === 'KeyV') {
+      return {
+        key: 'V',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'w' && keyevent.which === 87 && keyevent.code === 'KeyW') {
+      return {
+        key: 'W',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'x' && keyevent.which === 88 && keyevent.code === 'KeyX') {
+      return {
+        key: 'X',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'y' && keyevent.which === 89 && keyevent.code === 'KeyY') {
+      return {
+        key: 'Y',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (shiftkey && keyevent.key === 'z' && keyevent.which === 90 && keyevent.code === 'KeyZ') {
+      return {
+        key: 'Z',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+
+    if (!shiftkey && keyevent.key === '/' && keyevent.which === 55 && keyevent.code === 'Digit7') {
+      return {
+        key: '7',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+
+    if (shiftkey && keyevent.key === '7' && keyevent.which === 55 && keyevent.code === 'Digit7') {
+      return {
+        key: '/',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+
+    return keyevent;
+  },
   /**
    * Managing key up events. KeyDown or KeyPress is not properly
    * working in Android Chrome 26
    */
   globalKeypressHandler: function (inSender, inEvent) {
+
+    // console.log(JSON.stringify({key: inEvent.keyboardEvent.key, which: inEvent.keyboardEvent.which, code: inEvent.keyboardEvent.code}));
+    inEvent.keyboardEvent = this.toysKeyChanger(inEvent.keyboardEvent);
+
     var i, which = inEvent.keyboardEvent.which,
         key = inEvent.keyboardEvent.key,
         actualStatus = null,
# HG changeset patch
# User Adrián Romero <adrianromero@openbravo.com>
# Date 1553875618 -3600
#      Fri Mar 29 17:06:58 2019 +0100
# Node ID 0aac319411b83ad0413b0db94558770923c0c059
# Parent  aa9edb9d4cc554d2af384d7d0019bec890c2285c
[TOYSRUS SCANNER] Adding more exceptions for the barcode scanner

diff --git a/web/org.openbravo.mobile.core/source/component/ob-keyboard.js b/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
--- a/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
+++ b/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
@@ -667,6 +667,55 @@
       };
     }
 
+    if (!shiftkey && keyevent.key === '=' && keyevent.which === 48 && keyevent.code === 'Digit0') {
+      return {
+        key: '0',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (!shiftkey && keyevent.key === '!' && keyevent.which === 49 && keyevent.code === 'Digit1') {
+      return {
+        key: '1',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (!shiftkey && keyevent.key === '"' && keyevent.which === 50 && keyevent.code === 'Digit2') {
+      return {
+        key: '2',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (!shiftkey && keyevent.key === '·' && keyevent.which === 51 && keyevent.code === 'Digit3') {
+      return {
+        key: '3',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (!shiftkey && keyevent.key === '$' && keyevent.which === 52 && keyevent.code === 'Digit4') {
+      return {
+        key: '4',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (!shiftkey && keyevent.key === '%' && keyevent.which === 53 && keyevent.code === 'Digit5') {
+      return {
+        key: '5',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (!shiftkey && keyevent.key === '&' && keyevent.which === 54 && keyevent.code === 'Digit6') {
+      return {
+        key: '6',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
     if (!shiftkey && keyevent.key === '/' && keyevent.which === 55 && keyevent.code === 'Digit7') {
       return {
         key: '7',
@@ -674,6 +723,20 @@
         code: keyevent.code
       };
     }
+    if (!shiftkey && keyevent.key === '(' && keyevent.which === 56 && keyevent.code === 'Digit8') {
+      return {
+        key: '8',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
+    if (!shiftkey && keyevent.key === ')' && keyevent.which === 57 && keyevent.code === 'Digit9') {
+      return {
+        key: '9',
+        which: keyevent.which,
+        code: keyevent.code
+      };
+    }
 
     if (shiftkey && keyevent.key === '7' && keyevent.which === 55 && keyevent.code === 'Digit7') {
       return {
