Take care of bidi-mirrored characters in suggestion strip as well

Follow up to I1b884848

bug: 5047217
Change-Id: I18b9962c4943363bae88009354fcc75ab60ad2ba
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 8b8930a..f883fb4 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -179,7 +179,7 @@
         sRtlParenthesisMap.put(right, left);
     }
 
-    private static int getRtlParenthesisCode(int code) {
+    public static int getRtlParenthesisCode(int code) {
         if (sRtlParenthesisMap.containsKey(code)) {
             return sRtlParenthesisMap.get(code);
         } else {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 3457ac9..a8118e5 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -60,6 +60,7 @@
 import com.android.inputmethod.deprecated.LanguageSwitcherProxy;
 import com.android.inputmethod.deprecated.VoiceProxy;
 import com.android.inputmethod.deprecated.recorrection.Recorrection;
+import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardActionListener;
 import com.android.inputmethod.keyboard.KeyboardSwitcher;
@@ -1695,7 +1696,12 @@
             // for punctuation entered through the suggestion strip, it should be considered
             // a magic space even if it was a normal space. This is meant to help in case the user
             // pressed space on purpose of displaying the suggestion strip punctuation.
-            final char primaryCode = suggestion.charAt(0);
+            final int rawPrimaryCode = suggestion.charAt(0);
+            // Maybe apply the "bidi mirrored" conversions for parentheses
+            final LatinKeyboard keyboard = mKeyboardSwitcher.getLatinKeyboard();
+            final int primaryCode = keyboard.isRtlKeyboard()
+                    ? Key.getRtlParenthesisCode(rawPrimaryCode) : rawPrimaryCode;
+
             final CharSequence beforeText = ic != null ? ic.getTextBeforeCursor(1, 0) : "";
             final int toLeft = (ic == null || TextUtils.isEmpty(beforeText))
                     ? 0 : beforeText.charAt(0);