Skip to content

Commit 879a93c

Browse files
committed
Version 2.15 update. Fix for Android predictive keyboard.
1 parent 3937623 commit 879a93c

2 files changed

Lines changed: 1285 additions & 22 deletions

File tree

typingdna.js

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* https://api.typingdna.com/scripts/typingdna.js
44
* https://typingdna.com/scripts/typingdna.js (alternative)
55
*
6-
* @version 2.14
6+
* @version 2.15
77
* @author Raul Popa
88
* @copyright SC TypingDNA SRL, http://typingdna.com
99
* @license http://www.apache.org/licenses/LICENSE-2.0
@@ -102,7 +102,7 @@ function TypingDNA() {
102102
TypingDNA.prototype.defaultHistoryLength = TypingDNA.defaultHistoryLength;
103103
TypingDNA.prototype.maxSeekTime = TypingDNA.maxSeekTime;
104104
TypingDNA.prototype.maxPressTime = TypingDNA.maxPressTime;
105-
TypingDNA.version = 2.14;
105+
TypingDNA.version = 2.15;
106106
TypingDNA.flags = 0;
107107
TypingDNA.instance = this;
108108
TypingDNA.document = document;
@@ -152,7 +152,10 @@ function TypingDNA() {
152152
TypingDNA.ACPressTime = 0;
153153
TypingDNA.ACLastCharCode = 0;
154154
TypingDNA.ACLastKeyCode = 0;
155-
TypingDNA.ACFlagDownTI = 0;
155+
TypingDNA.ACInputLengths = {
156+
inputs: [],
157+
lastLength: [],
158+
};
156159
TypingDNA.ACPreviousKeyCode = 0;
157160
TypingDNA.targetIds = [];
158161
TypingDNA.lastTarget = "";
@@ -176,14 +179,12 @@ function TypingDNA() {
176179

177180
TypingDNA.ACSeekTime = (new Date).getTime() - TypingDNA.ACLastTime;
178181
TypingDNA.ACLastTime = (new Date).getTime();
179-
TypingDNA.ACFlagDownTI = 1;
180182

181183
TypingDNA.document.removeEventListener("keydown", TypingDNA.keyDown);
182184
TypingDNA.document.removeEventListener("keyup", TypingDNA.keyUp);
183185
TypingDNA.document.removeEventListener("keypress", TypingDNA.keyPress);
184186

185187
// if android
186-
TypingDNA.document.addEventListener("textInput", TypingDNA.ACTextInput);
187188
TypingDNA.document.addEventListener("keydown", TypingDNA.ACKeyDown);
188189
TypingDNA.document.addEventListener("keyup", TypingDNA.ACKeyUp);
189190
} else {
@@ -334,19 +335,9 @@ function TypingDNA() {
334335
if (!TypingDNA.isTarget(e.target.id)) {
335336
return;
336337
}
337-
if (e.keyCode == 229) {
338-
TypingDNA.ACFlagDownTI = 1;
339-
}
340-
}
341-
342-
TypingDNA.ACTextInput = function(e) {
343-
if (!TypingDNA.recording && !TypingDNA.diagramRecording) {
344-
return;
345-
}
346-
if (TypingDNA.ACFlagDownTI = 1) {
347-
TypingDNA.ACLastCharCode = e.data.charCodeAt(0);
348-
TypingDNA.ACLastKeyCode = e.data.toUpperCase().charCodeAt(0);
349-
TypingDNA.ACFlagDownTI = 0;
338+
if(TypingDNA.ACInputLengths.inputs.indexOf(e.target) === -1) {
339+
TypingDNA.ACInputLengths.inputs.push(e.target);
340+
TypingDNA.ACInputLengths.lastLength.push(0);
350341
}
351342
}
352343

@@ -360,13 +351,23 @@ function TypingDNA() {
360351
return;
361352
}
362353
var keyCode = e.keyCode;
363-
if (keyCode == 229 && TypingDNA.ACFlagDownTI == 0) {
364-
keyCode = TypingDNA.ACLastKeyCode;
365-
}
354+
var targetIndex = TypingDNA.ACInputLengths.inputs.indexOf(e.target);
355+
if(targetIndex === -1) {
356+
TypingDNA.ACInputLengths.inputs.push(e.target);
357+
TypingDNA.ACInputLengths.lastLength.push(0);
358+
targetIndex = TypingDNA.ACInputLengths.inputs.indexOf(e.target);
359+
}
360+
if (keyCode == 229 && e.target.value.length >= TypingDNA.ACInputLengths.lastLength[targetIndex]) {
361+
var char = e.target.value.substr((e.target.selectionStart - 1) || 0 , 1);
362+
keyCode = char.toUpperCase().charCodeAt(0);
363+
TypingDNA.ACLastCharCode = char.charCodeAt(0);
364+
TypingDNA.ACLastKeyCode = char.toUpperCase().charCodeAt(0);
365+
}
366+
TypingDNA.ACInputLengths.lastLength[targetIndex] = e.target.value.length;
366367
var arr = [keyCode, TypingDNA.ACSeekTime, TypingDNA.ACPressTime, TypingDNA.ACPreviousKeyCode, TypingDNA.ACLastTime];
367368
TypingDNA.history.add(arr);
368369
TypingDNA.ACPreviousKeyCode = keyCode;
369-
if (TypingDNA.diagramRecording == true && TypingDNA.ACFlagDownTI == 0) {
370+
if (TypingDNA.diagramRecording == true ) {
370371
var arrD = [keyCode, TypingDNA.ACSeekTime, TypingDNA.ACPressTime, TypingDNA.ACLastCharCode];
371372
TypingDNA.history.addDiagram(arrD);
372373
}
@@ -587,6 +588,10 @@ function TypingDNA() {
587588
TypingDNA.history.stackDiagram = [];
588589
TypingDNA.clickTimes = [];
589590
TypingDNA.stopTimes = [];
591+
TypingDNA.ACInputLengths = {
592+
inputs: [],
593+
lastLength: [],
594+
};
590595
if (all == true) {
591596
TypingDNA.mouse.history.stack = [];
592597
}

0 commit comments

Comments
 (0)