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
This commit is contained in:
Tadashi G. Takaoka 2012-06-04 11:14:51 +09:00
parent 027448e08a
commit bc5b89cdff

View file

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