Merge "Add EmojiPageKeyboardAccessibilityDelegate"
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
index 80ba60c..a34dbef 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
@@ -55,7 +55,22 @@
     private OnKeyEventListener mListener = EMPTY_LISTENER;
     private final KeyDetector mKeyDetector = new KeyDetector();
     private final GestureDetector mGestureDetector;
-    private KeyboardAccessibilityDelegate<EmojiPageKeyboardView> mAccessibilityDelegate;
+    private EmojiPageKeyboardAccessibilityDelegate mAccessibilityDelegate;
+
+    private static final class EmojiPageKeyboardAccessibilityDelegate
+            extends KeyboardAccessibilityDelegate<EmojiPageKeyboardView> {
+        public EmojiPageKeyboardAccessibilityDelegate(final EmojiPageKeyboardView keyboardView,
+                final KeyDetector keyDetector) {
+            super(keyboardView, keyDetector);
+        }
+
+        @Override
+        protected void simulateTouchEvent(int touchAction, MotionEvent hoverEvent) {
+            final MotionEvent touchEvent = synthesizeTouchEvent(touchAction, hoverEvent);
+            mKeyboardView.onTouchEvent(touchEvent);
+            touchEvent.recycle();
+        }
+    }
 
     public EmojiPageKeyboardView(final Context context, final AttributeSet attrs) {
         this(context, attrs, R.attr.keyboardViewStyle);
@@ -82,7 +97,8 @@
         mKeyDetector.setKeyboard(keyboard, 0 /* correctionX */, 0 /* correctionY */);
         if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
             if (mAccessibilityDelegate == null) {
-                mAccessibilityDelegate = new KeyboardAccessibilityDelegate<>(this, mKeyDetector);
+                mAccessibilityDelegate = new EmojiPageKeyboardAccessibilityDelegate(
+                        this, mKeyDetector);
             }
             mAccessibilityDelegate.setKeyboard(keyboard);
         } else {
diff --git a/java/src/com/android/inputmethod/latin/Constants.java b/java/src/com/android/inputmethod/latin/Constants.java
index fa51436..f933936 100644
--- a/java/src/com/android/inputmethod/latin/Constants.java
+++ b/java/src/com/android/inputmethod/latin/Constants.java
@@ -263,10 +263,10 @@
         case CODE_ENTER: return "enter";
         case CODE_SPACE: return "space";
         default:
-            if (code < CODE_SPACE) return String.format("\\u%02x", code);
+            if (code < CODE_SPACE) return String.format("\\u%02X", code);
             if (code < 0x100) return String.format("%c", code);
-            if (code < 0x10000) return String.format("\\u04x", code);
-            return String.format("\\U%05x", code);
+            if (code < 0x10000) return String.format("\\u%04X", code);
+            return String.format("\\U%05X", code);
         }
     }