Use calculated backing view height instead of the view's height

This change removes the work around that was introduced by If4f24500.

Bug: 6596131
Change-Id: Ib814c07fdac7d0aa0d7fbc2764fda1af42b82ad5
main
Tadashi G. Takaoka 2012-06-04 11:14:51 +09:00
parent 027448e08a
commit bc5b89cdff
1 changed files with 9 additions and 22 deletions

View File

@ -96,9 +96,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private static final int QUICK_PRESS = 200;
private static final int PENDING_IMS_CALLBACK_DURATION = 800;
// TODO: remove this
private static final boolean WORKAROUND_USE_LAST_BACKING_HEIGHT_WHEN_NOT_READY = true;
private static int sLastBackingHeight = 0;
/**
* The name of the scheme used by the Package Manager to warn of a new package installation,
@ -941,13 +938,16 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
setSuggestionStripShownInternal(shown, /* needsInputViewShown */true);
}
private void adjustInputViewHeight() {
if (mKeyPreviewBackingView.getHeight() > 0) {
return;
private int getAdjustedBackingViewHeight() {
final int currentHeight = mKeyPreviewBackingView.getHeight();
if (currentHeight > 0) {
return currentHeight;
}
final KeyboardView keyboardView = mKeyboardSwitcher.getKeyboardView();
if (keyboardView == null) return;
if (keyboardView == null) {
return 0;
}
final int keyboardHeight = keyboardView.getHeight();
final int suggestionsHeight = mSuggestionsContainer.getHeight();
final int displayHeight = mResources.getDisplayMetrics().heightPixels;
@ -960,6 +960,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final LayoutParams params = mKeyPreviewBackingView.getLayoutParams();
params.height = mSuggestionsView.setMoreSuggestionsHeight(remainingHeight);
mKeyPreviewBackingView.setLayoutParams(params);
return params.height;
}
@Override
@ -968,20 +969,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final KeyboardView inputView = mKeyboardSwitcher.getKeyboardView();
if (inputView == null || mSuggestionsContainer == null)
return;
adjustInputViewHeight();
final int backingHeight = getAdjustedBackingViewHeight();
// In fullscreen mode, the height of the extract area managed by InputMethodService should
// be considered.
// See {@link android.inputmethodservice.InputMethodService#onComputeInsets}.
final int extractHeight = isFullscreenMode() ? mExtractArea.getHeight() : 0;
final boolean backingGone = mKeyPreviewBackingView.getVisibility() == View.GONE;
int backingHeight = backingGone ? 0 : mKeyPreviewBackingView.getHeight();
if (WORKAROUND_USE_LAST_BACKING_HEIGHT_WHEN_NOT_READY && !backingGone) {
if (backingHeight <= 0) {
backingHeight = sLastBackingHeight;
} else {
sLastBackingHeight = backingHeight;
}
}
final int suggestionsHeight = (mSuggestionsContainer.getVisibility() == View.GONE) ? 0
: mSuggestionsContainer.getHeight();
final int extraHeight = extractHeight + backingHeight + suggestionsHeight;
@ -1001,11 +993,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
outInsets.contentTopInsets = touchY;
outInsets.visibleTopInsets = touchY;
if (WORKAROUND_USE_LAST_BACKING_HEIGHT_WHEN_NOT_READY) {
if (LatinImeLogger.sDBG) {
Log.i(TAG, "--- insets: " + touchY + "," + backingHeight + "," + suggestionsHeight);
}
}
}
@Override