Remove all key preview from placer when window gets hide

Bug: 5130302
Change-Id: I70e3737c33bfbac99366ab36d3437b0801f5140a
main
Tadashi G. Takaoka 2011-08-05 23:33:51 -07:00
parent 60a004f78e
commit 1149abd876
2 changed files with 14 additions and 9 deletions

View File

@ -35,6 +35,7 @@ import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.android.inputmethod.compat.FrameLayoutCompatUtils;
@ -349,8 +350,11 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
* @param keyboard the keyboard to display in this view
*/
public void setKeyboard(Keyboard keyboard) {
// Remove any pending messages, except dismissing preview
// Remove any pending dismissing preview
mDrawingHandler.cancelAllShowKeyPreviews();
if (mKeyboard != null) {
PointerTracker.dismissAllKeyPreviews();
}
mKeyboard = keyboard;
LatinImeLogger.onSetKeyboard(keyboard);
requestLayout();
@ -788,14 +792,15 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
private void addKeyPreview(TextView keyPreview) {
if (mPreviewPlacer == null) {
mPreviewPlacer = FrameLayoutCompatUtils.getPlacer(
(ViewGroup)getRootView().findViewById(android.R.id.content));
mPreviewPlacer = new RelativeLayout(getContext());
final ViewGroup windowContentView =
(ViewGroup)getRootView().findViewById(android.R.id.content);
windowContentView.addView(mPreviewPlacer);
}
final ViewGroup placer = mPreviewPlacer;
placer.addView(keyPreview, FrameLayoutCompatUtils.newLayoutParam(placer, 0, 0));
mPreviewPlacer.addView(
keyPreview, FrameLayoutCompatUtils.newLayoutParam(mPreviewPlacer, 0, 0));
}
// TODO: Introduce minimum duration for displaying key previews
private void showKey(final int keyIndex, PointerTracker tracker) {
final TextView previewText = tracker.getKeyPreviewText();
// If the key preview has no parent view yet, add it to the ViewGroup which can place
@ -914,5 +919,8 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
closing();
if (mPreviewPlacer != null) {
mPreviewPlacer.removeAllViews();
}
}
}

View File

@ -281,9 +281,6 @@ public class LatinKeyboardBaseView extends KeyboardView implements PointerTracke
*/
@Override
public void setKeyboard(Keyboard keyboard) {
if (getKeyboard() != null) {
PointerTracker.dismissAllKeyPreviews();
}
// Remove any pending messages, except dismissing preview
mKeyTimerHandler.cancelKeyTimers();
super.setKeyboard(keyboard);