Extend space LED for autocompletion

Change-Id: If59ea7c871ffc2af6fe2bfde72303f2612e43c3b
This commit is contained in:
satok 2010-09-03 19:05:23 +09:00
parent 1b09ac4f93
commit 1bf265d185
2 changed files with 42 additions and 31 deletions

View file

@ -687,6 +687,7 @@ public class LatinIME extends InputMethodService
super.onFinishInput(); super.onFinishInput();
LatinImeLogger.commit(); LatinImeLogger.commit();
onAutoCompletionStateChanged(false);
if (VOICE_INSTALLED && !mConfigurationChanging) { if (VOICE_INSTALLED && !mConfigurationChanging) {
if (mAfterVoiceInput) { if (mAfterVoiceInput) {
@ -791,6 +792,7 @@ public class LatinIME extends InputMethodService
@Override @Override
public void hideWindow() { public void hideWindow() {
LatinImeLogger.commit(); LatinImeLogger.commit();
onAutoCompletionStateChanged(false);
if (TRACE) Debug.stopMethodTracing(); if (TRACE) Debug.stopMethodTracing();
if (mOptionsDialog != null && mOptionsDialog.isShowing()) { if (mOptionsDialog != null && mOptionsDialog.isShowing()) {

View file

@ -44,6 +44,7 @@ public class LatinKeyboard extends Keyboard {
private static final boolean DEBUG_PREFERRED_LETTER = false; private static final boolean DEBUG_PREFERRED_LETTER = false;
private static final String TAG = "LatinKeyboard"; private static final String TAG = "LatinKeyboard";
private static final int OPACITY_FULLY_OPAQUE = 255; private static final int OPACITY_FULLY_OPAQUE = 255;
private static final int SPACE_LED_LENGTH_PERCENT = 80;
private Drawable mShiftLockIcon; private Drawable mShiftLockIcon;
private Drawable mShiftLockPreviewIcon; private Drawable mShiftLockPreviewIcon;
@ -345,16 +346,20 @@ public class LatinKeyboard extends Keyboard {
} }
private void updateSpaceBarForLocale(boolean isAutoCompletion, boolean isBlack) { private void updateSpaceBarForLocale(boolean isAutoCompletion, boolean isBlack) {
// If application locales are explicitly selected.
if (mLocale != null) { if (mLocale != null) {
Bitmap buffer = drawSpaceBar(OPACITY_FULLY_OPAQUE, isAutoCompletion, isBlack); mSpaceKey.icon = new BitmapDrawable(mRes,
mSpaceKey.icon = new BitmapDrawable(mRes, buffer); drawSpaceBar(OPACITY_FULLY_OPAQUE, isAutoCompletion, isBlack));
mSpaceKey.repeatable = mLanguageSwitcher.getLocaleCount() < 2; mSpaceKey.repeatable = mLanguageSwitcher.getLocaleCount() < 2;
} else { } else {
// sym_keyboard_space_led can be shared with Black and White symbol themes. // sym_keyboard_space_led can be shared with Black and White symbol themes.
mSpaceKey.icon = if (isAutoCompletion) {
isAutoCompletion ? mRes.getDrawable(R.drawable.sym_keyboard_space_led) mSpaceKey.icon = new BitmapDrawable(mRes,
: isBlack ? mRes.getDrawable(R.drawable.sym_bkeyboard_space) drawSpaceBar(OPACITY_FULLY_OPAQUE, isAutoCompletion, isBlack));
} else {
mSpaceKey.icon = isBlack ? mRes.getDrawable(R.drawable.sym_bkeyboard_space)
: mRes.getDrawable(R.drawable.sym_keyboard_space); : mRes.getDrawable(R.drawable.sym_keyboard_space);
}
mSpaceKey.repeatable = true; mSpaceKey.repeatable = true;
} }
} }
@ -365,6 +370,8 @@ public class LatinKeyboard extends Keyboard {
Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(buffer); Canvas canvas = new Canvas(buffer);
canvas.drawColor(mRes.getColor(R.color.latinkeyboard_transparent), PorterDuff.Mode.CLEAR); canvas.drawColor(mRes.getColor(R.color.latinkeyboard_transparent), PorterDuff.Mode.CLEAR);
// If application locales are explicitly selected.
if (mLocale != null) {
Paint paint = new Paint(); Paint paint = new Paint();
paint.setAntiAlias(true); paint.setAntiAlias(true);
paint.setAlpha(opacity); paint.setAlpha(opacity);
@ -374,7 +381,8 @@ public class LatinKeyboard extends Keyboard {
final String language = getInputLanguage(mSpaceKey.width, paint); final String language = getInputLanguage(mSpaceKey.width, paint);
final int ascent = (int) -paint.ascent(); final int ascent = (int) -paint.ascent();
int shadowColor = isBlack ? mRes.getColor(R.color.latinkeyboard_bar_language_shadow_black) int shadowColor = isBlack ?
mRes.getColor(R.color.latinkeyboard_bar_language_shadow_black)
: mRes.getColor(R.color.latinkeyboard_bar_language_shadow_white); : mRes.getColor(R.color.latinkeyboard_bar_language_shadow_white);
paint.setColor(shadowColor); paint.setColor(shadowColor);
@ -392,9 +400,10 @@ public class LatinKeyboard extends Keyboard {
drawButtonArrow(mButtonArrowRightIcon, canvas, drawButtonArrow(mButtonArrowRightIcon, canvas,
(mSpaceKey.width + bounds.right) / 2, (int) paint.getTextSize()); (mSpaceKey.width + bounds.right) / 2, (int) paint.getTextSize());
} }
}
// Draw the spacebar icon at the bottom // Draw the spacebar icon at the bottom
if (isAutoCompletion) { if (isAutoCompletion) {
final int iconWidth = mSpaceAutoCompletionIndicator.getIntrinsicWidth(); final int iconWidth = width * SPACE_LED_LENGTH_PERCENT / 100;
final int iconHeight = mSpaceAutoCompletionIndicator.getIntrinsicHeight(); final int iconHeight = mSpaceAutoCompletionIndicator.getIntrinsicHeight();
int x = (width - iconWidth) / 2; int x = (width - iconWidth) / 2;
int y = height - iconHeight; int y = height - iconHeight;