summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/javispedro/vndroid/keymaps/SpanishKeyHandler.java
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2018-11-01 13:01:39 +0100
committerJavier <dev.git@javispedro.com>2018-11-03 23:30:02 +0100
commit3f42c61ead715884ac6b1f85c0b6054ff437646d (patch)
tree88c9138b8a12d1f2bc60a85ad953a74b4c5c7ed0 /app/src/main/java/com/javispedro/vndroid/keymaps/SpanishKeyHandler.java
downloadvndroid-3f42c61ead715884ac6b1f85c0b6054ff437646d.tar.gz
vndroid-3f42c61ead715884ac6b1f85c0b6054ff437646d.zip
Initial import
Diffstat (limited to 'app/src/main/java/com/javispedro/vndroid/keymaps/SpanishKeyHandler.java')
-rw-r--r--app/src/main/java/com/javispedro/vndroid/keymaps/SpanishKeyHandler.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/app/src/main/java/com/javispedro/vndroid/keymaps/SpanishKeyHandler.java b/app/src/main/java/com/javispedro/vndroid/keymaps/SpanishKeyHandler.java
new file mode 100644
index 0000000..4337b61
--- /dev/null
+++ b/app/src/main/java/com/javispedro/vndroid/keymaps/SpanishKeyHandler.java
@@ -0,0 +1,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;
+ }
+}