diff --git a/java/res/layout/input_trans.xml b/java/res/layout/input_trans.xml
deleted file mode 100644
index 4c0979c..0000000
--- a/java/res/layout/input_trans.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* 
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
-**
-**     http://www.apache.org/licenses/LICENSE-2.0 
-**
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
-** limitations under the License.
-*/
--->
-
-<com.android.inputmethod.latin.LatinKeyboardView
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-        android:id="@android:id/keyboardView"
-        android:layout_alignParentBottom="true"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/latinkeyboard_extension_background"
-        android:verticalCorrection="0dip"
-
-        latin:keyBackground="@drawable/btn_keyboard_key_fulltrans"
-        />
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 6e941ba..b11236a 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -25,4 +25,8 @@
     <integer name="config_preview_fadeout_anim_time">90</integer>
     <integer name="config_mini_keyboard_fadein_anim_time">0</integer>
     <integer name="config_mini_keyboard_fadeout_anim_time">100</integer>
+    <integer name="config_delay_before_key_repeat_start">400</integer>
+    <integer name="config_key_repeat_interval">50</integer>
+    <integer name="config_long_press_key_timeout">400</integer>
+    <integer name="config_multi_tap_key_timeout">800</integer>
 </resources>
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 75ef691..bcd1bb0 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -154,7 +154,7 @@
     }
 
     // Timing constants
-    private static final int REPEAT_INTERVAL = PointerTracker.REPEAT_INTERVAL;
+    private final int mKeyRepeatInterval;
 
     // Miscellaneous constants
     /* package */ static final int NOT_A_KEY = -1;
@@ -261,7 +261,7 @@
                 case MSG_REPEAT_KEY: {
                     final PointerTracker tracker = (PointerTracker)msg.obj;
                     tracker.repeatKey(msg.arg1);
-                    startKeyRepeatTimer(REPEAT_INTERVAL, msg.arg1, tracker);
+                    startKeyRepeatTimer(mKeyRepeatInterval, msg.arg1, tracker);
                     break;
                 }
                 case MSG_LONGPRESS_KEY: {
@@ -542,6 +542,7 @@
 
         mHasDistinctMultitouch = context.getPackageManager()
                 .hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT);
+        mKeyRepeatInterval = res.getInteger(R.integer.config_key_repeat_interval);
     }
 
     public void setOnKeyboardActionListener(OnKeyboardActionListener listener) {
@@ -1218,7 +1219,7 @@
         // Create pointer trackers until we can get 'id+1'-th tracker, if needed.
         for (int i = pointers.size(); i <= id; i++) {
             final PointerTracker tracker =
-                new PointerTracker(i, mHandler, mKeyDetector, this, mHasDistinctMultitouch);
+                new PointerTracker(i, mHandler, mKeyDetector, this, getResources());
             if (keys != null)
                 tracker.setKeyboard(keys, mKeyHysteresisDistance);
             if (listener != null)
diff --git a/java/src/com/android/inputmethod/latin/PointerTracker.java b/java/src/com/android/inputmethod/latin/PointerTracker.java
index b416a98..448e279 100644
--- a/java/src/com/android/inputmethod/latin/PointerTracker.java
+++ b/java/src/com/android/inputmethod/latin/PointerTracker.java
@@ -19,11 +19,11 @@
 import com.android.inputmethod.latin.LatinKeyboardBaseView.OnKeyboardActionListener;
 import com.android.inputmethod.latin.LatinKeyboardBaseView.UIHandler;
 
+import android.content.res.Resources;
 import android.inputmethodservice.Keyboard;
 import android.inputmethodservice.Keyboard.Key;
 import android.util.Log;
 import android.view.MotionEvent;
-import android.view.ViewConfiguration;
 
 public class PointerTracker {
     private static final String TAG = "PointerTracker";
@@ -33,15 +33,15 @@
     public interface UIProxy {
         public void invalidateKey(Key key);
         public void showPreview(int keyIndex, PointerTracker tracker);
+        public boolean hasDistinctMultitouch();
     }
 
     public final int mPointerId;
 
     // Timing constants
-    private static final int REPEAT_START_DELAY = 400;
-    /* package */  static final int REPEAT_INTERVAL = 50; // ~20 keys per second
-    private static final int LONGPRESS_TIMEOUT = ViewConfiguration.getLongPressTimeout();
-    private static final int MULTITAP_INTERVAL = 800; // milliseconds
+    private final int mDelayBeforeKeyRepeatStart;
+    private final int mLongPressKeyTimeout;
+    private final int mMultiTapKeyTimeout;
 
     // Miscellaneous constants
     private static final int NOT_A_KEY = LatinKeyboardBaseView.NOT_A_KEY;
@@ -164,7 +164,7 @@
     }
 
     public PointerTracker(int id, UIHandler handler, KeyDetector keyDetector, UIProxy proxy,
-            boolean hasDistinctMultitouch) {
+            Resources res) {
         if (proxy == null || handler == null || keyDetector == null)
             throw new NullPointerException();
         mPointerId = id;
@@ -172,7 +172,10 @@
         mHandler = handler;
         mKeyDetector = keyDetector;
         mKeyState = new KeyState(keyDetector);
-        mHasDistinctMultitouch = hasDistinctMultitouch;
+        mHasDistinctMultitouch = proxy.hasDistinctMultitouch();
+        mDelayBeforeKeyRepeatStart = res.getInteger(R.integer.config_delay_before_key_repeat_start);
+        mLongPressKeyTimeout = res.getInteger(R.integer.config_long_press_key_timeout);
+        mMultiTapKeyTimeout = res.getInteger(R.integer.config_multi_tap_key_timeout);
         resetMultiTap();
     }
 
@@ -278,10 +281,10 @@
         if (isValidKeyIndex(keyIndex)) {
             if (mKeys[keyIndex].repeatable) {
                 repeatKey(keyIndex);
-                mHandler.startKeyRepeatTimer(REPEAT_START_DELAY, keyIndex, this);
+                mHandler.startKeyRepeatTimer(mDelayBeforeKeyRepeatStart, keyIndex, this);
                 mIsRepeatableKey = true;
             }
-            mHandler.startLongPressTimer(LONGPRESS_TIMEOUT, keyIndex, this);
+            mHandler.startLongPressTimer(mLongPressKeyTimeout, keyIndex, this);
         }
         showKeyPreviewAndUpdateKey(keyIndex);
     }
@@ -296,11 +299,11 @@
         if (isValidKeyIndex(keyIndex)) {
             if (keyState.getKeyIndex() == NOT_A_KEY) {
                 keyState.onMoveToNewKey(keyIndex, x, y);
-                mHandler.startLongPressTimer(LONGPRESS_TIMEOUT, keyIndex, this);
+                mHandler.startLongPressTimer(mLongPressKeyTimeout, keyIndex, this);
             } else if (!isMinorMoveBounce(x, y, keyIndex)) {
                 resetMultiTap();
                 keyState.onMoveToNewKey(keyIndex, x, y);
-                mHandler.startLongPressTimer(LONGPRESS_TIMEOUT, keyIndex, this);
+                mHandler.startLongPressTimer(mLongPressKeyTimeout, keyIndex, this);
             }
         } else {
             if (keyState.getKeyIndex() != NOT_A_KEY) {
@@ -489,7 +492,7 @@
             return;
 
         final boolean isMultiTap =
-                (eventTime < mLastTapTime + MULTITAP_INTERVAL && keyIndex == mLastSentIndex);
+                (eventTime < mLastTapTime + mMultiTapKeyTimeout && keyIndex == mLastSentIndex);
         if (key.codes.length > 1) {
             mInMultiTap = true;
             if (isMultiTap) {
