From f9d0f3a81ad4220672f90a8799a79e63e53c46d3 Mon Sep 17 00:00:00 2001 From: Valentin Kravtsov Date: Mon, 12 Apr 2010 20:59:46 +0100 Subject: Fix for: For Voice IME busy circle displayed below waveform bugfix for: http://b/issue?id=2568048 [Sapphire] ]For Voice IME busy circle displayed below waveform. STEPS TO REPRODUCE: 1. launch Calendar . -> Select menu -> New Event. 2. Switch soft keyboard to Number view. 3. Tap on mic symbol of to speak 4. Speak any word to enter in Text field . 5. Verify busy icon ( circular icon ) displayed in "working " screen. EXPECTED RESULTS: Busy circle should be displayed in center of waveform OBSERVED RESULTS: Busy circle displayed below waveform ADDITIONAL INFORMATION: Spoken word is enetering in text field correctly. Change-Id: I043ce6a985f526cade0e9f63525619a92d918485 --- java/src/com/android/inputmethod/voice/RecognitionView.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/inputmethod/voice/RecognitionView.java b/java/src/com/android/inputmethod/voice/RecognitionView.java index 1e99c3cf7..7cec0b04a 100644 --- a/java/src/com/android/inputmethod/voice/RecognitionView.java +++ b/java/src/com/android/inputmethod/voice/RecognitionView.java @@ -274,12 +274,11 @@ public class RecognitionView { final int count = (endIndex - startIndex) / numSamplePerWave; final float deltaX = 1.0f * w / count; - int yMax = h / 2 - 10; + int yMax = h / 2 - 8; Path path = new Path(); c.translate(0, yMax); float x = 0; path.moveTo(x, 0); - yMax -= 10; for (int i = 0; i < count; i++) { final int avabs = getAverageAbs(waveBuffer, startIndex, i , numSamplePerWave); int sign = ( (i & 01) == 0) ? -1 : 1; @@ -297,8 +296,8 @@ public class RecognitionView { mImage.setImageBitmap(b); mImage.setVisibility(View.VISIBLE); MarginLayoutParams mProgressParams = (MarginLayoutParams)mProgress.getLayoutParams(); - mProgressParams.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, - -h / 2 - 18, mContext.getResources().getDisplayMetrics()); + mProgressParams.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, + -h , mContext.getResources().getDisplayMetrics()); // Tweak the padding manually to fill out the whole view horizontally. // TODO: Do this in the xml layout instead. -- cgit v1.2.3-83-g751a From 938c178215d38c6f085b32b0994598f9e8bc5ab5 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Thu, 15 Apr 2010 14:44:22 -0700 Subject: Fix for hanging extension keyboard. Bug: 2593488 Sometimes the only motion event that is above the keyboard is the UP event. In that case we can't expect one more event to come that will dismiss the extension. So don't show the extension if the only Y < 0 event is an UP event. Change-Id: I04a8b742dea03cd700006dc5df740ac7d9620c0b --- java/src/com/android/inputmethod/latin/LatinKeyboardView.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java index c25fe3942..ddfb4047c 100644 --- a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java @@ -192,12 +192,12 @@ public class LatinKeyboardView extends KeyboardView { mLastY = (int) me.getY(); invalidate(); } + // If an extension keyboard is visible or this is an extension keyboard, don't look // for sudden jumps. Otherwise, if there was a sudden jump, return without processing the // actual motion event. if (!mExtensionVisible && !mIsExtensionType && handleSuddenJump(me)) return true; - // Reset any bounding box controls in the keyboard if (me.getAction() == MotionEvent.ACTION_DOWN) { keyboard.keyReleased(); @@ -219,7 +219,9 @@ public class LatinKeyboardView extends KeyboardView { if (keyboard.getExtension() == 0) { return super.onTouchEvent(me); } - if (me.getY() < 0) { + // If the motion event is above the keyboard and it's not an UP event coming + // even before the first MOVE event into the extension area + if (me.getY() < 0 && (mExtensionVisible || me.getAction() != MotionEvent.ACTION_UP)) { if (mExtensionVisible) { int action = me.getAction(); if (mFirstEvent) action = MotionEvent.ACTION_DOWN; -- cgit v1.2.3-83-g751a