diff options
author | 2011-04-14 01:56:15 -0700 | |
---|---|---|
committer | 2011-04-14 01:56:15 -0700 | |
commit | e4b2d226361a6e89a9dbc161c50b1de5e31e805f (patch) | |
tree | cbed0ca6b1dd927c32e94c3870ac128b2087b682 /java/src | |
parent | 6d9021527a38ba1e94225020389621a0d7227aa1 (diff) | |
parent | 37cfacbae657c2a6329c5c4d8dae13b1c2fe45b7 (diff) | |
download | latinime-e4b2d226361a6e89a9dbc161c50b1de5e31e805f.tar.gz latinime-e4b2d226361a6e89a9dbc161c50b1de5e31e805f.tar.xz latinime-e4b2d226361a6e89a9dbc161c50b1de5e31e805f.zip |
Merge "Make showing key preview compatible with pre-Honeycomb"
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/KeyboardView.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 71863803b..dee191352 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -47,6 +47,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.TextView; @@ -908,10 +909,18 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { if (mPreviewText.getParent() == null) { final FrameLayout screenContent = (FrameLayout) getRootView() .findViewById(android.R.id.content); - screenContent.addView(mPreviewText, new FrameLayout.LayoutParams(0, 0)); + if (android.os.Build.VERSION.SDK_INT >= /* HONEYCOMB */ 11) { + screenContent.addView(mPreviewText, new FrameLayout.LayoutParams(0, 0)); + } else { + // Insert LinearLayout to be able to setMargin because pre-Honeycomb FrameLayout + // could not handle setMargin properly. + final LinearLayout placer = new LinearLayout(getContext()); + screenContent.addView(placer); + placer.addView(mPreviewText, new LinearLayout.LayoutParams(0, 0)); + } } - Key key = tracker.getKey(keyIndex); + final Key key = tracker.getKey(keyIndex); // If keyIndex is invalid or IME is already closed, we must not show key preview. // Trying to show preview PopupWindow while root window is closed causes // WindowManager.BadTokenException. @@ -943,10 +952,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { + mPreviewText.getPaddingLeft() + mPreviewText.getPaddingRight()); final int popupHeight = mPreviewHeight; final ViewGroup.LayoutParams lp = mPreviewText.getLayoutParams(); - if (lp != null) { - lp.width = popupWidth; - lp.height = popupHeight; - } + lp.width = popupWidth; + lp.height = popupHeight; int popupPreviewX = keyDrawX - (popupWidth - keyDrawWidth) / 2; int popupPreviewY = key.mY - popupHeight + mPreviewOffset; |