blob: 4337b61ec1a958ed9890f3a232daa810a190c69c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package com.javispedro.vndroid.keymaps;
import java.text.Normalizer;
import static com.javispedro.vndroid.keymaps.KeySyms.Key_dead_acute;
import static com.javispedro.vndroid.keymaps.KeySyms.Key_dead_grave;
public class SpanishKeyHandler extends KeyHandler {
private char deadKey = 0;
@Override
public boolean keyDown(int key) {
if (key >= KeySyms.Key_space && key <= KeySyms.Key_z) {
// Printable keysyms
char c = (char) (' ' + (key - KeySyms.Key_space));
if (deadKey != 0) {
StringBuilder builder = new StringBuilder(2);
builder.append(c);
builder.append(deadKey);
String text = Normalizer.normalize(builder.toString(), Normalizer.Form.NFKC);
action.postText(text);
deadKey = 0;
return true;
}
action.postChar(c);
return true;
} else {
switch (key) {
case KeySyms.Key_ccedilla:
action.postChar('ç');
return true;
case KeySyms.Key_ntilde:
action.postChar('ñ');
return true;
case Key_dead_acute:
deadKey = '\u0301';
return true;
case Key_dead_grave:
deadKey = '\u0300';
return true;
}
}
return false;
}
@Override
public boolean keyUp(int key) {
return false;
}
}
|