diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionCustomTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionCustomTests.java
index e7ef330..cb1c6ad 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionCustomTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionCustomTests.java
@@ -16,13 +16,13 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionCustomTests extends KlpActionTestsBase {
     public void testActionCustom() {
         for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionDoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionDoneTests.java
index ada91b2..e0a87a7 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionDoneTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionDoneTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionDoneTests extends KlpActionTestsBase {
     public void testActionDone() {
         for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionGoTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionGoTests.java
index 101523a..865b598 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionGoTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionGoTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionGoTests extends KlpActionTestsBase {
     public void testActionGo() {
         for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionNextTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNextTests.java
index b24f7d0..c67740c 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionNextTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNextTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionNextTests extends KlpActionTestsBase {
     public void testActionNext() {
         for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionNoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNoneTests.java
index 18f7daf..0be2ecb 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionNoneTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNoneTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionNoneTests extends KlpActionTestsBase {
     public void testActionNone() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionPreviousTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionPreviousTests.java
index da44920..af6a154 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionPreviousTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionPreviousTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionPreviousTests extends KlpActionTestsBase {
     public void testActionPrevious() {
         for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionSearchTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSearchTests.java
index 18b6daf..adc3fee 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionSearchTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSearchTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionSearchTests extends KlpActionTestsBase {
     public void testActionSearch() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionSendTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSendTests.java
index f3ec173..82f97a2 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionSendTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSendTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionSendTests extends KlpActionTestsBase {
     public void testActionSend() {
         for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionUnspecifiedTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionUnspecifiedTests.java
index a465c0d..307e273 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/KlpActionUnspecifiedTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionUnspecifiedTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class KlpActionUnspecifiedTests extends KlpActionTestsBase {
     public void testActionUnspecified() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionCustomTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionCustomTests.java
index 3d24d63..d561f45 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionCustomTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionCustomTests.java
@@ -16,13 +16,13 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionCustomTests extends LxxActionTestsBase {
     public void testActionCustom() {
         for (final InputMethodSubtype subtype : getAllSubtypesList()) {
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionDoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionDoneTests.java
index c39839b..b818bb1 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionDoneTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionDoneTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionDoneTests extends LxxActionTestsBase {
     public void testActionDone() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionGoTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionGoTests.java
index 4793514..8001f71 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionGoTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionGoTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionGoTests extends LxxActionTestsBase {
     public void testActionGo() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionNextTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNextTests.java
index 37c7120..09a8c87 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionNextTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNextTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionNextTests extends LxxActionTestsBase {
     public void testActionNext() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionNoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNoneTests.java
index 6a2e774..98595e9 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionNoneTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNoneTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionNoneTests extends LxxActionTestsBase {
     public void testActionNone() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionPreviousTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionPreviousTests.java
index 1917f03..2327889 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionPreviousTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionPreviousTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionPreviousTests extends LxxActionTestsBase {
     public void testActionPrevious() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionSearchTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSearchTests.java
index 5e498e4..7e1d86b 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionSearchTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSearchTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionSearchTests extends LxxActionTestsBase {
     public void testActionSearch() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionSendTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSendTests.java
index 722f79e..fa0134f 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionSendTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSendTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionSendTests extends LxxActionTestsBase {
     public void testActionSend() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionUnspecifiedTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionUnspecifiedTests.java
index 00e908f..711ca26 100644
--- a/tests/src/com/android/inputmethod/keyboard/action/LxxActionUnspecifiedTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionUnspecifiedTests.java
@@ -16,14 +16,14 @@
 
 package com.android.inputmethod.keyboard.action;
 
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-@MediumTest
+@LargeTest
 public class LxxActionUnspecifiedTests extends LxxActionTestsBase {
     public void testActionUnspecified() {
         final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
