diff --git a/java/src/com/android/inputmethod/research/LoggingUtils.java b/java/src/com/android/inputmethod/research/LoggingUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..1261d6780b8da85be6471e9e4d465e1f66e31586
--- /dev/null
+++ b/java/src/com/android/inputmethod/research/LoggingUtils.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+package com.android.inputmethod.research;
+
+import android.view.MotionEvent;
+
+/* package */ class LoggingUtils {
+    private LoggingUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    /* package */ static String getMotionEventActionTypeString(final int actionType) {
+        switch (actionType) {
+        case MotionEvent.ACTION_CANCEL: return "CANCEL";
+        case MotionEvent.ACTION_UP: return "UP";
+        case MotionEvent.ACTION_DOWN: return "DOWN";
+        case MotionEvent.ACTION_POINTER_UP: return "POINTER_UP";
+        case MotionEvent.ACTION_POINTER_DOWN: return "POINTER_DOWN";
+        case MotionEvent.ACTION_MOVE: return "MOVE";
+        case MotionEvent.ACTION_OUTSIDE: return "OUTSIDE";
+        default: return "ACTION_" + actionType;
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index 45212913eb59bc456419f9ad0337d9eec6e89dba..0eb10406f85a5c9348d5688f1c431f93cf1e25be 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -1226,17 +1226,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
     public static void mainKeyboardView_processMotionEvent(final MotionEvent me, final int action,
             final long eventTime, final int index, final int id, final int x, final int y) {
         if (me != null) {
-            final String actionString;
-            switch (action) {
-                case MotionEvent.ACTION_CANCEL: actionString = "CANCEL"; break;
-                case MotionEvent.ACTION_UP: actionString = "UP"; break;
-                case MotionEvent.ACTION_DOWN: actionString = "DOWN"; break;
-                case MotionEvent.ACTION_POINTER_UP: actionString = "POINTER_UP"; break;
-                case MotionEvent.ACTION_POINTER_DOWN: actionString = "POINTER_DOWN"; break;
-                case MotionEvent.ACTION_MOVE: actionString = "MOVE"; break;
-                case MotionEvent.ACTION_OUTSIDE: actionString = "OUTSIDE"; break;
-                default: actionString = "ACTION_" + action; break;
-            }
+            final String actionString = LoggingUtils.getMotionEventActionTypeString(action);
             final ResearchLogger researchLogger = getInstance();
             researchLogger.enqueueEvent(LOGSTATEMENT_MAIN_KEYBOARD_VIEW_PROCESS_MOTION_EVENT,
                     actionString, false /* IS_LOGGING_RELATED */, MotionEvent.obtain(me));