Updated some keyboard assets.

Let the arrows obscure the sliding language text to create the fade effect.
Initialize the preview icon bounds.
diff --git a/res/drawable-hdpi/btn_keyboard_key_normal.9.png b/res/drawable-hdpi/btn_keyboard_key_normal.9.png
index 5bd9f0e..42c7c14 100644
--- a/res/drawable-hdpi/btn_keyboard_key_normal.9.png
+++ b/res/drawable-hdpi/btn_keyboard_key_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png b/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png
index aa4a4a3..01e2506 100644
--- a/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png
+++ b/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png b/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png
index 27556f8..83c6eb3 100644
--- a/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png
+++ b/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed.9.png
index e43504c..e047eaf 100644
--- a/res/drawable-hdpi/btn_keyboard_key_pressed.9.png
+++ b/res/drawable-hdpi/btn_keyboard_key_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png
index e55ab1e..218a2d2 100644
--- a/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png
+++ b/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png
index 02010b4..afe4951 100644
--- a/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png
+++ b/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png
Binary files differ
diff --git a/res/drawable-hdpi/sym_keyboard_feedback_123_mic_.png b/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png
similarity index 100%
rename from res/drawable-hdpi/sym_keyboard_feedback_123_mic_.png
rename to res/drawable-hdpi/sym_keyboard_feedback_123_mic.png
Binary files differ
diff --git a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
index 8f9b493..c7638bf 100644
--- a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
+++ b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
Binary files differ
diff --git a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
index a2fbd0f..7acb07c 100644
--- a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
+++ b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
Binary files differ
diff --git a/res/drawable-mdpi/sym_keyboard_feedback_123_mic_.png b/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
similarity index 100%
rename from res/drawable-mdpi/sym_keyboard_feedback_123_mic_.png
rename to res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
Binary files differ
diff --git a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
index 8ab87d0..e3f80fa 100644
--- a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
+++ b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
Binary files differ
diff --git a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
index 92d19b5..3cb0d99 100644
--- a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
+++ b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
Binary files differ
diff --git a/src/com/android/inputmethod/latin/LatinKeyboard.java b/src/com/android/inputmethod/latin/LatinKeyboard.java
index 92f93b3..9821a16 100644
--- a/src/com/android/inputmethod/latin/LatinKeyboard.java
+++ b/src/com/android/inputmethod/latin/LatinKeyboard.java
@@ -56,6 +56,7 @@
     private Key mEnterKey;
     private Key mF1Key;
     private Key mSpaceKey;
+    private Key m123Key;
     private int mSpaceKeyIndex = -1;
     private int mSpaceDragStartX;
     private int mSpaceDragLastDiff;
@@ -103,6 +104,8 @@
         mMicPreviewIcon = res.getDrawable(R.drawable.sym_keyboard_feedback_mic);
         mButtonArrowLeftIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_left);
         mButtonArrowRightIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_right);
+        m123MicIcon = res.getDrawable(R.drawable.sym_keyboard_123_mic);
+        m123MicPreviewIcon = res.getDrawable(R.drawable.sym_keyboard_feedback_123_mic);
         sSpacebarVerticalCorrection = res.getDimensionPixelOffset(
                 R.dimen.spacebar_vertical_correction);
         setF1Key();
@@ -128,6 +131,9 @@
         case 32:
             mSpaceKey = key;
             break;
+        case KEYCODE_MODE_CHANGE:
+            m123Key = key;
+            break;
         }
         return key;
     }
@@ -267,6 +273,10 @@
             mF1Key.codes = new int[] { ',' };
             mF1Key.icon = null;
             mF1Key.iconPreview = null;
+            if (m123Key != null) {
+                m123Key.icon = m123MicIcon;
+                m123Key.iconPreview = m123MicPreviewIcon;
+            }
         } else {
             mF1Key.codes = new int[] { LatinKeyboardView.KEYCODE_VOICE };
             mF1Key.label = null;
@@ -560,20 +570,15 @@
         public void draw(Canvas canvas) {
             canvas.save();
             if (mHitThreshold) {
-                mTextPaint.setColor(0);
+                mTextPaint.setColor(0xFF000000);
                 canvas.clipRect(0, 0, mWidth, mHeight);
-                int alpha = (255 * Math.max(0, mWidth / 2 - Math.abs(mDiff))) / (mWidth / 2);
-                mTextPaint.setAlpha(alpha);
-
                 if (mCurrentLanguage == null) {
                     mCurrentLanguage = getInputLanguage(mWidth, mTextPaint);
                     mNextLanguage = getNextInputLanguage(mWidth, mTextPaint);
                     mPrevLanguage = getPrevInputLanguage(mWidth, mTextPaint);
                 }
-
                 canvas.drawText(mCurrentLanguage,
                         mWidth / 2 + mDiff, -mAscent + 4, mTextPaint);
-                mTextPaint.setAlpha(255 - alpha);
                 canvas.drawText(mNextLanguage,
                         mDiff - mWidth / 2, -mAscent + 4, mTextPaint);
                 canvas.drawText(mPrevLanguage,