diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..037fe92
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+# Gradle
+.externalNativeBuild/
+.gradle/
+.idea/
+LatinIME.iml
+build/
+local.properties
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..ee5b7e6
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,110 @@
+buildscript {
+    repositories {
+        google()
+        jcenter()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.2.0-beta03'
+    }
+}
+
+apply plugin: 'com.android.application'
+
+android {
+    compileSdkVersion 28
+    buildToolsVersion '28.0.0'
+
+    // Required if using classes in android.test.runner
+    useLibrary 'android.test.runner'
+
+    // Required if using classes in android.test.base
+    useLibrary 'android.test.base'
+
+    // Required if using classes in android.test.mock
+    useLibrary 'android.test.mock'
+
+    defaultConfig {
+        minSdkVersion 18
+        targetSdkVersion 23
+        versionName "1.0"
+
+        applicationId 'com.android.inputmethod.latin'
+        testApplicationId 'com.android.inputmethod.latin.tests'
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        vectorDrawables.useSupportLibrary = false
+
+        signingConfig signingConfigs.debug
+    }
+
+    signingConfigs {
+        debug {
+            storeFile file("java/shared.keystore")
+        }
+    }
+
+    buildTypes {
+        debug {
+            minifyEnabled false
+        }
+        release {
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.flags'
+        }
+    }
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+
+    flavorDimensions "default"
+
+    sourceSets {
+        main {
+            res.srcDirs = ['java/res']
+            java.srcDirs = ['common/src', 'java/src']
+            manifest.srcFile 'java/AndroidManifest.xml'
+        }
+
+        androidTest {
+            res.srcDirs = ['tests/res']
+            java.srcDirs = ['tests/src']
+            manifest.srcFile "tests/AndroidManifest.xml"
+        }
+    }
+
+    lintOptions {
+        checkReleaseBuilds false
+    }
+
+    aaptOptions {
+        noCompress 'dict'
+    }
+
+    externalNativeBuild {
+        ndkBuild {
+            path 'native/jni/Android.mk'
+        }
+    }
+}
+
+repositories {
+    maven { url "../../../prebuilts/fullsdk-darwin/extras/android/m2repository" }
+    maven { url "../../../prebuilts/fullsdk-linux/extras/android/m2repository" }
+    mavenCentral()
+    google()
+    jcenter()
+}
+
+dependencies {
+    implementation 'androidx.legacy:legacy-support-v4:+'
+    implementation 'com.google.code.findbugs:jsr305:3.0.2'
+
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation "org.mockito:mockito-core:1.9.5"
+    androidTestImplementation 'com.google.dexmaker:dexmaker:1.2'
+    androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
+    androidTestImplementation 'com.android.support.test:runner:1.0.2'
+    androidTestImplementation 'com.android.support.test:rules:1.0.2'
+    androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
+    androidTestImplementation "com.android.support:support-annotations:27.1.1"
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..33c5632
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Sat Jun 23 15:45:27 PDT 2018
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..9d82f78
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/java/Android.mk b/java/Android.mk
index 154f3a2..875aad4 100644
--- a/java/Android.mk
+++ b/java/Android.mk
@@ -17,19 +17,23 @@
 
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_SRC_FILES := $(call all-java-files-under, src ../java-overridable/src)
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
 LOCAL_PACKAGE_NAME := LatinIME
 
 LOCAL_CERTIFICATE := shared
 
+LOCAL_FULL_LIBS_MANIFEST_FILES := \
+    $(LOCAL_PATH)/AndroidManifest.xml \
+    $(LOCAL_PATH)/AndroidManifest_SdkVersion.xml
+
 LOCAL_JNI_SHARED_LIBRARIES := libjni_latinime
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
-        android-common inputmethod-common jsr305 latinime-common
+        android-common jsr305 latinime-common
 
 LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-v4
+        androidx.legacy_legacy-support-v4
 
 LOCAL_USE_AAPT2 := true
 
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index dedece5..5127c10 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -16,9 +16,8 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         coreApp="true"
-        package="com.android.inputmethod.latin">
-
-    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
+        package="com.android.inputmethod.latin"
+        android:versionCode="28">
 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
diff --git a/java/AndroidManifest_SdkVersion.xml b/java/AndroidManifest_SdkVersion.xml
new file mode 100644
index 0000000..3dfeede
--- /dev/null
+++ b/java/AndroidManifest_SdkVersion.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.inputmethod.latin">
+    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
+</manifest>
diff --git a/java/res/layout/emoji_palettes_view.xml b/java/res/layout/emoji_palettes_view.xml
index 26cc042..7c5f6c0 100644
--- a/java/res/layout/emoji_palettes_view.xml
+++ b/java/res/layout/emoji_palettes_view.xml
@@ -71,7 +71,7 @@
             android:soundEffectsEnabled="false"
             android:contentDescription="@string/spoken_description_delete" />
     </LinearLayout>
-    <android.support.v4.view.ViewPager
+    <androidx.viewpager.widget.ViewPager
         android:id="@+id/emoji_keyboard_pager"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />
diff --git a/java/res/layout/user_dictionary_add_word.xml b/java/res/layout/user_dictionary_add_word.xml
deleted file mode 100644
index 615fde5..0000000
--- a/java/res/layout/user_dictionary_add_word.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
-  -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/user_dict_settings_add_dialog_top"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical" >
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical" >
-
-        <com.android.internal.widget.DialogTitle
-            style="?android:attr/windowTitleStyle"
-            android:layout_width="match_parent"
-            android:layout_height="64dip"
-            android:layout_marginEnd="16dip"
-            android:layout_marginStart="16dip"
-            android:ellipsize="end"
-            android:gravity="center_vertical|start"
-            android:singleLine="true"
-            android:text="@string/user_dict_settings_add_dialog_title" />
-
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="2dip"
-            android:background="@android:color/holo_blue_light" />
-    </LinearLayout>
-
-    <EditText
-        android:id="@+id/user_dictionary_add_word_text"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="fill_horizontal|center_vertical"
-        android:layout_marginBottom="8dip"
-        android:layout_marginStart="8dip"
-        android:layout_marginTop="8dip"
-        android:hint="@string/user_dict_settings_add_word_hint"
-        android:imeOptions="flagNoFullscreen"
-        android:inputType="textNoSuggestions"
-        android:maxLength="@integer/config_user_dictionary_max_word_length" >
-
-        <requestFocus />
-    </EditText>
-
-    <LinearLayout
-        style="?android:attr/buttonBarStyle"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:measureWithLargestChild="true"
-        android:orientation="horizontal" >
-
-        <Button
-            style="?android:attr/buttonBarButtonStyle"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_gravity="start"
-            android:layout_weight="1"
-            android:maxLines="2"
-            android:onClick="onClickCancel"
-            android:text="@string/cancel"
-            android:textSize="14sp" />
-
-        <Button
-            style="?android:attr/buttonBarButtonStyle"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_gravity="end"
-            android:layout_weight="1"
-            android:maxLines="2"
-            android:onClick="onClickConfirm"
-            android:text="@string/user_dict_settings_add_dialog_confirm"
-            android:textSize="14sp" />
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/java/res/values-ar/strings-talkback-descriptions.xml b/java/res/values-ar/strings-talkback-descriptions.xml
index a17f340..e5bc479 100644
--- a/java/res/values-ar/strings-talkback-descriptions.xml
+++ b/java/res/values-ar/strings-talkback-descriptions.xml
@@ -47,8 +47,8 @@
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"تبديل اللغة"</string>
     <string name="spoken_description_action_next" msgid="431761808119616962">"التالي"</string>
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"السابق"</string>
-    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏تم تمكين Shift"</string>
-    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏تم تمكين Caps lock"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏تم تفعيل Shift"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏تم تفعيل Caps lock"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"وضع الرموز"</string>
     <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"المزيد من وضع الرموز"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"وضع الأحرف"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index bab2b7b..8b76c51 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -33,7 +33,7 @@
     <string name="settings_screen_correction" msgid="1616818407747682955">"تصحيح النص"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"الإعدادات المتقدمة"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"المظهر"</string>
-    <string name="enable_split_keyboard" msgid="4177264923999493614">"هل تريد تمكين لوحة المفاتيح المقسمة"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"هل تريد تفعيل لوحة المفاتيح المقسمة"</string>
     <string name="cloud_sync_title" msgid="8579271074443847055">"‏مزامنة لوحة مفاتيح Google"</string>
     <string name="cloud_sync_summary" msgid="7684887161145650857">"تم تشغيل المزامنة"</string>
     <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"يمكنك مزامنة قاموسك الشخصي على جميع الأجهزة"</string>
@@ -49,18 +49,18 @@
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"التبديل إلى أسلوب إدخال آخر"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"يغطي مفتاح تبديل اللغات أساليب الإدخال الأخرى أيضًا"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"مفتاح تبديل اللغة"</string>
-    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"يظهر عندما يتم تمكين لغات الإدخال متعددة"</string>
+    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"يظهر عندما يتم تفعيل لغات الإدخال متعددة"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"تأخير إزالة النافذة المنبثقة الأساسية"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"بلا تأخير"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"تلقائي"</string>
     <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> مللي ثانية"</string>
-    <string name="settings_system_default" msgid="6268225104743331821">"الإعداد الافتراضي للنظام"</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"الإعداد التلقائي للنظام"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"اقتراح أسماء جهات الاتصال"</string>
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"استخدام الأسماء من جهات الاتصال للاقتراحات والتصحيحات"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"اقتراحات مخصصة"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"تحسين <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"نقطة المسافة المزدوجة"</string>
-    <string name="use_double_space_period_summary" msgid="6532892187247952799">"يؤدي النقر نقرًا مزدوجًا على مفتاح المسافة إلى إدخال نقطة متبوعة بمسافة"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"يؤدي النقر مرّتين على مفتاح المسافة إلى إدخال نقطة متبوعة بمسافة"</string>
     <string name="auto_cap" msgid="1719746674854628252">"أحرف كبيرة تلقائيًا"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"كتابة الحرف الأول من كل جملة بحرف كبير."</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"القاموس الشخصي"</string>
@@ -78,7 +78,7 @@
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"شديد الصرامة"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"اقتراحات الكلمات التالية"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"استخدام الكلمة السابقة في تقديم الاقتراحات"</string>
-    <string name="gesture_input" msgid="826951152254563827">"تمكين الكتابة بالإيماءة"</string>
+    <string name="gesture_input" msgid="826951152254563827">"تفعيل الكتابة بالإيماءة"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"إدخال كلمة من خلال التمرير على الأحرف"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"عرض مسار الإيماءة"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"معاينة نصوص متحركة ديناميكية"</string>
@@ -86,7 +86,7 @@
     <string name="gesture_space_aware" msgid="2078291600664682496">"عبارة الإيماء"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"إدخال مسافات خلال الإيماءات من خلال تمرير مفتاح المسافة"</string>
     <string name="voice_input" msgid="3583258583521397548">"مفتاح الإدخال الصوتي"</string>
-    <string name="voice_input_disabled_summary" msgid="6323489602945135165">"لم يتم تمكين أي أساليب إدخال صوتي. تحقق من إعدادات اللغات والإدخال."</string>
+    <string name="voice_input_disabled_summary" msgid="6323489602945135165">"لم يتم تفعيل أي أساليب إدخال صوتي. تحقق من إعدادات اللغات والإدخال."</string>
     <string name="configure_input_method" msgid="373356270290742459">"تهيئة طرق الإدخال"</string>
     <string name="language_selection_title" msgid="3666971864764478269">"اللغات"</string>
     <string name="help_and_feedback" msgid="5328219371839879161">"المساعدة والتعليقات"</string>
@@ -130,25 +130,25 @@
     <string name="save" msgid="7646738597196767214">"حفظ"</string>
     <string name="subtype_locale" msgid="8576443440738143764">"اللغة"</string>
     <string name="keyboard_layout_set" msgid="4309233698194565609">"التخطيط"</string>
-    <string name="custom_input_style_note_message" msgid="8826731320846363423">"يجب تمكين نمط الإدخال المخصص قبل استخدامه. هل تريد تمكينه الآن؟"</string>
-    <string name="enable" msgid="5031294444630523247">"تمكين"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"يجب تفعيل نمط الإدخال المخصص قبل استخدامه. هل تريد تفعيله الآن؟"</string>
+    <string name="enable" msgid="5031294444630523247">"تفعيل"</string>
     <string name="not_now" msgid="6172462888202790482">"ليس الآن"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"نمط الإدخال ذاته موجود من قبل: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"مدة اهتزاز الضغط على المفاتيح"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"مستوى صوت الضغط على المفاتيح"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"تأخير الضغط الطويل للمفاتيح"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"مهلة الضغط الطويل على المفاتيح"</string>
     <string name="prefs_enable_emoji_alt_physical_key" msgid="5963640002335470112">"الرموز التعبيرية للوحة مفاتيح فعلية"</string>
     <string name="prefs_enable_emoji_alt_physical_key_summary" msgid="5259484820941627827">"‏مفتاح Alt الفعلي يعرض لوحة الرموز التعبيرية"</string>
-    <string name="button_default" msgid="3988017840431881491">"الافتراضية"</string>
+    <string name="button_default" msgid="3988017840431881491">"التلقائية"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"أهلاً بك في <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"مع الكتابة بالإشارة"</string>
     <string name="setup_start_action" msgid="8936036460897347708">"بدء الاستخدام"</string>
     <string name="setup_next_action" msgid="371821437915144603">"الخطوة التالية"</string>
     <string name="setup_steps_title" msgid="6400373034871816182">"إعداد <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <string name="setup_step1_title" msgid="3147967630253462315">"تمكين <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"تفعيل <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_step1_instruction" msgid="4295448056733329661">"يُرجى تحديد \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" من خلال إعدادات اللغات والإدخال؛ وذلك للسماح بتشغيل هذا التطبيق على جهازك."</string>
-    <string name="setup_step1_finished_instruction" msgid="8701441895377434947">"تم تمكين <xliff:g id="APPLICATION_NAME">%s</xliff:g> من قبل في إعدادات اللغات والإدخال، وبالتالي هذه الخطوة مكتملة. انتقل إلى الخطوة التالية."</string>
-    <string name="setup_step1_action" msgid="4366513534999901728">"تمكين في الإعدادات"</string>
+    <string name="setup_step1_finished_instruction" msgid="8701441895377434947">"تم تفعيل <xliff:g id="APPLICATION_NAME">%s</xliff:g> من قبل في إعدادات اللغات والإدخال، وبالتالي هذه الخطوة مكتملة. انتقل إلى الخطوة التالية."</string>
+    <string name="setup_step1_action" msgid="4366513534999901728">"تفعيل في الإعدادات"</string>
     <string name="setup_step2_title" msgid="6860725447906690594">"التبديل إلى <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step2_instruction" msgid="9141481964870023336">"بعد ذلك، حدد \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" باعتباره أسلوب إدخال النص النشط."</string>
     <string name="setup_step2_action" msgid="1660330307159824337">"تبديل أساليب الإدخال"</string>
@@ -170,7 +170,7 @@
     <string name="dictionary_available" msgid="4728975345815214218">"القاموس متاح"</string>
     <string name="dictionary_downloading" msgid="2982650524622620983">"يتم حاليًا التنزيل"</string>
     <string name="dictionary_installed" msgid="8081558343559342962">"تم التثبيت"</string>
-    <string name="dictionary_disabled" msgid="8950383219564621762">"مثبت، معطل"</string>
+    <string name="dictionary_disabled" msgid="8950383219564621762">"مثبت، غير مفعّل"</string>
     <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"مشكلة في الاتصال بخدمة القاموس"</string>
     <string name="no_dictionaries_available" msgid="8039920716566132611">"لا تتوفر أي قواميس"</string>
     <string name="check_for_updates_now" msgid="8087688440916388581">"تحديث"</string>
@@ -204,7 +204,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"تعديل كلمة"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"تعديل"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"حذف"</string>
-    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"لا تتوفر أي كلمات في قاموس المستخدم، ولإضافة كلمة، انقر على زر الإضافة (+)."</string>
+    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"ليس هناك أي كلمات في قاموس المستخدم. لإضافة كلمة، انقر على زر الإضافة (+)."</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"لجميع اللغات"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"مزيد من اللغات..."</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"حذف"</string>
diff --git a/java/res/values-as/strings-action-keys.xml b/java/res/values-as/strings-action-keys.xml
new file mode 100644
index 0000000..af96ea8
--- /dev/null
+++ b/java/res/values-as/strings-action-keys.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="label_go_key" msgid="4033615332628671065">"যাওক"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"পৰৱৰ্তী"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"আগৰ"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"হ\'ল"</string>
+    <string name="label_send_key" msgid="482252074224462163">"পঠিয়াওক"</string>
+    <string name="label_search_key" msgid="7965186050435796642">"সন্ধান"</string>
+    <string name="label_pause_key" msgid="2225922926459730642">"পজ কৰক"</string>
+    <string name="label_wait_key" msgid="5891247853595466039">"ৰ\'ব"</string>
+</resources>
diff --git a/java/res/values-as/strings-appname.xml b/java/res/values-as/strings-appname.xml
new file mode 100644
index 0000000..8874600
--- /dev/null
+++ b/java/res/values-as/strings-appname.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_name" msgid="5940510615957428904">"Android কীব\'ৰ্ড (AOSP)"</string>
+    <string name="spell_checker_service_name" msgid="1254221805440242662">"Android বানান পৰীক্ষক (AOSP)"</string>
+    <string name="english_ime_settings" msgid="5760361067176802794">"Android কীব\'ৰ্ডৰ ছেটিংসমূহ (AOSP)"</string>
+    <string name="android_spell_checker_settings" msgid="6123949487832861885">"Android বানান পৰীক্ষকৰ ছেটিংসমূহ (AOSP)"</string>
+</resources>
diff --git a/java/res/values-as/strings-config-important-notice.xml b/java/res/values-as/strings-config-important-notice.xml
new file mode 100644
index 0000000..3af48f3
--- /dev/null
+++ b/java/res/values-as/strings-config-important-notice.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"পৰামৰ্শাৱলী উন্নত কৰিবলৈ যোগাযোগ পদ্ধতিসমূহৰ পৰা আৰু টাইপ কৰা ডেটাৰ পৰা শিকক"</string>
+</resources>
diff --git a/java/res/values-as/strings-emoji-descriptions.xml b/java/res/values-as/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..a844c46
--- /dev/null
+++ b/java/res/values-as/strings-emoji-descriptions.xml
@@ -0,0 +1,1756 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, 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.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"স্বত্বাধিকাৰৰ চিহ্ন"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"পঞ্জীকৃত চিহ্ন"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"দ্বৈত ভাৱবোধক চিহ্ন"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"ভাৱবোধক আৰু প্ৰশ্নবোধক চিহ্ন"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"ট্ৰেড মাৰ্কৰ চিহ্ন"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"তথ্যৰ উৎস"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"সোঁ আৰু বাওঁ উভয় দিশ নির্দেশ কৰা কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"ওপৰ তল উভয় দিশ নিদের্শ কৰা কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"উত্তৰ-পশ্চিমমুৱা কাঁড়"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"উত্তৰ-পূবমুৱা কাঁড়"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"দক্ষিণ-পূবমুৱা কাঁড়"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"দক্ষিণ-পশ্চিমমুৱা কাঁড়"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"হুক সহ বাওঁমুৱা কাঁড়"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"সোঁফালে নির্দেশ কৰা হুক থকা কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"হাতঘড়ী"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"বালি-ঘড়ী"</string>
+    <!-- no translation found for spoken_emoji_2328 (8004906090359197446) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_23CF (8619437871899719070) -->
+    <skip />
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"ক\'লা ৰঙৰ সোঁফালে নিৰ্দেশ কৰা দ্বৈত ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"ক\'লা ৰঙৰ বাওঁফালে নিৰ্দেশ কৰা দ্বৈত ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"ক\'লা ৰঙৰ ওপৰফালে নিৰ্দেশ কৰা দ্বৈত ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"ক\'লা ৰঙৰ তলফালে নিৰ্দেশ কৰা দ্বৈত ত্ৰিভুজ"</string>
+    <!-- no translation found for spoken_emoji_23ED (4064850193044573080) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_23EE (9014449600450857793) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_23EF (3823680845887006998) -->
+    <skip />
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"এলাৰ্ম ঘড়ী"</string>
+    <!-- no translation found for spoken_emoji_23F1 (2303619241672210658) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_23F2 (2178084138229786936) -->
+    <skip />
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"সৰি পৰি থকা বালিৰে বালি-ঘড়ী"</string>
+    <!-- no translation found for spoken_emoji_23F8 (1924914079210161141) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_23F9 (1268967989320035023) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_23FA (3359902126862990795) -->
+    <skip />
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"বৃত্তৰ ভিতৰত থকা লেটিন বৰফলা বৰ্ণ \'m\'"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"ক\'লা ৰঙৰ সৰু বৰ্গ"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"বগা ৰঙৰ সৰু বর্গ"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"ক\'লা ৰঙৰ সোঁফালে নিৰ্দেশ কৰা ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"ক\'লা ৰঙৰ বাওঁফালে নিৰ্দেশ কৰা ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"বগা ৰঙৰ মজলীয়া আকাৰৰ বর্গ"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"ক\'লা ৰঙৰ মজলীয়া আকাৰৰ বর্গ"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"বগা ৰঙৰ মজলীয়া আকাৰৰ সৰু বর্গ"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"ক\'লা ৰঙৰ মধ্যমীয়া সৰু বৰ্গ"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"ৰশ্মিসহ ক\'লা সূৰ্য"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"ডাৱৰ"</string>
+    <!-- no translation found for spoken_emoji_2602 (6293136501817877234) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2603 (7285313121103197207) -->
+    <skip />
+    <string name="spoken_emoji_2604" msgid="8632808648689048735">"ধূমকেতু"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"ক\'লা ৰঙৰ টেলিফ\'ন"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"শুদ্ধ চিনযুক্ত বেলট বাকচ"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"বৰষুণৰ টোপাল পৰা ছাতি"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"গৰম পানীয়"</string>
+    <!-- no translation found for spoken_emoji_2618 (5581533965699965354) -->
+    <skip />
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"ওপৰলৈ নির্দেশ কৰি থকা তর্জনী আঙুলিৰ চিহ্ন"</string>
+    <!-- no translation found for spoken_emoji_2620 (4434290857196023657) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2622 (2534880989000210921) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2623 (141484483765762677) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2626 (2857954123507187408) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_262A (6726891928565290372) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_262E (3189887039765290178) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_262F (7138150472623738307) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2638 (9073003565602256277) -->
+    <skip />
+    <string name="spoken_emoji_2639" msgid="6128305824180156835">"খঙাল মুখমণ্ডল"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"হাঁহি থকা শুভ্ৰ মুখ"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"মেষ ৰাশি"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"বৃষ ৰাশি"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"মিথুন ৰাশি"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"কৰ্কট ৰাশি"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"সিংহ ৰাশি"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"কন্যা ৰাশি"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"তুলা ৰাশি"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"বৃশ্চিক ৰাশি"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"ধনু ৰাশি"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"মকৰ ৰাশি"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"কুম্ভ ৰাশি"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"মীন ৰাশি"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"ক\'লা ইস্কাপন"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"ক\'লা চিৰিতন"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"ক\'লা ৰহিতন"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"ক\'লা ৰোহিতন"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"গৰম পানী উহ"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"ক\'লা ৰঙৰ নৱীকৰণযোগ্য সামগ্ৰীৰ চিহ্ন"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"হুইলচ্চেয়াৰৰ প্ৰতীক"</string>
+    <!-- no translation found for spoken_emoji_2692 (633276166375803852) -->
+    <skip />
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"লংগৰ"</string>
+    <!-- no translation found for spoken_emoji_2694 (4114117110598973648) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2696 (7920282042498350920) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2697 (7576307101162421601) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2699 (8525225054232323125) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_269B (9146644473418235977) -->
+    <skip />
+    <string name="spoken_emoji_269C" msgid="1883421369883009835">"ফ্লাৰ-দ্য-লি"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"সতৰ্কবাণীৰ চিন"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"উচ্চ ক্ষমতাসম্পন্ন বৈদ্যুতিক সামগ্ৰীৰ চিহ্ন"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"বগা ৰঙৰ মধ্যমীয়া বৃত্ত"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"মধ্যমীয়া ক\'লা বৃত্ত"</string>
+    <!-- no translation found for spoken_emoji_26B0 (5742048235215593821) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_26B1 (2096529437455909562) -->
+    <skip />
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"ফুটবল"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"বে\'ছবল"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"তুষাৰ অবিহনে তুষাৰ মানৱ"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"ডাৱৰৰ পিছফালে সূর্য থকা দৃশ্য"</string>
+    <!-- no translation found for spoken_emoji_26C8 (4641925705576445058) -->
+    <skip />
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"অ\'ফিউচাছ"</string>
+    <!-- no translation found for spoken_emoji_26CF (1048987245528185548) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_26D1 (5122253261153603676) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_26D3 (7567590167882104907) -->
+    <skip />
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"প্ৰৱেশ নিষেধ"</string>
+    <!-- no translation found for spoken_emoji_26E9 (5219739268764945756) -->
+    <skip />
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"গীৰ্জা"</string>
+    <!-- no translation found for spoken_emoji_26F0 (8690606275240650121) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_26F1 (7617840615623596077) -->
+    <skip />
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"পানীৰ ফোৱাৰা"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"গ\'ল্ফ খেলৰ গাঁতত পুতি ৰখা পতাকা"</string>
+    <!-- no translation found for spoken_emoji_26F4 (8296597141413923967) -->
+    <skip />
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"ডিঙা"</string>
+    <!-- no translation found for spoken_emoji_26F7 (5002838791562917075) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_26F8 (2326041972852924376) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_26F9 (1588803158145064802) -->
+    <skip />
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"তম্বু"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"তেলৰ পাম্প"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"ক\'লা কেঁচী"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"ডাঠ বগা ৰঙৰ শুদ্ধ চিন"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"এয়াৰপ্লেইন"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"খাম"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"উত্থিত মুষ্টি"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"হাত দাঙি সঁহাৰি জনোৱা"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"বিজয়ী হাত"</string>
+    <!-- no translation found for spoken_emoji_270D (8850355355131892496) -->
+    <skip />
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"পেন্সিল"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"ক\'লা ৰঙৰ নিব্"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"গাঢ় শুদ্ধ চিহ্ন"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"গাঢ় পুৰণ চিহ্ন"</string>
+    <!-- no translation found for spoken_emoji_271D (2367275551961395862) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_2721 (4150694777322944905) -->
+    <skip />
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"তিৰবিৰণি"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"আঠডাল দণ্ডৰে তাৰকা চিহ্ন"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"আঠ কোণীয়া ক\'লা তৰা"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"তুষাৰকণা"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"তিৰবিৰনি"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"কটা চিন"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"ঋণাত্মক বৰ্গাকৃতিৰ ক্ৰছ চিন"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"গাঢ় ক\'লা ৰঙৰ প্ৰশ্নবোধক চিহ্ন"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"গাঢ় বগা ৰঙৰ প্ৰশ্নবোধক চিহ্ন"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"বগা ভাৱবোধক চিনৰ অলংকাৰ"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"ডাঠ ভাৱবোধক চিনৰ প্ৰতীক"</string>
+    <!-- no translation found for spoken_emoji_2763 (3255858123691890971) -->
+    <skip />
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"গাঢ় ক\'লা ৰঙৰ হৃদয় আকৃতি"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"গাঢ় যোগ চিহ্ন"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"ডাঠ বিয়োগ চিহ্ন"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"ডাঠ হৰণ চিন"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"সোঁফালে নির্দেশ কৰা ক\'লা ৰঙৰ কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"ক\'লা ৰঙৰ পকোৱা চিন"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"দ্বৈত ক\'লা ৰঙৰ পকোৱা চিন"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"সোঁফাল নির্দেশ কৰা ঊর্ধ্বমুখী কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"সোঁফালে নির্দেশ কৰি পিছত বেঁকা হৈ তলফালে মুখ কৰা কাঁড়"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"বাওঁমুৱা ক\'লা কাঁড়"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"ঊর্ধ্বমুখী ক\'লা কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"নিম্নমুখী ক\'লা কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"ক\'লা ৰঙৰ ডাঙৰ বৰ্গ"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"বগা ৰঙৰ বিশাল বৰ্গ"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"বগা মধ্যমীয়া তৰা চিহ্ন"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"ডাঠ তৰপৰ ডাঙৰ বৃত্ত"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"ৰঙা ৰঙৰ ঢৌ খেলোৱা ডেশ্ব"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"গায়কে গাবলগীয়া অংশৰ আৰম্ভণি সূচোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"বৃত্তাকাৰ আইডিঅ\'গ্ৰাফৰ অভিনন্দন সূচক চিহ্ন"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"বৃত্তাকাৰ আইডিঅ\'গ্ৰাফৰ গোপন চিহ্ন"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"মাহজং টাইলৰ ৰঙা ড্ৰেগন"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"তাঁচ পাতৰ ক\'লা জ\'কৰ"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"তেজৰ গ্ৰুপ A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"তেজৰ গ্ৰুপ B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"তেজৰ গ্ৰুপ O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"পার্কিঙৰ ঠাই"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"তেজৰ প্ৰকাৰ AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"\'CL\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"\'কুল\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"বিনামূলীয়া লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ভিতৰত ID লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"\'নতুন\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"N G লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"অ\'কে লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"\'SOS\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"ভাববোধক চিনসহ \'আপ\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"\'vs\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"ইয়াত লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"সেৱা লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"মাচুলবিহীন সূচোৱা আইডিঅ\'গ্ৰাফযুক্ত বর্গ"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"সংৰক্ষিত আসন সূচোৱা আইডিঅ\'গ্ৰাফযুক্ত বর্গ"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"নিষেধ সূচোৱা আইডিঅ\'গ্ৰাফযুক্ত বর্গ"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"খালী ঠাই সূচোৱা আইডিঅ\'গ্ৰাফযুক্ত বর্গ"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"গ্ৰহণ কৰা সূচোৱা আইডিঅ\'গ্ৰাফযুক্ত বর্গ"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"ভৰ্তি বুজোৱা বর্গাকাৰ আইডিঅ\'গ্ৰাফ"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"পৰিশোধ হ\'ল বুজোৱা বর্গাকাৰ আইডিঅ\'গ্ৰাফ"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"মাহিলী বুজোৱা বর্গাকাৰ আইডিঅ\'গ্ৰাফ"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"আইডিঅ\'গ্ৰাফ এপ্লিকেশ্বন লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"ৰেহাই বুজোৱা বর্গাকাৰ আইডিঅ\'গ্ৰাফ"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"ব্যৱসায়ত আছে বুজোৱা বর্গাকাৰ আইডিঅ\'গ্ৰাফ"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"বৃত্তৰ ভিতৰত থকা সুবিধা সূচোৱা আইডিঅ\'গ্ৰাফ"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"গ্ৰহণ কৰা সূচোৱা আইডিঅ\'গ্ৰাফযুক্ত বর্গ"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"ঘূৰ্ণীবায়ু"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"কুঁৱলীময়"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"জপাই থোৱা ছাতি"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"আকাশত তৰা থকা নিশাৰ দৃশ্য"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"পর্বতৰ শিখৰত সূর্য্য উদয় হোৱা দৃশ্য"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"সূৰ্যোদয়"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"গধূলি সময়ৰ চহৰৰ দৃশ্য"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"অট্টালিকাসমূহৰ পিছফালে বেলি মাৰ যোৱাৰ দৃশ্য"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"ৰামধেনু"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"নিশাৰ দলঙৰ দৃশ্য"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"পানীৰ ঢৌ"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"আগ্নেয়গিৰি"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"হাতীপটি"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"ইউৰোপ আৰু আফ্ৰিকাৰ মেপ থকা গোলক"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"উত্তৰ আৰু দক্ষিণ আমেৰিকাৰ মেপ থকা গোলক"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"এছিয়া আৰু অষ্ট্ৰেলিয়াৰ মানচিত্ৰ থকা গোলক"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"অক্ষৰেখা আৰু দ্ৰাঘিমাৰেখাৰ সৈতে গোলক"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"ন জোনৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"বৰ্ধমান অৰ্ধচন্দ্ৰৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"প্ৰথম এক চতুৰ্থাংশ বিশিষ্ট চন্দ্ৰৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"বৰ্ধমান স্ফীত চন্দ্ৰৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"পূৰ্ণ চন্দ্ৰৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"কলাক্ষয় জোনৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"অন্তিম এক চতুৰ্থাংশ বিশিষ্ট চন্দ্ৰৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"কমি অহা অৰ্ধচন্দ্ৰৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"অৰ্ধচন্দ্ৰ"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"মুখমণ্ডলৰ সৈতে ন জোন"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"মুখৰ সৈতে প্ৰথম এক চতুৰ্থাংশ জোন"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"মুখৰ সৈতে অন্তিম এক চতুৰ্থাংশ জোন"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"মুখমণ্ডল থকা পূর্ণ চন্দ্ৰৰ দৃশ্য"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"মুখৰ সৈতে সূৰ্য"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"জিকমিক তৰাৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"উল্কা"</string>
+    <!-- no translation found for spoken_emoji_1F321 (581288529301493075) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F324 (2930891297836314896) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F325 (5282092301688177705) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F326 (165046788529872891) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F327 (4384791469343260600) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F328 (1991614733939171872) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F329 (6016235695016510649) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F32A (5889026615334911758) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F32B (3223192457131343118) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F32C (3479270390051226956) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F32D (8869598854109228966) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F32E (6077879860650582531) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F32F (6730078269862769637) -->
+    <skip />
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"কাঠবাদাম"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"অংকুৰ"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"চিৰসেউজ গছ"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"পৰ্ণপাতী গছ"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"পাম গছ"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"কেকটাছ গছ"</string>
+    <!-- no translation found for spoken_emoji_1F336 (5912660172314184275) -->
+    <skip />
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"টিউলিপ ফুল"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"প্ৰস্ফুতিত চেৰি ফুল"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"গোলাপ ফুল"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"জবা ফুল"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"সূৰ্যমুখী ফুল"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"প্ৰস্ফুতিত"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"গোমধান"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"ধানৰ থোক"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"বনৌষধি"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"চাৰিটা পাতযুক্ত উদ্ভিদ"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"মেপলৰ পাত"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"সৰা পাত"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"বতাহত উৰি ফুৰা পাত"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"কাঠফুলা"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"বিলাহী"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"বেঙেনা"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"আঙুৰ"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"তৰমুজ"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"তৰমুজ"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"টেঞ্জাৰিন"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"নেমু"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"কল"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"আনাৰস"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"ৰঙা আপেল"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"সেউজীয়া আপেল"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"নাচপতি"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"নৰা বগৰী"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"চেৰি"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"ষ্ট্ৰ\'বেৰী"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"হেমবাৰ্গাৰ"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"পিৎছাৰ টুকুৰা"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"হাঁড় থকা মঙহ"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"কুকুৰাৰ ঠেং"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"চাউলৰ পৰা তৈয়াৰী পিঠা"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"ৰাইচ বল"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"ভাত"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"তৰকাৰী আৰু ভাত"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"তপত আহাৰৰ সৈতে বাটি"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"স্পেঘেটী"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ব্ৰেড"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"ফ্ৰেন্স ফ্ৰাই"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"পোৰা মিঠা আলু"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"ডাঙগ\' মিঠাই"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"অ\'ডেন"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"ছুশ্বি"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"ভজা মিছামাছ"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"চাকনৈয়াৰ নক্সাসহ মাছেৰে তৈয়াৰী কেইক"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"কোমল আইচক্ৰীম"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"বৰফ গুড়ি"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"আইচক্ৰীম"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"ড\'নাট"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"কুকি"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"চকলেট"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"কেণ্ডী"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"ল\'লিপ\'প"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"কাষ্টাৰ্ড"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"মৌ-জোল ৰখা পাত্ৰ"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"শ্বৰ্টকেইক"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"বেণ্টো বক্স"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"খাদ্যৰ পাত্ৰ"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"ৰন্ধন"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"কাঁটাচামুচ আৰু ছুৰী কটাৰী"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"হেণ্ডেলবিহীন চাহৰ কাপ"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"ছাকেৰ বটল আৰু কাপ"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"সুৰাৰ গিলাছ"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"ক\'কটেইল গিলাছ"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"গ্ৰীষ্মমণ্ডলীয় অঞ্চলৰ পানীয়"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"বিয়েৰৰ মগ"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"যুঁজা লগোৱা দুটা বিয়েৰৰ মগ"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"কেঁচুৱাক দুগ্ধপান কৰোৱা গিলাছ"</string>
+    <!-- no translation found for spoken_emoji_1F37D (8887228479219886429) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F37E (37593222775513943) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F37F (4196704853559909123) -->
+    <skip />
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"ফিটা"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"ৰঙীণ কাগজেৰে বন্ধা উপহাৰৰ বাকচ"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"জন্মদিনৰ কেইক"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"জেক-অ\'-লেনটাৰ্ণ"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"খ্ৰীষ্টমাছ ট্ৰী"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"ছাণ্টাক্লজ"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"আতচ-বাজী"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"ফিৰফিৰি"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"বেলুন"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"পাৰ্টী প\'পাৰ"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"ক\'নফেট্টি বল"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"টানাবাটা গছ"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"পূৰণ চিনৰ আকৃতিত ৰখা দুখন পতাকা"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"পাইন গছৰ সজ্জা"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"জাপানী পুতলা"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"কাৰ্প ষ্ট্ৰীমাৰ"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"ৱিণ্ড চ্চাইম"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"জোন চোৱা পর্ব"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"স্কুলীয়া বেগ"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"স্নাতক ডিগ্ৰী লাভ কৰোঁতে পিন্ধা টুপি"</string>
+    <!-- no translation found for spoken_emoji_1F396 (8356140738000265647) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F397 (5249863289838097468) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F399 (6087019010423147017) -->
+    <skip />
+    <string name="spoken_emoji_1F39A" msgid="1627914548345466924">"লেভেল শ্লাইডাৰ"</string>
+    <!-- no translation found for spoken_emoji_1F39B (648039433701743585) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F39E (2918731924907952534) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F39F (2427606024950432412) -->
+    <skip />
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"পুতলা ঘোঁৰা"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"ফেৰিছ চকৰী"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"ৰ\'লাৰ ক\'ষ্টাৰ"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"বৰশী ডাঁৰিকী আৰু মাছ"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"মাইক্ৰ\'ফ\'ন"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"বোলছবি নির্মাণৰ কেমেৰা"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"বোলছবি"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"হেডফ\'ন"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"চিত্ৰশিল্পীৰ পেলেট"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"ওখ টুপি"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"চাৰ্কাছৰ তম্বু"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"টিকেট"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"ক্লেপাৰ ব\'ৰ্ড"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"পৰিৱেশ্য কলা"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"ভিডিঅ\' গেইম"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"পোনপটীয়াকৈ লক্ষ্যভেদ কৰা"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"শ্ল’ট মেচিন"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"বিলিয়াৰ্ড"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"লুডু খেলৰ গুটি"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"ব\'লিং খেল"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"ফুলৰ ছবি থকা তাচপাত"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"সাংগীতিক স্বৰ"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"একাধিক সাংগীতিক স্বৰ"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"ছেক্স\'ফ\'ন"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"গিটাৰ"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"সাংগীতিক কীব\'ৰ্ড"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"শিঙা"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"বেহেলা"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"গানৰ কলি লিখি থোৱা পত্ৰ"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"দৌৰোতে পিন্ধা ফিটা লগা চোলা"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"টেনিছ ৰেকেট আৰু বল"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"স্কি আৰু স্কি খেলত পিন্ধা জোতা"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"বাস্কেটবল আৰু হুপ"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"ক\'লা-বগা বৰ্গাকৃতিৰ ঘৰযুক্ত পতাকা"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"স্ন\'ব\'ৰ্ডাৰ"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"দৌৰবিদ"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"ছাৰ্ফ কৰোঁতা"</string>
+    <!-- no translation found for spoken_emoji_1F3C5 (3256434181486954695) -->
+    <skip />
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ট্ৰ\'ফী"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"ঘোঁৰাদৌৰ"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"আমেৰিকান ফুটবল"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"ৰাগবী ফুটবল"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"সাঁতোৰবিদ"</string>
+    <!-- no translation found for spoken_emoji_1F3CB (6201404884476413631) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3CC (5773930948380166403) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3CD (3174865701360723287) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3CE (298990178863007728) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3CF (220014996836173720) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D0 (1515966148588308407) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D1 (9065400886436849028) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D2 (9113415091165206322) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D3 (5392602379011857837) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D4 (5682806162641888464) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D5 (485622019934191893) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D6 (8056487018845189239) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D7 (9200931466909972688) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D8 (4060224387880105443) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3D9 (5239036983837296458) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3DA (4479002058414881869) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3DB (5481092245291634716) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3DC (7540751465637885253) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3DD (2957722522033693226) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3DE (8767730963119889199) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3DF (360348087882746758) -->
+    <skip />
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"নিৰ্মাণৰত ঘৰ"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"বাগিছাৰ সৈতে ঘৰ"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"কাৰ্যালয়ৰ ভৱন"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"জাপানী ডাকঘৰ"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"ইউৰোপীয়ান ডাকঘৰ"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"চিকিৎসালয়"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"বেংক"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"অট\'মেটেড টেলাৰ মেচিন"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"হোটেল"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"ল\'ভ হোটেল"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"ঘৰত দৈনন্দিন ব্যৱহৃত সামগ্ৰীসমূহৰ দোকান"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"বিদ্যালয়"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"ডিপার্টমেণ্টেল ষ্ট\'ৰ"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"কাৰখানা"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"ইজাকায়া লেম"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"জাপানী দুৰ্গ"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"ইউৰোপীয় দুৰ্গ"</string>
+    <!-- no translation found for spoken_emoji_1F3F3 (6471977885401554862) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3F4 (6634164537580574234) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3F5 (5247950040998935573) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3F7 (5140855387008703511) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3F8 (7061216387824058281) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3F9 (1287386031701875351) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3FA (972388608151034163) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3FB (2482905976407635663) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3FC (2438230702000819552) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3FD (8205610118230779658) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3FE (2707903021796601195) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F3FF (12056714027518795) -->
+    <skip />
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"এন্দুৰ"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"নিগনি"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"ষাঁড়গৰু"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"ম\'হ"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"গাই গৰু"</string>
+    <!-- no translation found for spoken_emoji_1F405 (4304847753343143926) -->
+    <skip />
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"নাহফুটুকী বাঘ"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"শহা"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"মেকুৰী"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"ড্ৰেগন"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"ঘঁৰিয়াল"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"তিমি"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"শামুক"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"সাপ"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"ঘোঁৰা"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"ৰামছাগলী"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"ছাগলী"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"ভেড়া"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"বান্দৰ"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"মতা কুকুৰা"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"কুকুৰাৰ পোৱালী"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"কুকুৰ"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"গাহৰি"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"বন গাহৰি"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"হাতী"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"অক্টোপাছ"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"শামুকৰ খোলা"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"পোক"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"পৰুৱা"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"মৌ-মাখি"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"সোণপৰুৱা"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"মাছ"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"গ্ৰীষ্মমণ্ডলীয় অঞ্চলৰ মাছ"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"ব্ল\'ফিশ্ব"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"কাছ"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"কণী ফুটি ওলোৱা কুকুৰাৰ পোৱালি"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"কুকুৰা পোৱালী"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"সন্মুখলৈ চাই থকা কুকুৰা পোৱালি"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"চৰাই"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"পেংগুইন"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"কোৱালা"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"পোডল"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"এটা কুঁজৰ উট"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"দুটা কুঁজ থকা উট"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"ড\'লফিন"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"নিগনিৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"গৰুৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"বাঘৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"শহাৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"মেকুৰীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"ড্ৰেগনৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"স্পাউটিং তিমি"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"ঘোঁৰাৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"বান্দৰৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"কুকুৰৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"গাহৰিৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"ভেকুলীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"হেমষ্টাৰৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"কুকুৰনেচীয়া বাঘৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"ভালুকৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"পাণ্ডাৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"গাহৰিৰ নাক"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"হাতোৰাৰ ছাপ"</string>
+    <!-- no translation found for spoken_emoji_1F43F (84025195766364970) -->
+    <skip />
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"চকু"</string>
+    <!-- no translation found for spoken_emoji_1F441 (5716781405495001412) -->
+    <skip />
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"কাণ"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"নাক"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"মুখ"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"জিভা"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"বগা পৃষ্ঠপটত ঊৰ্ধ্বমুখী তর্জনী আঙুলিৰ সৈতে হাতৰ পিছফাল"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"তলফালে নিৰ্দেশ কৰা তৰ্জনী আঙুলি"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"বগা পৃষ্ঠপটত বাওঁফালে নির্দেশ কৰা তর্জনী আঙুলিৰ সৈতে হাতৰ পিছফাল"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"সোঁফালে নিৰ্দেশ কৰা তৰ্জনী আঙুলি"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"হাতৰ মুঠিৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"হাত-বাউলি দি থকা ভংগী"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"সকলো ঠিক আছে বুজোৱা হাতৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"উৎসাহব্যঞ্জক ভংগি"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"বুঢ়া আঙুলি তললৈ নির্দেশ কৰি অসন্মতি সূচোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"হাত-চাপৰি বজোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"খোলা মুঠি বুজোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"ৰাজমুকুট"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"মহিলাসকলে পিন্ধা টুপী"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"চশমা"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"নে\'ক-টাই"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"টি-শ্বাৰ্ট"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"জিনছ্"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"পোছাক"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"কিম\'ন\'"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"বিকিনি"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"মহিলাৰ পোছাক"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"পাৰ্চ"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"হেণ্ডবেগ"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"সৰু বেগ"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"পুৰুষৰ জোতা"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"ক্ৰীড়াবিদে পিন্ধা জোতা"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ওখ খুৰাযুক্ত জোতা"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"মহিলাৰ ছেণ্ডেল"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"মহিলাৰ বুট জোতা"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"পদচিহ্ন"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"আবক্ষ প্ৰতিমাৰ ছাঁয়ামূৰ্তি"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"দুজন ব্যক্তিৰ আবক্ষমূৰ্তি"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"ল\'ৰা"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"ছোৱালী"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"পুৰুষ"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"মহিলা"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"পৰিয়াল"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"হাতে হাত ধৰা পুৰুষ-মহিলা"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"দুজন মানুহে হাতে-হাত ধৰি থকা ছবি"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"দুগৰাকী মহিলাই হাতে হাত ধৰি থকা ভংগী"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"আৰক্ষী বিষয়া"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"পুতলা শহাপহুৰ কাণ পিন্ধা মহিলা"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"ওৰণি লোৱা কইনা"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"সোণালী ৰঙৰ চুলিৰ ব্যক্তি"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"চীনা টুপী পৰিহিত মানুহ"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"পাগুৰি পৰিহিত মানুহ"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"বয়সীয়াল মানুহ"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"বয়সস্থ মহিলা"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"কেঁচুৱা"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"নিৰ্মাণ কার্যত জড়িত শ্ৰমিক"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"ৰাজকুমাৰী"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"জাপানী দানৱ"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"জাপানী গ\'বলিন"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"ভূত"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"শিশু দেৱদূত"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"বহিৰ্জাগতিক প্ৰাণী"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"বহিৰ্গ্ৰহৰ দানৱ"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"দুষ্ট ভূত পোৱালী"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"লাওখোলা"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"তথ্য যোগান ধৰা ডেস্কত থকা লোক"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"ৰখীয়া"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"নৰ্তকী"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"লিপষ্টিক"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"নেইল প\'লিশ্ব"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"মুখমণ্ডল মালিছ কৰা"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"চুলি কটোৱা"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"নাপিতৰ খুঁটি"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"ছিৰিঞ্জ"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"পিল"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"চুম্বনৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"প্ৰেমপত্ৰ"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"আঙঠি"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"ৰত্ন পাথৰ"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"চুম্বন"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"ফুলৰ থোপা"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"হৃদয় চিহ্নৰ সৈতে পুৰুষ আৰু মহিলা"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"বিবাহ"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"স্পন্দিত হৃদয়"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"ভঙা হৃদয়"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"দুখন হৃদয়"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"চিকমিকাই থকা হৃদয়"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"বৰ্ধমান হৃদয়"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"হৃদয় আৰু কাঁড়"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"নীলা ৰঙৰ হৃদয়"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"সেউজীয়া ৰঙৰ হৃদয়"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"হালধীয়া ৰঙৰ হৃদয়"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"বেঙুনীয়া ৰঙৰ হৃদয়ৰ ছবি"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"ফিটাৰ সৈতে হৃদয়"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"আৱৰ্তন কৰি থকা হৃদয়"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"হৃদয় প্ৰতীকৰ সৈতে সজোৱা কাৰ্য"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"ভিতৰত এটা বিন্দু থকা হীৰাৰ আকৃতি"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"বৈদ্যুতিক বাতি"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"খঙৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"বোমা"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"নিদ্ৰাৰত অৱস্থাৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"সংঘৰ্ষৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"ঘাম ওলোৱা বুজোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"টোপাল"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"প্ৰচণ্ড বেগেৰে গতি কৰাৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"এদ\'ম বিষ্ঠা"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"ফুলোৱা বাইচেপ"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"মূৰ ঘূৰোৱাৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"সংলাপ বুজোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"চিন্তা-ভাবনাৰ বেলুন"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"বগা ফুল"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"এশ পইণ্ট বুজোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"মানি বেগ"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"মুদ্ৰাৰ বিনিময়"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"ডাঠকৈ অংকিত ড\'লাৰৰ চিন"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"ক্ৰেডিট কাৰ্ড"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"য়েন চিনযুক্ত বেংকনোটৰ ছবি"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"ডলাৰ চিহ্ন থকা বেংক ন\'ট বুজোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"ইউৰ\' চিনযুক্ত বেংকনোটৰ ছবি"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"পাউণ্ড চিনযুক্ত বেংকনোটৰ ছবি"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"পাখী লগা পইচা"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"ঊৰ্ধ্বমুখী প্ৰৱণতাৰ সৈতে চ্চাৰ্ট আৰু য়েনৰ চিন"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"আসন"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"ব্যক্তিগত কম্পিউটাৰ"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"ব্ৰিফকেছ"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"সৰু ডিস্ক"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"ফ্ল\'পী ডিস্ক"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"অপ্টিকেল ডিস্ক"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"ডি. ভি. ডি."</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"ফাইলৰ ফ\'ল্ডাৰ"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"খোলা ফাইলৰ ফ\'ল্ডাৰ"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"চুক মেৰখাই থকা পৃষ্ঠা"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"সোঁফালটো মুখৰফালে পাক খাই থকা পৃষ্ঠা"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"কেলেণ্ডাৰ"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"বেৰত ওলমাই থোৱা কেলেণ্ডাৰ"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"কাৰ্ড ইণ্ডেক্স"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"ঊৰ্ধ্বমুখী প্ৰৱণতাৰ সৈতে চ্চাৰ্ট"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"অধোগামী প্ৰৱণতাৰ সৈতে চ্চাৰ্ট"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"দণ্ড চিত্ৰ"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"ক্লিপব\'ৰ্ড"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"পুশ্বপিন"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"ওপৰৰ অংশ গোলাকাৰ আকৃতিৰ হেঁচি দিলে সোমোৱা গজাল"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"পেপাৰক্লিপ"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"পোন ৰুলাৰ"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"ত্ৰিকোণাকাৰ ৰুলাৰ"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"বুকমার্কৰ টেব"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"লেজাৰ"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"টোকাবহী"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"সুন্দৰকৈ সজোৱা ক\'ভাৰৰ টোকাবহী"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"বন্ধ কিতাপ"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"খোলা কিতাপ"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"সেউজীয়া ৰঙৰ কিতাপ"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"নীলা ৰঙৰ কিতাপ"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"কমলা ৰঙৰ কিতাপ"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"কিতাপ"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"নাম লিখা বেজ"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"স্ক্ৰ\'ল"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"মেম\'"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"টেলিফ\'ন ৰিচিভাৰ"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"পেজাৰ"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"ফেক্স মেচিন"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"উপগ্ৰহৰ পৰা তথ্য আহৰণ কৰা এণ্টেনা"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"ৰাইজক উদ্দেশ্য কৰি ব্যৱহৃত লাউডস্পীকাৰ"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"হৰ্ষধ্বনিৰ কাৰণে মেগাফ\'ন"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"আউটবক্স ট্ৰে\'"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"ইনবক্স ট্ৰে\'"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"টোপোলা"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"ই-মেইলৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"অন্তৰ্গামী লেফাফা"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"ওপৰত অধোগামী কাঁড় চিহ্ন থকা খাম"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"নিম্নগামী পতাকাযুক্ত বন্ধ চিঠিৰ বাকচ"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"উত্তোলিত পতাকাযুক্ত বন্ধ চিঠিৰ বাকচ"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"উত্তোলিত পতাকাযুক্ত খোলা চিঠিৰ বাকচ"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"নিম্নগামী পতাকাযুক্ত খোলা চিঠিৰ বাকচ"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"প\'ষ্টবাকচ"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"ডাক পেঁপা"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"বাতৰিকাকত"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"ম\'বাইল ফ\'ন"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"বাওঁফালে স্থিত সোঁফালে নিদের্শ কৰা কাঁড়ৰ চিহ্নসহ ম\'বাইল ফ\'ন"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"কম্পন ম\'ড"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"অফ হৈ থকা ম\'বাইল ফ\'ন"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"ম\'বাইল ফ\'নৰ ব্যৱহাৰ নিষিদ্ধ"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"ছিংগনেলৰ দণ্ডৰ সৈতে এণ্টেনা"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"কেমেৰা"</string>
+    <!-- no translation found for spoken_emoji_1F4F8 (6874216216317936645) -->
+    <skip />
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"ভিডিঅ\' কেমেৰা"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"দূৰদৰ্শন"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"ৰেডিঅ’"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"ভিডিঅ\' কেছেট"</string>
+    <!-- no translation found for spoken_emoji_1F4FD (992184090920043081) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F4FF (6566102135671766103) -->
+    <skip />
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"পাকখোৱা সোঁফালে নির্দেশ কৰা দুডাল কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"ঘড়ীৰ কাটাৰ দিশত থকা সোঁফালে আৰু বাওঁফালে নির্দেশ কৰা দুডাল পৃথক কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"ঘড়ীৰ কাটাৰ দিশত সোঁফালে আৰু বাওঁফালে বৃত্তাকৃতিৰ আৱৰণেৰে খোলা মুখৰ চক্ৰাকাৰ কাঁড়"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"ঘড়ীৰ কাটাৰ দিশত নিম্নমুখী আৰু ঊৰ্ধ্বমুখী চক্ৰাকাৰ কাঁড়ৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"ঘড়ীৰ কাটাৰ বিপৰীত দিশত তলমুৱা আৰু ওপৰমুৱা খোলা মুখৰ চক্ৰাকাৰ কাঁড়"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"কম উজ্জ্বলতাৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"অত্যন্ত উজ্জ্বল সূচোৱা প্ৰতীক"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"শব্দ নিৰৱ কৰা চিহ্ন থকা স্পীকাৰ"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"স্পীকাৰ"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"এটা ধ্বনি তৰংগৰ সৈতে স্পীকাৰ"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"তিনিডাল শব্দ ধ্বনিৰ চিহ্ন থকা স্পীকাৰ"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"বেটাৰি"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"বৈদ্যুতিক প্লাগ"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"বাওঁফালে নিৰ্দেশ কৰা আতচী কাচ"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"সোঁফালে নিৰ্দেশ কৰা আতচী কাচ"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"তলা আৰু চিঁয়াহী কলম"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"চাবিৰ সৈতে বন্ধ তলা"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"চাবি"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"তলা"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"খোল খাই থকা তলা"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"ঘণ্টা"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"কোনোধৰণৰ শব্দ কৰা নিষেধ"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"বুকমার্ক"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"শিকলিৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"ৰেডিঅ\' বুটাম"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"ওপৰত বাওঁফালে নিদের্শ কৰা কাঁড়ৰ চিহ্ন থকা \'বেক\' লিখা বর্গ"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"বাওঁফালে নির্দেশ কৰা কাঁড়ৰ চিহ্নৰ তলত \'End\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"সোঁ-বাওঁ দুয়োফালে নির্দেশ কৰা কাঁড়ৰ চিহ্নৰ তলত \'On\' লিখা বর্গ"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"সোঁফালে নির্দেশ কৰা কাঁড়ৰ চিহ্নৰ তলত \'Soon\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"ওপৰলৈ নির্দেশ কৰা কাঁড়ৰ চিহ্নৰ তলত \'Top\' লিখা থকা বর্গ"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"ওঠৰ বছৰৰ তলৰ লোকৰ প্ৰৱেশ নিষেধ সূচোৱা প্ৰতীক"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"কীকেপ টেন"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"লেটিন বৰফলা আখৰৰ বাবে ইনপুট চিহ্ন"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"লেটিন সৰুফলাৰ আখৰৰ বাবে ইনপুট চিহ্ন"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"সংখ্যাৰ ইনপুট সূচোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"প্ৰতীকসমূহৰ বাবে ইনপুট চিহ্ন"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"লেটিন ভাষাৰ বর্ণৰ ইনপুট সূচোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"জুই"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"বৈদ্যুতিক টৰ্চ লাইট"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"ৰেঞ্চ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"হাতুৰি"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"নট আৰু বল্টু"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"হ\'চ\'"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"পিষ্টল"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"অণুবীক্ষণ যন্ত্ৰ"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"দূৰবীক্ষণ যন্ত্ৰ"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"স্ফটিকৰ বল"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"ছয়টা চুক আৰু মাজত বিন্দু থকা তৰাচিহ্ন"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"শিকাৰু বুজোৱা জাপানী চিহ্ন"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"ত্ৰিশূলৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"ক\'লা ৰঙৰ বর্গৰ বুটাম"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"বৰ্গাকৃতিৰ বগা বুটাম"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"ডাঙৰ ৰঙা বৃত্ত"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"ডাঙৰ নীলা চক্ৰ"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"কমলা ৰঙৰ ডাঙৰ হীৰা"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"ডাঙৰ নীলা হীৰা"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"সৰু কমলাৰঙী হীৰা"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"সৰু নীলা হীৰা"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"ঊর্ধ্বমুখী ৰঙা ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"তলমুৱা ৰঙা ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"ওপৰমুৱা সৰু ৰঙা ত্ৰিভুজ"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"তলমুৱা সৰু ৰঙা ত্ৰিভুজ"</string>
+    <!-- no translation found for spoken_emoji_1F549 (4488493812823912137) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F54A (6329445861053369293) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F54B (1632185618342057203) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F54C (2444758230008443504) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F54D (8871149889908118955) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F54E (2602602033588655819) -->
+    <skip />
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"ঘড়ীত এটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"ঘড়ীত দুটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"ঘড়ীত তিনিটা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"ঘড়ীত চাৰিটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"ঘড়ীত পাঁচটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"ঘড়ীত ছয়টা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"ঘড়ীত সাতটা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"ঘড়ীত আঠটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"ঘড়ীত নটা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"ঘড়ীত দহটা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"ঘড়ীত এঘাৰটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"ঘড়ীত বাৰটা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"ঘড়ীত ডেৰটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"ঘড়ীত আঢ়ৈটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"ঘড়ীত চাৰে তিনিটা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"ঘড়ীত চাৰে চাৰিটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"ঘড়ীত চাৰে পাচঁটা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"ঘড়ীত চাৰে ছয়টা বজা দৃশ্য"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"ঘড়ীত সাত বাজি ত্ৰিশ মিনিট দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"ঘড়ীত চাৰে আঠটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"ঘড়ীত চাৰে নটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"ঘড়ীত চাৰে দহটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"ঘড়ীত চাৰে এঘাৰটা বজা দেখুৱাইছে"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"ঘড়ীত চাৰে বাৰটা বজা দেখুৱাইছে"</string>
+    <!-- no translation found for spoken_emoji_1F56F (2425394083258103670) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F570 (2611444774363424788) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F573 (1039753319384915644) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F574 (1370973157808858727) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F575 (3393287560881832534) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F576 (6510040886626337527) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F577 (1745605672232546738) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F578 (5843261607004481128) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F579 (356353388497335187) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F587 (1529578701645787678) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F58A (5535685878758638056) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F58B (8383182102775796958) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F58C (3645908884921776727) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F58D (8498569396909368249) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F590 (1764003432828568259) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F595 (2331418391124951688) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F596 (1326418921526428839) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5A5 (5652785146334053695) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5A8 (1431495880490623659) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5B1 (5175363198176970281) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5B2 (638466571223781802) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5BC (2406817930103032256) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5C2 (5722791826015378721) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5C3 (2361411623100608566) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5C4 (5699005642361736394) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5D1 (8837990226577655561) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5D2 (875563245704330618) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5D3 (5759637997516385074) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5DC (2134509111665528807) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5DD (2537536524658220506) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5DE (369717954301912562) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5E1 (4756313645316161687) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5E3 (725415936980269374) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5EF (6775383222346053007) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5F3 (5365297662012404100) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F5FA (4806783543043181633) -->
+    <skip />
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"মাউণ্ট ফুজি"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"ট\'কিঅ\' টাৱাৰ"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"ষ্টেচু অৱ লিবাৰ্টী"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"জাপানৰ মেপ"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"ম\'য়াই মূর্তি"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"হাঁহিমুখীয়া চেহেৰা"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"হাঁহি থকা চকুৰে হাঁহিমুখীয়া চেহেৰা"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"আনন্দৰ চকুলোৰ সৈতে মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"মেলা মুখেৰে হাঁহি থকা চেহেৰা"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"মুখ মেলি হাঁহি থকা মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"খোলা মুখ আৰু শীতল ঘামেৰে হাঁহি থকা মুখ"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"মেলা মুখেৰে কিন্তু জোৰকৈ চকু মুদি হাঁহি থকা চেহেৰা"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"মৰলৰ সৈতে হাঁহিমুখীয়া ভংগী"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"শিঙৰ সৈতে হাঁহিমুখীয়া মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"চকু টিপিয়াই থকা মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"চকুৰে প্ৰকাশ পোৱা হাঁহিমুখীয়া মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"সুস্বাদু খাদ্যৰ আমেজ লোৱা চেহেৰা"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"স্বস্তি অনুভৱ কৰা মুখ"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"হৃদয় আকৃতিৰ চকুসহ হাঁহি থকা মুখ"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"ছানগ্লাছ পৰিহিত হাঁহি থকা মুখ"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"বেঁকা হাঁহি মৰা চেহেৰা"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"কোনো ভংগী প্ৰকাশ নকৰা মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"অনুভূতিহীন মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"বিৰক্ত মুখ"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"ঘাম নির্গত হোৱা মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"চিন্তিত মুখ"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"বিভ্ৰান্ত চেহেৰা"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"বিবুদ্ধিত পৰা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"চুমা খোৱা মুখ"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"চুমা যঁচা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"চকুৰে হাঁহি প্ৰকাশ পোৱা আৰু চুমা যঁচা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"চকু মুদি চুমা যঁচা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"বাহিৰলৈ জিভা উলিয়াই থকা মুখ"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"চকু টিপিয়াই জিভা উলিয়াই থকা মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"চকু মুদি জিভা উলিয়াই থকা ধেমেলীয়া ভংগী"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"নিৰাশ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"চিন্তিত চেহেৰা"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"খঙাল মুখ"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"খঙাল মুখ"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"কন্দনৰত মুখ"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"অধ্যৱসায়ী চেহেৰা"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"বিজয়ৰ আনন্দত আত্মহাৰা চেহেৰা"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"হতাশ কিন্তু স্বস্তিৰ মুখ"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"মুখ মেলি থকা ভ্ৰূ কুঞ্চিত মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"ক্ষোভ প্ৰকাশ কৰা ভংগীৰে মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"ভীতিগ্ৰস্ত চেহেৰা"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"ক্লান্ত চেহেৰা"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"টোপনি ধৰি থকা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"ক্লান্ত চেহেৰা"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"মুখ বিকটাই থকা"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"উচ্চস্বৰে কন্দনৰত চেহেৰা"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"মুখ মেলি থকা চেহেৰা"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"মৌন মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"মেলা মুখ আৰু শীতল ঘামৰে ঘমাৰ্ত চেহেৰা"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"শংকিত মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"বিস্মিত চেহেৰা"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"ৰঙাপৰা মুখ"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"নিদ্ৰালু মুখ"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"মূৰ ঘূৰণি হোৱা মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"মুখবিহীন চেহেৰা"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"চিকিৎসা কাৰ্যত ব্যৱহাৰ কৰা মুখা"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"হাঁহি থকা চকুৰে হাঁহিমুখীয়া মেকুৰীৰ চেহেৰা"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"আনন্দৰ চকুলোৰ সৈতে মেকুৰীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"মেলা মুখেৰে হাঁহি থকা মেকুৰী"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"হৃদয়ৰ আকাৰৰ চকুৰ হাঁহি মুখীয়া মেকুৰীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"বেঁকা হাঁহি মাৰি থকা মেকুৰী"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"চকু মুদি চুমা খোৱা ভংগীৰ মেকুৰীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"খঙাল ভংগীৰ মেকুৰীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"কান্দি থকা ভংগীৰ মেকুৰীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"বেঁকা হাঁহি মৰা মেকুৰী মুখ"</string>
+    <!-- no translation found for spoken_emoji_1F641 (2580807588556383139) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F642 (1150197386159721331) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F643 (7631520433919530552) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F644 (446284817942609022) -->
+    <skip />
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"কোনো ভাল অভিব্যক্তি প্ৰকাশ নোপোৱা মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"আস্বস্ত অনুভৱ কৰা চেহেৰা"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"গভীৰভাৱে শিৰ নত কৰা ব্যক্তি"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"বেয়া বস্তু নোচোৱা বান্দৰৰ চেহেৰা"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"হাতেৰে কাণ ঢাকি থকা বান্দৰৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"হাতেৰে মুখ ঢাকি কথা নোকোৱা ভংগীত থকা বান্দৰৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"ওপৰলৈ এখন হাত দাঙি সুখী ব্যক্তিৰ চেহেৰা"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"উল্লাসেৰে দুয়োখন হাত দাঙি থকা ব্যক্তিৰ চেহেৰা"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"চেলাউৰি কোঁচ খুৱাই অস্বস্তি অনুভৱ কৰা ব্যক্তিৰ চেহেৰা"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"খং কৰি থকা ব্যক্তি"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"হাত সাৱটি থকা ব্যক্তিৰ চেহেৰা"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"ৰকেট"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"হেলিকপ্টাৰ"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"বাষ্পচালিত ৰে\'ল ইঞ্জিন"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"ৰেলৰ ডবা"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"দ্ৰুতবেগী ৰে\'ল"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"বন্ধুকৰ গুলি সদৃশ তীব্ৰ-গতিৰ ট্ৰেইন"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"ট্ৰেইন"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"মেট্ৰ\'"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"পাতল চিৰিৰ ৰে\'ল পথ"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"ষ্টেচন"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ট্ৰাম গাড়ী"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ট্ৰামৰ ডবা"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"বাছ"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"আহি থকা বাছ"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"বৈদ্যুতিক শক্তিৰে চালিত বাছ"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"বাছ আস্থান"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"মিনিবাছ"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"এম্বুলেঞ্চ"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"জুই নুমুৱা গাড়ী"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"পুলিচৰ গাড়ী"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"আহি থকা পুলিচৰ গাড়ী"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"টেক্সি"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"আহি থকা টেক্সি"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"যান-বাহন"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"আহি থকা যান"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"বিনোদনমূলক কামত ব্যৱহৃত বাহন"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"বস্তু বিতৰণ কৰা ট্ৰাক"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"ট্ৰাকৰ পিছফালে ট্ৰেইলাৰ লগোৱা দীঘল ল\'ৰী"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ট্ৰেক্টৰ"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"ম\'ন\' ৰেল"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"পাহাৰীয়া ৰে\'লপথ"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"ওলমা ৰেলগাড়ী"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"পর্বতত ব্যৱহাৰ হোৱা ৰজ্জুপথ"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"কেবুলৰ সহায়ত চলা বায়বীয় ট্ৰাম"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"জাহাজ"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"বঠা মাৰি বোৱা নাও"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"স্পীডব\'ট"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"অানুভূমিক ট্ৰেফিক লাইট"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"উলম্ব ট্ৰেফিক লাইট"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"নিৰ্মাণ কাৰ্য প্ৰগতিত আছে সূচোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"আৱৰ্তিত লাইটসহ পুলিচৰ গাড়ী"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"খুঁটাত আঁৰি থোৱা ত্ৰিভুজাকাৰ পতাকা"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"দুৱাৰ"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"প্ৰৱেশ নিষিদ্ধ সূচোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"ধূমপানৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"ধূমপান নিষেধৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"উপযুক্ত স্থানত পেলনীয়া বস্তুবোৰ পেলাবলৈ দিয়া চিহ্ন"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"পেলনীয়া বস্তুবোৰ এই স্থানত পেলোৱা নিষেধ সূচোৱা চিহ্ন"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"খোৱা পানীৰ প্ৰতীক"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"পানী খোৱাৰ উপযোগী নোহোৱা বুজোৱা প্ৰতীক"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"বাইচাইকেল"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"চাইকেলৰ প্ৰৱেশ নিষেধ চিহ্ন"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"চাইকেল আৰোহী"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"পাৰ্বত্য পথত চাইকেল চলোৱা লোক"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"পথচাৰী"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"পদযাত্ৰীৰ প্ৰৱেশ নিষেধ"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"শিশুৱে ৰাষ্টা পাৰ হোৱা ঠাই"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"পুৰুষৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"মহিলাৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"শৌচাগাৰ"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"কেঁচুৱাৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"শৌচালয়"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"শৌচাগাৰৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"বাথৰুমৰ শ্বাৱাৰ"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"স্নানাগাৰৰ চিহ্ন"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"বাথটাব"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"পাৰপত্ৰ নিয়ন্ত্ৰণ"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"সীমাশুল্ক বিভাগ"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"যাত্ৰীৰ বেগ ৰখা ঠাই"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"সাময়িকভাৱে বস্তু ৰখা ঠাইৰ চিহ্ন"</string>
+    <!-- no translation found for spoken_emoji_1F6CB (3573872215992460856) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6CC (5533098630848925915) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6CD (4591419999684883647) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6CE (3747424887764059629) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6CF (4913111315645834484) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6D0 (7538197710400229967) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6E0 (3263282970310123206) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6E1 (6426910766335807918) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6E2 (5167605828052365314) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6E3 (1107731664336606313) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6E4 (5902467073917590761) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6E5 (5188878074701467086) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6E9 (5852950271931619238) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6EB (2733806707250741222) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6EC (4869529552294301253) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6F0 (3448012994947964984) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F6F3 (1127894976097893258) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F910 (4360725090163247960) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F911 (8595715714642200771) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F912 (6361337370946123054) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F913 (3175822147540114526) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F914 (3784454242803834936) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F915 (8277232429785015709) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F916 (4717142652070467513) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F917 (5434814678071084726) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F918 (6065030046434546286) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F980 (7396183110343909685) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F981 (1201691097417167784) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F982 (7295087763708065402) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F983 (9086413570044829984) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F984 (5757150507762082864) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F9C0 (3346738126264740148) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0023_20E3 (3693649188523505503) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_002A_20E3 (6500437684406442358) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0030_20E3 (6312420508970951699) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0031_20E3 (5101790681679370329) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0032_20E3 (6852105251673250734) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0033_20E3 (6436737625517381721) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0034_20E3 (7652958059237626893) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0035_20E3 (1222504383755215423) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0036_20E3 (7251599202525740371) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0037_20E3 (7717155024038170161) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0038_20E3 (744556233370117245) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_0039_20E3 (1891172571916106023) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1E8 (515584542061392145) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1E9 (9021988927513031086) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1EA (4856101611523027311) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1EB (3716145572492094038) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1EC (7286661601747455727) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1EE (94989132936786231) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1F1 (182374112533705554) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1F2 (8083744008211394946) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1F4 (1162797094210816783) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1F6 (8423968169207301745) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1F7 (6876638422035482357) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1F8 (8277196879892990334) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1F9 (2248522124836544558) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1FA (4458840480641529325) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1FC (1163927173985102777) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1FD (3030463315371570615) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E6_1F1FF (612355136879823825) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1E6 (8760838318301758538) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1E7 (3157629488105877061) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1E9 (3576256753416957572) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1EA (664083045789831960) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1EB (1288425089161930952) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1EC (7159669370784906474) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1ED (6171060568325681800) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1EE (8825724034337572789) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1EF (481381108368354037) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F1 (323880581960666092) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F2 (6865529687293471865) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F3 (6196184089269330603) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F4 (7901700697723663375) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F6 (3206988419974375148) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F7 (3483402348221577606) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F8 (3399891901314769071) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1F9 (8985883748925470425) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1FB (3357087874695825993) -->
+    <skip />
+    <string name="spoken_emoji_1F1E7_1F1FC" msgid="2010150990697392924">"ব\'টছোৱানাৰ পতাকা"</string>
+    <!-- no translation found for spoken_emoji_1F1E7_1F1FE (7660069185149104762) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E7_1F1FF (4808586235664381640) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1E6 (1994799795544707087) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1E8 (4545193589020675153) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1E9 (971846413301682398) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1EB (7040500840320409927) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1EC (7814411108372534362) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1ED (7525661715353339833) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1EE (918386022730555752) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1F0 (1272608483604229355) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1F1 (4368512465692540121) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1F2 (1029570029642994892) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1F3 (1409448857910840128) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1F4 (6875493644298026833) -->
+    <skip />
+    <string name="spoken_emoji_1F1E8_1F1F5" msgid="2538762550371590224">"ক্লীপার্টন দ্বীপৰ পতাকা"</string>
+    <!-- no translation found for spoken_emoji_1F1E8_1F1F7 (888554264338218550) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1FA (4443590407200355667) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1FB (5581596688027484825) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1FC (7291024802305602214) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1FD (2788698554656649228) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1FE (5037633794290940318) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E8_1F1FF (5384200881950442912) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E9_1F1EA (4047812762841623779) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E9_1F1EC (3569858113686878222) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E9_1F1EF (5200510107957246395) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E9_1F1F0 (8230065040498090250) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E9_1F1F2 (6971088854496559333) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E9_1F1F4 (2684281180913271831) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1E9_1F1FF (5134944828411359548) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EA_1F1E6 (5992703503107448385) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EA_1F1E8 (7604769613933532639) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EA_1F1EA (780881058311953116) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EA_1F1EC (5379955220214737541) -->
+    <skip />
+    <string name="spoken_emoji_1F1EA_1F1ED" msgid="608191363783136124">"দক্ষিণ ছাহাৰাৰ পতাকা"</string>
+    <!-- no translation found for spoken_emoji_1F1EA_1F1F7 (1974034165386559979) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EA_1F1F8 (7667964716717428380) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EA_1F1F9 (4028236645746627833) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EA_1F1FA (2605433302354957477) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EB_1F1EE (825447084506872225) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EB_1F1EF (1029994540873767904) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EB_1F1F0 (2992979756365410511) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EB_1F1F2 (1986035899283103062) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EB_1F1F4 (2441016703335601117) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EB_1F1F7 (6052493581307010327) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1E6 (8950853954004506523) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1E7 (8888357158195515349) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1E9 (3463286702486956748) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1EA (1180536780790586881) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1EB (1203001730316543314) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1EC (1840977808701617077) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1ED (8783297421754572238) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1EE (2567172982673015319) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F1 (8178317151097107486) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F2 (8595547572836079090) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F3 (3646326386653741855) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F5 (6864411408511905871) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F6 (2059115105795502868) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F7 (6459258808903505755) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F8 (5458754397575470944) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1F9 (1467915615110741560) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1FA (4393335139566648919) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1FC (3425188247186220041) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EC_1F1FE (1021690400460955309) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1ED_1F1F0 (3761740442568650190) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1ED_1F1F2 (6910358977247451757) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1ED_1F1F3 (1646439132096214446) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1ED_1F1F7 (1052046916656026391) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1ED_1F1F9 (8078385390509081446) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1ED_1F1FA (8804528562628572718) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1E8 (3140919483825058219) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1E9 (5502581798727777828) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1EA (644825647040215471) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F1 (5743874630545163729) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F2 (3120136719636059223) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F3 (7645444982385343194) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F4 (9194565409945825135) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F6 (8988731584319817673) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F7 (2725630029704415631) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F8 (1010746786020461229) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EE_1F1F9 (9197939415727389837) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EF_1F1EA (2768571528360031663) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EF_1F1F2 (5221399784104523954) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EF_1F1F4 (5417778604376647557) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1EF_1F1F5 (6507273654908139469) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1EA (21237090866742866) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1EC (8276011655824240009) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1ED (6083653169314926215) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1EE (9065926492362391494) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1F2 (3247483394872878766) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1F3 (5367548209741205839) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1F5 (8936494847635883781) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1F7 (6083499745947821288) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F0_1F1FC (1379041347924516759) -->
+    <skip />
+    <string name="spoken_emoji_1F1F0_1F1FE" msgid="4109777537443572630">"কে\'মেন দ্বীপপুঞ্জৰ পতাকা"</string>
+    <!-- no translation found for spoken_emoji_1F1F0_1F1FF (552222434607517957) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1E6 (5166202354177379139) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1E7 (5664910004482751646) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1E8 (4030901907323824445) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1EE (1173785145388735876) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1F0 (3577045271636841729) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1F7 (7993304871488957893) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1F8 (5224840012819747543) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1F9 (3594812865734584207) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1FA (224221840159454205) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1FB (7718987237653945359) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F1_1F1FE (5998022588266933168) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1E6 (8965537225940059216) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1E8 (5827062380829465964) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1E9 (1226461313141287009) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1EA (559788800834584573) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1EB (5222394276026013118) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1EC (7183384701516848699) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1ED (6898522028833048325) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F0 (7068152815895976960) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F1 (7611046424376988616) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F2 (491461913101284240) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F3 (1450454181585256539) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F4 (3352572139711280528) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F5 (7536142087380383112) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F6 (5424070233210033210) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F7 (108173332528207905) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F8 (4922582142276070473) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1F9 (3215356274998633531) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1FA (7064984448662302120) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1FB (7349657291755821742) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1FC (2970112458704297219) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1FD (6249447018233900361) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1FE (2415463066267602417) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F2_1F1FF (5374300224943425292) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1E6 (7995033472926590061) -->
+    <skip />
+    <string name="spoken_emoji_1F1F3_1F1E8" msgid="6673558559311734824">"নিউ কেলেড\'নিয়াৰ পতাকা"</string>
+    <!-- no translation found for spoken_emoji_1F1F3_1F1EA (5248874974108203948) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1EB (8586671186548769011) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1EC (3610271061141196804) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1EE (3793576318302879471) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1F1 (7394150679646822106) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1F4 (4823752697520630443) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1F5 (8143013034442974213) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1F7 (2718588476956930593) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1FA (2136206841853719289) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F3_1F1FF (7114679379862776721) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F4_1F1F2 (1366056698822189642) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1E6 (2318048598212415394) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1EA (3843366473938653876) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1EB (5842604724881232116) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1EC (1527509030357350666) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1ED (4519745708610996392) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1F0 (6461277576429215252) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1F1 (8076361813157658785) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1F2 (2895871984922747795) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1F3 (3351998070564812928) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1F7 (2273664192514768865) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1F8 (4184730889323208578) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1F9 (6088372177025496872) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1FC (6503480614531765009) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F5_1F1FE (8948077259790298897) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F6_1F1E6 (5941022501487103264) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F7_1F1EA (6520393107511408733) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F7_1F1F4 (24771949751001440) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F7_1F1F8 (3958542649861771783) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F7_1F1FA (1079726084663529719) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F7_1F1FC (3705031663938652819) -->
+    <skip />
+    <string name="spoken_emoji_1F1F8_1F1E6" msgid="2776179858340260230">"ছৌদী আৰবৰ পতাকা"</string>
+    <!-- no translation found for spoken_emoji_1F1F8_1F1E7 (3665472085378450456) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1E8 (4466400506433158307) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1E9 (5614788248607521243) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1EA (2665982185283861392) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1EC (1054034328208566506) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1ED (4263061939910522547) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1EE (6565744105871887098) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1EF (3016523221609614043) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F0 (5390016769601791982) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F1 (6403850165793367854) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F2 (4310711409277111575) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F3 (6489885135970927076) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F4 (5341079828952201668) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F7 (8817875467979840211) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F8 (2660263148212045846) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1F9 (8238122890022856070) -->
+    <skip />
+    <string name="spoken_emoji_1F1F8_1F1FB" msgid="4615906903576645230">"এল ছালভাড\'ৰৰ পতাকা"</string>
+    <!-- no translation found for spoken_emoji_1F1F8_1F1FD (4404781163148659815) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1FE (7179176431724187154) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F8_1F1FF (8456502038439909076) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1E6 (7462600413724750923) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1E8 (8714687302692115701) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1E9 (4271932459960645451) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1EB (8824845043239747091) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1EC (6378688671192754868) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1ED (3342706257317087047) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1EF (1902800890327368738) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1F0 (5328199482828913429) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1F1 (8753850591122992884) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1F2 (5491037548857189992) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1F3 (7278463413655866267) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1F4 (7624316225889181844) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1F7 (5932331866489640094) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1F9 (4042249888728442471) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1FB (4705386325884538832) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1FC (9106106156487112003) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1F9_1F1FF (6594567669471176195) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FA_1F1E6 (7516283481055191487) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FA_1F1EC (7713151466830788434) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FA_1F1F2 (169503347987231777) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FA_1F1F8 (3794069376561841694) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FA_1F1FE (7768717385050492537) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FA_1F1FF (1957036711159158590) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FB_1F1E6 (6686626035855100794) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FB_1F1E8 (958901562721846738) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FB_1F1EA (8171514854370897858) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FB_1F1EC (7825072244650491600) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FB_1F1EE (8177320330941963456) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FB_1F1F3 (6211275163002022414) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FB_1F1FA (7638199094441690866) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FC_1F1EB (2750545602487865333) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FC_1F1F8 (1717055707936794276) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FD_1F1F0 (8924460310127605012) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FE_1F1EA (5020385658435288646) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FE_1F1F9 (5627032701159894458) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FF_1F1E6 (3518155724469542909) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FF_1F1F2 (1316086892525163001) -->
+    <skip />
+    <!-- no translation found for spoken_emoji_1F1FF_1F1FC (7229025296887296741) -->
+    <skip />
+</resources>
diff --git a/java/res/values-as/strings-letter-descriptions.xml b/java/res/values-as/strings-letter-descriptions.xml
new file mode 100644
index 0000000..7cedd40
--- /dev/null
+++ b/java/res/values-as/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, 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.
+*/
+ -->
+
+<!-- 
+    These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+    These symbols (spoken_symbol_*) are also unsupported by TTS.
+    TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"অন্য বর্ণৰ সোঁফালে ওপৰত লিখা \'a\' সূচক"</string>
+    <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"মিউ বর্ণৰ চিহ্ন"</string>
+    <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"অন্য বর্ণৰ সোঁফালে ওপৰত লিখা \'o\' সূচক"</string>
+    <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"বিটা বর্ণৰ প্ৰতীক"</string>
+    <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"Aৰ ওপৰত গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"Aৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"Aৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"Aৰ ওপৰত টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"Aৰ ওপৰত ডায়েৰেচিছ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"ওপৰত সৰু বৃত্ত থকা \'a\' আখৰ"</string>
+    <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"\'A, E\' আখৰৰ যুক্তাক্ষৰ"</string>
+    <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"Cৰ তলত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"Eৰ ওপৰত গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"Eৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"Eৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"Eৰ ওপৰত ডায়েৰেচিছ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"Iৰ ওপৰত গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"Iৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"Iৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"Iৰ ওপৰত ডায়েৰেচিছ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"লেটিন বর্ণমালাৰ আখৰ \'Eth\' ৰ প্ৰতীক"</string>
+    <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"Nৰ ওপৰত টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"Oৰ ওপৰত গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"Oৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"Oৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"Oৰ ওপৰত টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"Oৰ ওপৰত ডায়েৰেচিছ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"Oত ষ্ট্ৰ\'ক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"Uৰ ওপৰত গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"Uৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"Uৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"Uৰ ওপৰত ডায়েৰেচিছ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Yৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"লেটিন বর্ণমালাৰ সৰুফলাৰ থৰ্ণ বৰ্ণ"</string>
+    <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Yৰ ওপৰত ডায়েৰেচিছ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"Aৰ ওপৰত মেক্ৰন একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"Aৰ ওপৰত ব্ৰীভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"Aৰ তলত অগ\'নেক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"Cৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"Cৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"Cৰ ওপৰত এটা বিন্দু"</string>
+    <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"Cৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_010F" msgid="603374318657992205">"Dৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"Dৰ ওপৰত ষ্ট্ৰ\'ক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"Eৰ ওপৰত মেক্ৰন একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"Eৰ ওপৰত ব্ৰীভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"Eৰ ওপৰত এটা বিন্দু"</string>
+    <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"Eৰ তলত অগ\'নেক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"Eৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"Gৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"Gৰ ওপৰত ব্ৰীভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"Gৰ ওপৰত এটা বিন্দু"</string>
+    <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"Gৰ ওপৰত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"Hৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"Hৰ ওপৰত ষ্ট্ৰ\'ক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"Iৰ ওপৰত টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"Iৰ ওপৰত মেক্ৰন একচেণ্ট"</string>
+    <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"Iৰ ওপৰত ব্ৰীভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"Iৰ তলত অগ\'নেক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"ওপৰত বিন্দু নথকা \'I\'"</string>
+    <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J আখৰৰ যুক্তাক্ষৰ"</string>
+    <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"Jৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"Kৰ তলত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"লেটিন ভাষাৰ \'Kra\' বর্ণৰ প্ৰতীক"</string>
+    <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"Lৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"lৰ তলত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"Lৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"সোঁফালে মধ্য অংশত বিন্দু থকা \'L\'"</string>
+    <string name="spoken_accented_letter_0142" msgid="752931798111122240">"Lত ষ্ট্ৰ\'ক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0144" msgid="201843550323875352">"Nৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"Nৰ ওপৰত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"Nৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"ঊর্ধ্বকমাৰ পাছত থকা \'N\'"</string>
+    <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"লেটিন বর্ণমালাৰ সৰুফলা \'Eng\' বুজোৱা প্ৰতীক"</string>
+    <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"Oৰ ওপৰত মেক্ৰন একচেণ্ট"</string>
+    <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"Oৰ ওপৰত ব্ৰীভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"Oৰ ওপৰত দুডাল একিউটৰ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"\'oe\' আখৰৰ যুক্তাক্ষৰ"</string>
+    <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"Rৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"Rৰ তলত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"Rৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"Sৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"Sৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"Sৰ তলত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"Sৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"Tৰ তলত চেডিলা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"Tৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"Tত ষ্ট্ৰ\'ক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0169" msgid="413046581387735371">"Uৰ ওপৰত টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"Uৰ ওপৰত মেক্ৰনএকচেণ্ট"</string>
+    <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"Uৰ ওপৰত ব্ৰীভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"ওপৰত সৰু বৃত্ত থকা \'U\' আখৰ"</string>
+    <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"Uৰ ওপৰত দুডাল একিউটৰ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"Uৰ তলত অগ\'নেক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"Wৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"yৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট"</string>
+    <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"zৰ ওপৰত একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Zৰ ওপৰত এটা বিন্দু"</string>
+    <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"zৰ ওপৰত কেৰণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_017F" msgid="317501463253362415">"দীঘল \'s\' আকৃতিৰ লেটিন বর্ণৰ প্ৰতীক"</string>
+    <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"Oৰ ওপৰত হৰ্ণ"</string>
+    <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"uৰ ওপৰত হর্ণ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"তলত কমা থকা \'s\'"</string>
+    <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"তলত কমা থকা \'t\'"</string>
+    <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"লেটিন ভাষাৰ সৰুফলা আখৰ স্বা"</string>
+    <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"Aৰ তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"\'a\'ৰ ওপৰত হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"aৰ ওপৰত চাৰকামফ্লেক্স আৰু একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"aৰ ওপৰত চাৰকামফ্লেক্স আৰু গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"aৰ ওপৰত চাৰকামফ্লেক্স আৰু হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"aৰ ওপৰত চাৰকামফ্লেক্স আৰু টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"aৰ ওপৰত চাৰকামফ্লেক্সৰ একচেণ্ট আৰু তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"Aৰ ওপৰত ব্ৰীভ আৰু একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"aৰ ওপৰত ব্ৰীভ আৰু গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"aৰ ওপৰত ব্ৰীভ আৰু হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"aৰ ওপৰত ব্ৰীভ আৰু টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"aৰ ওপৰত ব্ৰীভ একচেণ্ট আৰু তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"Eৰ তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"eৰ ওপৰত গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"eৰ ওপৰত টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"eৰ ওপৰত চাৰকামফ্লেক্স আৰু একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"eৰ ওপৰত চাৰকামফ্লেক্স আৰু গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"Eৰ ওপৰত চাৰকামফ্লেক্স আৰু হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"Eৰ ওপৰত চাৰকামফ্লেক্স আৰু টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"eৰ ওপৰত চাৰকামফ্লেক্স একচেণ্ট আৰু তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"iৰ ওপৰত হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"iৰ তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"Oৰ তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"oৰ ওপৰত হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"Oৰ ওপৰত চাৰকামফ্লেক্স আৰু একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"oৰ ওপৰত চাৰকামফ্লেক্স আৰু গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"oৰ ওপৰত চাৰকামফ্লেক্স আৰু হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"oৰ ওপৰত চাৰকামফ্লেক্স আৰু টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"Oৰ ওপৰত চাৰকামফ্লেক্সৰ একচেণ্ট আৰু তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"Oৰ ওপৰত হর্ণ আৰু একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"oৰ ওপৰত হ\'র্ণ আৰু গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"oৰ ওপৰত হর্ণ আৰু হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"oৰ ওপৰত হর্ণ আৰু টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"oৰ ওপৰত হ\'র্ণ একচেণ্ট আৰু তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"Uৰ তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"Uৰ ওপৰত হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"Uৰ ওপৰত হর্ণ আৰু একিউট একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"Uৰ ওপৰত হর্ণ আৰু গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"Uৰ ওপৰত হর্ণ আৰু হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"Uৰ ওপৰত হর্ণ আৰু টিলডা একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"Uৰ ওপৰত হ\'র্ণ একচেণ্ট আৰু তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Yৰ ওপৰত গ্ৰেভ একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"yৰ তলত বিন্দু"</string>
+    <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"yৰ ওপৰত হুক একচেণ্ট"</string>
+    <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"yৰ ওপৰত টিলডা একচেণ্ট"</string>
+    <string name="spoken_symbol_00A1" msgid="4281758332905123408">"ওলোটা ভাববোধক চিহ্ন"</string>
+    <string name="spoken_symbol_00AB" msgid="4093069643313064892">"বাওঁফালে নির্দেশ কৰা দুটা কোণৰ প্ৰতীক"</string>
+    <string name="spoken_symbol_00B7" msgid="2447718728927874920">"মধ্য বিন্দু"</string>
+    <string name="spoken_symbol_00B9" msgid="8026257165451461231">"সোঁফালে ওপৰৰ অংশত লিখা সৰু \'1\'"</string>
+    <string name="spoken_symbol_00BB" msgid="1102740075655373928">"সোঁফালে নির্দেশ কৰা দুটা কোণৰ প্ৰতীক"</string>
+    <string name="spoken_symbol_00BF" msgid="6233794752573788098">"ওলোটা প্ৰশ্নবোধক চিহ্ন"</string>
+    <string name="spoken_symbol_2018" msgid="4886476295598930225">"বাওঁফালৰ ঊৰ্ধ্বকমা"</string>
+    <string name="spoken_symbol_2019" msgid="8892530161598134083">"সোঁফালৰ এডাল ঊৰ্ধ্বকমা"</string>
+    <string name="spoken_symbol_201A" msgid="2072987157683446644">"তলত লিখা সোঁফালৰ ঊৰ্ধ্বকমা"</string>
+    <string name="spoken_symbol_201C" msgid="4588048378803665427">"বাওঁ দ্বৈত ঊৰ্ধ্বকমা"</string>
+    <string name="spoken_symbol_201D" msgid="1642776849495925895">"সোঁ দ্বৈত ঊৰ্ধ্বকমা"</string>
+    <string name="spoken_symbol_2020" msgid="9084628638189344431">"ডেগাৰ চিহ্ন"</string>
+    <string name="spoken_symbol_2021" msgid="5081396468559426475">"দ্বৈত্ব ডেগাৰ চিহ্ন"</string>
+    <string name="spoken_symbol_2030" msgid="9068837172419431755">"প্ৰতি মাইলত বুজোৱা প্ৰতীক"</string>
+    <string name="spoken_symbol_2032" msgid="3014506329156664396">"প্ৰাইম"</string>
+    <string name="spoken_symbol_2033" msgid="1251022699713475088">"দৈর্ঘ্য জোখা একক ইঞ্চিৰ প্ৰতীক"</string>
+    <string name="spoken_symbol_2039" msgid="6989616457213775957">"বাওঁফালে নির্দেশ কৰা এটা কোণৰ প্ৰতীক"</string>
+    <string name="spoken_symbol_203A" msgid="31245095449823701">"সোঁফালে নির্দেশ কৰা এটা কোণৰ প্ৰতীক"</string>
+    <string name="spoken_symbol_2074" msgid="2116717717093306894">"সোঁফালে ওপৰত লিখা সৰু \'4\'"</string>
+    <string name="spoken_symbol_207F" msgid="1706731172134246659">"সোঁফালে ওপৰত লিখা সৰু \'n\'"</string>
+    <string name="spoken_symbol_20B1" msgid="2159994270622444689">"পেছ\' মুদ্ৰাৰ প্ৰতীক"</string>
+    <string name="spoken_symbol_2105" msgid="7289404939366976829">"প্ৰযত্নে"</string>
+    <string name="spoken_symbol_2192" msgid="827804523596125414">"সোঁফালে নির্দেশ কৰা কাঁড়চিহ্ন"</string>
+    <string name="spoken_symbol_2193" msgid="2659541693445985717">"অধোমুখী কাঁড় চিহ্ন"</string>
+    <string name="spoken_symbol_2205" msgid="4457188084269117343">"ৰিক্ত সংহতি"</string>
+    <string name="spoken_symbol_2206" msgid="4856786565708380687">"বৃদ্ধি"</string>
+    <string name="spoken_symbol_2264" msgid="5092061257745123554">"ইয়াতকৈ কম বা ইয়াৰ সমান বুজোৱা প্ৰতীক"</string>
+    <string name="spoken_symbol_2265" msgid="1907966479878036357">"ইয়াতকৈ বেছি বা ইয়াৰ সমান বুজোৱা প্ৰতীক"</string>
+    <string name="spoken_symbol_2605" msgid="5202920479405857753">"ক\'লা তৰা প্ৰতীক"</string>
+</resources>
diff --git a/java/res/values-as/strings-talkback-descriptions.xml b/java/res/values-as/strings-talkback-descriptions.xml
new file mode 100644
index 0000000..c122b95
--- /dev/null
+++ b/java/res/values-as/strings-talkback-descriptions.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2015, 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"পাছৱৰ্ড কীবোৰ উচ্চাৰণ কৰা শুনিবলৈ হেডছেট এটা লগাওক৷"</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"বৰ্তমানৰ পাঠ হৈছে %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"কোনো পাঠ লিখা হোৱা নাই"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>এ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>ৰ পৰা <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>লৈ শুদ্ধ কৰে"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g>এ স্বয়ংক্ৰিয়ভাৱে শুদ্ধ কৰে"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"কোনো পৰামর্শ নাই"</string>
+    <string name="spoken_description_unknown" msgid="5139930082759824442">"অজ্ঞাত বর্ণ"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"শ্বিফ্ট"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"অধিক চিহ্ন"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"শ্বিফ্ট"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"প্ৰতীকসমূহ"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"শ্বিফ্ট"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"মচক"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"প্ৰতীকসমূ্হ"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"বৰ্ণসমূহ"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"সংখ্যাসমূহ"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"ছেটিংসমূহ"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"টেব"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"স্পেচ"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"ধ্বনি ইনপুট"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"ইম\'জি"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"উভতি যাওক"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"সন্ধান কৰক"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"বিন্দু"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"ভাষা সলনি কৰক"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"পৰৱৰ্তী"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"পূৰ্বৱৰ্তী"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"শ্বিফ্ট সক্ষম কৰা হ\'ল"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"কেপছ্ লক সক্ষম কৰা হ\'ল"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"চিহ্ন ম\'ড"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"অধিক প্ৰতীক ম\'ড"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"বৰ্ণ ম\'ড"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"ফ\'ন ম\'ড"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"ফ\'নৰ চিহ্নৰ ম\'ড"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"কীব\'ৰ্ড লুকুওৱা হ\'ল"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> কীব\'ৰ্ড দেখুওৱা হৈছে"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"তাৰিখ"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"তাৰিখ আৰু সময়"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"ই-মেইল"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"বাৰ্তা লিখন"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"সংখ্যা"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"ফ’ন"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"পাঠ"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"সময়"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"শেহতীয়া সমলসমূহ"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"সম্পৰ্ক ব্যক্তিসকল"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"বস্তুসমূহ"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"প্ৰকৃতি"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"ঠাইসমূহ"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"প্ৰতীকসমূহ"</string>
+    <!-- no translation found for spoken_descrption_emoji_category_flags (5971573825866381472) -->
+    <skip />
+    <!-- no translation found for spoken_descrption_emoji_category_eight_smiley_people (5682663819532433464) -->
+    <skip />
+    <!-- no translation found for spoken_descrption_emoji_category_eight_animals_nature (5844950234883716704) -->
+    <skip />
+    <!-- no translation found for spoken_descrption_emoji_category_eight_food_drink (6196944764485349650) -->
+    <skip />
+    <!-- no translation found for spoken_descrption_emoji_category_eight_travel_places (3834085499381434611) -->
+    <skip />
+    <!-- no translation found for spoken_descrption_emoji_category_eight_activity (4795281669042975993) -->
+    <skip />
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"ইম\'টিকন"</string>
+    <string name="spoken_description_upper_case" msgid="4904835255229433916">"বৰফলা <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+    <string name="spoken_letter_0049" msgid="4743162182646977944">"বৰফলা l"</string>
+    <string name="spoken_letter_0130" msgid="4766619646231612274">"ওপৰত বিন্দুৰ সৈতে লেটিন বৰফলা I"</string>
+    <string name="spoken_symbol_unknown" msgid="717298227061173706">"অজ্ঞাত চিহ্ন"</string>
+    <string name="spoken_emoji_unknown" msgid="5981009928135394306">"অজ্ঞাত ইম\'জি"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"আমনি পোৱা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"লজ্জিত ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"ছানগ্লাছ পৰিহিত মুখমণ্ডল"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"আচৰিত হোৱা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"চুমা খোৱা ভংগীৰ মুখমণ্ডল"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"দুখী মুখমণ্ডল"</string>
+    <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"বিকল্প বৰ্ণ আছে"</string>
+    <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"বিকল্প বৰ্ণবোৰ অগ্ৰাহ্য কৰা হৈছে"</string>
+    <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"বিকল্প পৰামর্শ আছে"</string>
+    <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"বিকল্প পৰামর্শবোৰ অগ্ৰাহ্য কৰা হৈছে"</string>
+</resources>
diff --git a/java/res/values-as/strings.xml b/java/res/values-as/strings.xml
new file mode 100644
index 0000000..795f29a
--- /dev/null
+++ b/java/res/values-as/strings.xml
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2008, 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_input_options" msgid="3909945612939668554">"ইনপুট বিকল্পসমূহ"</string>
+    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"সম্পৰ্কসূচীৰ নামবোৰত চাওক"</string>
+    <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"বানান পৰীক্ষকে আপোনাৰ সম্পৰ্কসূচীৰ নামবোৰ ব্যৱহাৰ কৰে"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"কী টিপিলে কম্পন কৰক"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"কী টিপিলে শব্দ হ\'ব"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"কী টিপিলে প\'পআপ ওলাব"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"অগ্ৰাধিকাৰসমূহ"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"একাউণ্ট আৰু গোপনীয়তা"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"বাহ্যিক ৰূপ আৰু চানেকিসমূহ"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"আঙুলি পিছলাই টাইপ কৰাৰ সুবিধা"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"পাঠ শুধৰণি"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"উচ্চখাপৰ"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"থীম"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"বিভক্ত কীবর্ড সক্ষম কৰক"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google কীব\'ৰ্ড ছিংক"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"ছিংক হৈ আছে"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"সকলো ডিভাইচত আপোনাৰ ব্যক্তিগত অভিধান ছিংক কৰক"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"এতিয়া ছিংক কৰক"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"ক্লাউড ডেটা মচক"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"আপোনাৰ ছিংক কৰা ডেটাসমূহ Googleৰ পৰা মচে"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"আপোনাৰ ক্লাউডৰ পৰা ছিংক কৰা ডেটাসমূহ মচা হ\'ব। আপুনি নিশ্চিতনে?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"মচক"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"বাতিল কৰক"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"আপোনাৰ ব্যক্তিগত অভিধান ছিংক কৰা হ\'ব আৰু Google ছার্ভাৰত বেক আপ লোৱা হ\'ব।শব্দৰ সঘনতা পৰিসংখ্যাৰ তথ্য আমাৰ সামগ্ৰীসমূহ উন্নত কৰাত সহায় কৰিবলৈ সংগ্ৰহ কৰা হ\'ব পাৰে। সংগ্ৰহ আৰু ব্যৱহাৰ কৰা সকলো তথ্যৰ বাবে "<a href="https://www.google.com/policies/privacy">"Googleৰ ব্যক্তিগত নীতি"</a>" মনা হ\'ব।"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"এই সুবিধা সক্ষম কৰিবলৈ ডিভাইচত এটা Google একাউণ্ট যোগ কৰক"</string>
+    <string name="cloud_sync_summary_disabled_work_profile" msgid="1381770407303129164">"ব্যৱসায় একাউণ্টসমূহৰ বাবে ব্যৱহাৰ কৰা Google এপসমূহৰ ডিভাইচবোৰৰ বাবে ছিংক উপলব্ধ নহয়"</string>
+    <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"আন ইনপুট পদ্ধতিলৈ সলনি কৰক"</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ভাষা সলনি কৰা কীটোৱে আন ইনপুট পদ্ধতিসমূহকো সামৰি লয়"</string>
+    <string name="show_language_switch_key" msgid="5915478828318774384">"ভাষা সলনি কৰা কী"</string>
+    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"যেতিয়া একাধিক ইনপুট ভাষা সক্ষম কৰি থোৱা থাকে তেতিয়া দেখুৱাওক"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"কী প\'পআপৰ প্ৰত্যাখ্যান বিলম্ব"</string>
+    <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"কোনো বিলম্ব নাই"</string>
+    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ডিফ\'ল্ট"</string>
+    <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g>মি. ছে."</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"ছিষ্টেম ডিফ\'ল্ট"</string>
+    <string name="use_contacts_dict" msgid="4435317977804180815">"সম্পৰ্ক নামৰ পৰামৰ্শ দিয়ক"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"পৰামৰ্শ আৰু শুধৰণিৰ বাবে সম্পৰ্কসূচীৰ পৰা নামবোৰ ব্যৱহাৰ কৰক"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"ব্যক্তিগতকৰণ কৰা পৰামর্শসমূহ"</string>
+    <string name="enable_metrics_logging" msgid="5506372337118822837">"উন্নত কৰক <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="use_double_space_period" msgid="8781529969425082860">"দুবাৰ স্পেচবাৰ টিপি দাড়ি দিয়াৰ সুবিধা"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"স্পেচবাৰত দুবাৰ টিপিলে এডাল দাড়ি বহুৱাই তাৰ পিছত এটা স্পেচ ভৰায়"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"স্বয়ং-বৰফলাকৰণ"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"প্ৰতিটো বাক্যৰ প্ৰথমটো শব্দৰ প্ৰথম আখৰটো বৰফলাৰ কৰক"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"ব্যক্তিগত অভিধান"</string>
+    <string name="configure_dictionaries_title" msgid="4238652338556902049">"অতিৰিক্ত অভিধান"</string>
+    <string name="main_dictionary" msgid="4798763781818361168">"মুখ্য অভিধান"</string>
+    <string name="prefs_show_suggestions" msgid="8026799663445531637">"শুধৰণিৰ পৰামৰ্শবোৰ দেখুৱাওক"</string>
+    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"টাইপ কৰি থাকোঁতে পৰামৰ্শৰ শব্দবোৰ দেখুৱাওক"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"আপত্তিজনক শব্দবোৰ অৱৰোধ কৰক"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"সাম্ভাব্য আপত্তিজনক শব্দবোৰৰ পৰামৰ্শ নিদিব"</string>
+    <string name="auto_correction" msgid="7630720885194996950">"স্বয়ং-সংশোধন"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"স্পেচবাৰ আৰু যতিচিহ্নই ভুলকৈ টাইপ কৰা শব্দবোৰ স্বয়ংক্ৰিয়ভাৱে শুদ্ধ কৰে"</string>
+    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"অফ কৰক"</string>
+    <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"পৰিমিত"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"আগ্ৰাসী"</string>
+    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"অতি আগ্ৰাসী"</string>
+    <string name="bigram_prediction" msgid="1084449187723948550">"পৰৱৰ্তী শব্দৰ পৰামৰ্শসমূহ"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"পৰামৰ্শ প্ৰদান কৰিবলৈ পূৰ্বৱৰ্তী শব্দটো ব্যৱহাৰ কৰক"</string>
+    <string name="gesture_input" msgid="826951152254563827">"স্পৰ্শ লিখন সক্ষম কৰক"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"আখৰৰ ওপৰেৰে আঙুলি পিছলাই শব্দ লিখক"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"আঙুলি পিছলাই দিয়া নিৰ্দেশসমূহৰ গতিপথৰ চিহ্ন দেখুৱাওক"</string>
+    <string name="gesture_floating_preview_text" msgid="4443240334739381053">"গতিশীল প্ৰবাহিত পূৰ্বদৰ্শন"</string>
+    <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"আঙুলিৰে নিৰ্দেশ দিয়াৰ সময়ত পৰামৰ্শ দিয়া শব্দটো চাওক"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"আঙুলি পিছলাই দিয়া নিৰ্দেশেৰে বাক্যাংশ লিখক"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"আঙুলি পিছলাই দিয়া নিৰ্দেশ দিওঁতে স্পেচ কীটোৰ ওপৰেৰে আঙুলি পিছলাই স্পেচ দিয়ক"</string>
+    <string name="voice_input" msgid="3583258583521397548">"কথনৰ দ্বাৰা লিখন কী"</string>
+    <!-- no translation found for voice_input_disabled_summary (6323489602945135165) -->
+    <skip />
+    <string name="configure_input_method" msgid="373356270290742459">"ইনপুট পদ্ধতিসমূহ কনফিগাৰ কৰক"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ভাষা"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"সহায় আৰু মতামত"</string>
+    <string name="select_language" msgid="5709487854987078367">"ভাষা"</string>
+    <!-- no translation found for hint_add_to_dictionary (2645988432867033007) -->
+    <skip />
+    <!-- no translation found for hint_add_to_dictionary_without_word (6710206006427574423) -->
+    <skip />
+    <string name="has_dictionary" msgid="6071847973466625007">"অভিধান উপলব্ধ"</string>
+    <string name="keyboard_layout" msgid="8451164783510487501">"কীব\'ৰ্ড থীম"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"একাউণ্ট সলনি কৰক"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"কোনো একাউণ্ট বাছনি কৰা হোৱা নাই"</string>
+    <string name="account_selected" msgid="2846876462199625974">"<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> বর্তমান ব্যৱহাৰ কৰি থকা হৈছে"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ঠিক আছে"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"বাতিল কৰক"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ছাইন আউট কৰক"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"ব্যৱহাৰ কৰিবৰ বাবে এটা একাউণ্ট বাছনি কৰক"</string>
+    <string name="subtype_en_GB" msgid="88170601942311355">"ইংৰাজী (ইউ. কে.)"</string>
+    <string name="subtype_en_US" msgid="6160452336634534239">"ইংৰাজী (ইউ. এছ.)"</string>
+    <string name="subtype_es_US" msgid="5583145191430180200">"স্পেনিশ্ব (ইউ. এছ.)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"হিংলিশ্ব"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"ছাৰ্বিয়ান (লেটিন)"</string>
+    <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ইংৰাজী (ইউ. কে.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ইংৰাজী (ইউ. এছ.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"স্পেনিশ্ব (ইউ. এছ.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"হিংলিশ্ব (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"ছাৰ্বিয়ান (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (পৰম্পৰাগত)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (চমু)"</string>
+    <string name="subtype_no_language" msgid="7137390094240139495">"কোনো ভাষা নাই (বৰ্ণমালা)"</string>
+    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"বৰ্ণমালা (QWERTY)"</string>
+    <string name="subtype_no_language_qwertz" msgid="443066912507547976">"বৰ্ণমালা (QWERTZ)"</string>
+    <string name="subtype_no_language_azerty" msgid="8144348527575640087">"বৰ্ণমালা (AZERTY)"</string>
+    <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"বৰ্ণমালা (Dvorak)"</string>
+    <string name="subtype_no_language_colemak" msgid="5837418400010302623">"বৰ্ণমালা (Colemak)"</string>
+    <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"বৰ্ণমালা (পি. চি.)"</string>
+    <string name="subtype_emoji" msgid="7483586578074549196">"ইম\'জি"</string>
+    <string name="keyboard_theme" msgid="4909551808526178852">"কীব\'ৰ্ড থীম"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"কাষ্টম ইনপুট শৈলী"</string>
+    <string name="add_style" msgid="6163126614514489951">"শৈলী যোগ কৰক"</string>
+    <string name="add" msgid="8299699805688017798">"যোগ কৰক"</string>
+    <string name="remove" msgid="4486081658752944606">"আঁতৰাওক"</string>
+    <string name="save" msgid="7646738597196767214">"ছেভ কৰক"</string>
+    <string name="subtype_locale" msgid="8576443440738143764">"ভাষা"</string>
+    <string name="keyboard_layout_set" msgid="4309233698194565609">"চানেকি"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"আপুনি কাষ্টম ইনপুট শৈলীটো ব্যৱহাৰ কৰাৰ আগেয়ে তাক সক্ষম কৰিব লাগিব৷ আপুনি এতিয়াই তাক সক্ষম কৰিবলৈ বিচাৰেনে?"</string>
+    <string name="enable" msgid="5031294444630523247">"সক্ষম কৰক"</string>
+    <string name="not_now" msgid="6172462888202790482">"এতিয়া নহয়"</string>
+    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"একে ইনপুট শৈলী ইতিমধ্যে মজুত আছে: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"কী টিপিলে হোৱা কম্পনৰ কাল-দৈৰ্ঘ্য"</string>
+    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"কী টিপিলে হোৱা ধ্বনিৰ মাত্ৰা"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"কী দীঘলীয়াকৈ টিপি ৰখাৰ সময়"</string>
+    <string name="prefs_enable_emoji_alt_physical_key" msgid="5963640002335470112">"কায়িক কীব\'ৰ্ডৰ বাবে ইম\'জী"</string>
+    <string name="prefs_enable_emoji_alt_physical_key_summary" msgid="5259484820941627827">"কায়িক Alt কীয়ে ইম\'জী পেলেট দেখুৱায়"</string>
+    <string name="button_default" msgid="3988017840431881491">"ডিফ\'ল্ট"</string>
+    <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>লৈ স্বাগতম জনাইছোঁ"</string>
+    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"আঙুলি পিছলাই দিয়া নিৰ্দেশেৰে টাইপ কৰাৰ সুবিধাৰ সৈতে"</string>
+    <string name="setup_start_action" msgid="8936036460897347708">"আৰম্ভ কৰক"</string>
+    <string name="setup_next_action" msgid="371821437915144603">"পৰৱৰ্তী পদক্ষেপ"</string>
+    <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ছেট আপ কৰি থকা হৈছে"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম কৰক"</string>
+    <!-- no translation found for setup_step1_instruction (4295448056733329661) -->
+    <skip />
+    <!-- no translation found for setup_step1_finished_instruction (8701441895377434947) -->
+    <skip />
+    <string name="setup_step1_action" msgid="4366513534999901728">"ছেটিংসমূহলৈ গৈ সক্ষম কৰক"</string>
+    <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> লৈ সলনি কৰক"</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"ইয়াৰ পিছত, আপোনাৰ সক্ৰিয় পাঠ ইনপুট পদ্ধতি হিচাপে \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" বাছনি কৰক৷"</string>
+    <string name="setup_step2_action" msgid="1660330307159824337">"ইনপুট পদ্ধতিসমূহ সলনি কৰক"</string>
+    <string name="setup_step3_title" msgid="3154757183631490281">"আপোনাক অভিনন্দন জনাইছোঁ, আপুনি এতিয়া সাজু!"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"আপুনি এতিয়া আপোনাৰ প্ৰিয় এপসমূহত <xliff:g id="APPLICATION_NAME">%s</xliff:g>ৰ সৈতে লিখিব পাৰিব৷"</string>
+    <string name="setup_step3_action" msgid="600879797256942259">"অতিৰিক্ত ভাষা কনফিগাৰ কৰক"</string>
+    <string name="setup_finish_action" msgid="276559243409465389">"সম্পূৰ্ণ হ\'ল"</string>
+    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"এপৰ আইকন দেখুৱাওক"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"লঞ্চাৰত এপ্লিকেশ্বন আইকন দেখুৱাওক"</string>
+    <string name="app_name" msgid="6320102637491234792">"অভিধান প্ৰদানকাৰী"</string>
+    <string name="dictionary_provider_name" msgid="3027315045397363079">"অভিধান প্ৰদানকাৰী"</string>
+    <string name="dictionary_service_name" msgid="6237472350693511448">"অভিধান সেৱা"</string>
+    <string name="download_description" msgid="6014835283119198591">"অভিধান আপডেট কৰাৰ তথ্য"</string>
+    <string name="dictionary_settings_title" msgid="8091417676045693313">"অতিৰিক্ত অভিধান"</string>
+    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"অভিধান উপলব্ধ"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"অভিধানসমূহৰ বাবে ছেটিংসমূহ"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"ব্যৱহাৰকাৰীৰ অভিধানসমূহ"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"ব্যৱহাৰকাৰীৰ অভিধান"</string>
+    <string name="dictionary_available" msgid="4728975345815214218">"অভিধান উপলব্ধ"</string>
+    <string name="dictionary_downloading" msgid="2982650524622620983">"বৰ্তমান ডাউনল\'ড হৈ আছে"</string>
+    <string name="dictionary_installed" msgid="8081558343559342962">"ইনষ্টল কৰা হ’ল"</string>
+    <string name="dictionary_disabled" msgid="8950383219564621762">"ফাইল ইনষ্টল হৈছে কিন্তু অভিধান অক্ষম হৈ আছে"</string>
+    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"অভিধান সেৱাৰ লগত সংযোগ কৰোঁতে সমস্যাৰ সৃষ্টি হৈছে"</string>
+    <string name="no_dictionaries_available" msgid="8039920716566132611">"কোনো অভিধান নাই"</string>
+    <string name="check_for_updates_now" msgid="8087688440916388581">"ৰিফ্ৰেশ্ব কৰক"</string>
+    <string name="last_update" msgid="730467549913588780">"অন্তিমবাৰ আপডেট কৰা হৈছিল"</string>
+    <string name="message_updating" msgid="4457761393932375219">"আপডেট আছে নেকি পৰীক্ষা কৰি থকা হৈছে"</string>
+    <string name="message_loading" msgid="5638680861387748936">"ল\'ড হৈ আছে…"</string>
+    <string name="main_dict_description" msgid="3072821352793492143">"মুখ্য অভিধান"</string>
+    <string name="cancel" msgid="6830980399865683324">"বাতিল কৰক"</string>
+    <string name="go_to_settings" msgid="3876892339342569259">"ছেটিংসমূহ"</string>
+    <string name="install_dict" msgid="180852772562189365">"ইনষ্টল কৰক"</string>
+    <string name="cancel_download_dict" msgid="7843340278507019303">"বাতিল কৰক"</string>
+    <string name="delete_dict" msgid="756853268088330054">"মচক"</string>
+    <!-- no translation found for should_download_over_metered_prompt (6737084685073734292) -->
+    <skip />
+    <string name="download_over_metered" msgid="1643065851159409546">"এতিয়াই ডাউনল\'ড কৰক (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>এম. বি.)"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"ৱাই-ফাইৰ যোগেৰে ডাউনল\'ড কৰক"</string>
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>ৰ বাবে এখন অভিধান উপলব্ধ"</string>
+    <string name="dict_available_notification_description" msgid="1075194169443163487">"সমীক্ষা আৰু ডাউনল\'ড কৰিবলৈ হেঁচক"</string>
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"ডাউনল\'ড কৰি থকা হৈছে: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>ৰ বাবে পৰামৰ্শবোৰ সোনকালে সাজু হ\'ব।"</string>
+    <string name="version_text" msgid="2715354215568469385">"সংস্কৰণ <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
+    <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"যোগ কৰক"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"অভিধানত যোগ কৰক"</string>
+    <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"বাক্যাংশ"</string>
+    <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"অধিক বিকল্প"</string>
+    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"কম বিকল্প"</string>
+    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"ঠিক আছে"</string>
+    <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"শব্দ:"</string>
+    <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"শ্বৰ্টকাট:"</string>
+    <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"ভাষা:"</string>
+    <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"কোনো শব্দ লিখক"</string>
+    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"ঐচ্ছিক শ্বৰ্টকাট"</string>
+    <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"শব্দ সম্পাদনা কৰক"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"সম্পাদনা কৰক"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"মচক"</string>
+    <!-- no translation found for user_dict_settings_empty_text (6889278304342592383) -->
+    <skip />
+    <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"সকলো ভাষাৰ বাবে"</string>
+    <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"অধিক ভাষা…"</string>
+    <string name="user_dict_settings_delete" msgid="110413335187193859">"মচক"</string>
+    <string name="user_dict_fast_scroll_alphabet" msgid="5431919401558285473">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
+</resources>
diff --git a/java/res/values-b+sr+Latn/strings-talkback-descriptions.xml b/java/res/values-b+sr+Latn/strings-talkback-descriptions.xml
index 556b5ab..114dcf1 100644
--- a/java/res/values-b+sr+Latn/strings-talkback-descriptions.xml
+++ b/java/res/values-b+sr+Latn/strings-talkback-descriptions.xml
@@ -46,7 +46,7 @@
     <string name="spoken_description_dot" msgid="5644176501632325560">"Tačka"</string>
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"Prebaci jezik"</string>
     <string name="spoken_description_action_next" msgid="431761808119616962">"Prethodno"</string>
-    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Sledeće"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Nazad"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift je omogućen"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock je omogućen"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Režim simbola"</string>
diff --git a/java/res/values-bn/strings-talkback-descriptions.xml b/java/res/values-bn/strings-talkback-descriptions.xml
index 1d438bd..ff7b0d8 100644
--- a/java/res/values-bn/strings-talkback-descriptions.xml
+++ b/java/res/values-bn/strings-talkback-descriptions.xml
@@ -42,7 +42,7 @@
     <string name="spoken_description_mic" msgid="6153138783813452464">"ভয়েস ইনপুট"</string>
     <string name="spoken_description_emoji" msgid="7990051553008088470">"ইমোজি"</string>
     <string name="spoken_description_return" msgid="3183692287397645708">"ফেরত যান"</string>
-    <string name="spoken_description_search" msgid="5099937658231911288">"অনুসন্ধান"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"সার্চ"</string>
     <string name="spoken_description_dot" msgid="5644176501632325560">"ডট"</string>
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"ভাষা স্যুইচ করুন"</string>
     <string name="spoken_description_action_next" msgid="431761808119616962">"পরবর্তী"</string>
@@ -76,7 +76,7 @@
     <string name="spoken_descrption_emoji_category_eight_animals_nature" msgid="5844950234883716704">"জীবজন্তু ও প্রকৃতি"</string>
     <string name="spoken_descrption_emoji_category_eight_food_drink" msgid="6196944764485349650">"খাদ্য ও পানীয়"</string>
     <string name="spoken_descrption_emoji_category_eight_travel_places" msgid="3834085499381434611">"ভ্রমণ ও স্থানগুলি"</string>
-    <string name="spoken_descrption_emoji_category_eight_activity" msgid="4795281669042975993">"কার্যকলাপ"</string>
+    <string name="spoken_descrption_emoji_category_eight_activity" msgid="4795281669042975993">"অ্যাক্টিভিটি"</string>
     <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"ইমোটিকনগুলি"</string>
     <string name="spoken_description_upper_case" msgid="4904835255229433916">"বড় হাতের <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
     <string name="spoken_letter_0049" msgid="4743162182646977944">"বড় হাতের I"</string>
diff --git a/java/res/values-bn/strings.xml b/java/res/values-bn/strings.xml
index 13569ea..8ba3905 100644
--- a/java/res/values-bn/strings.xml
+++ b/java/res/values-bn/strings.xml
@@ -71,7 +71,7 @@
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"আপত্তিজনক শব্দ অবরোধ করুন"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"সম্ভাব্য অশোভন শব্দ সুপারিশ করবেন না"</string>
     <string name="auto_correction" msgid="7630720885194996950">"স্বত:সংশোধন"</string>
-    <string name="auto_correction_summary" msgid="5625751551134658006">"স্পেসবার ও যতিচিহ্ন ভুলভাবে টাইপ করা শব্দ স্বয়ংক্রিয়ভাবে সংশোধন করে"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"স্পেসবার ও যতিচিহ্ন ভুলভাবে টাইপ করা শব্দ অটোমেটিক সংশোধন করে"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"বন্ধ করুন"</string>
     <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"মাঝারি"</string>
     <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"আক্রমণাত্মক"</string>
@@ -123,17 +123,17 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"বর্ণমালা (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ইমোজি"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"কীবোর্ড থিম"</string>
-    <string name="custom_input_styles_title" msgid="8429952441821251512">"কাস্টম ইনপুট শৈলীগুলি"</string>
-    <string name="add_style" msgid="6163126614514489951">"শৈলী জুড়ুন"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"কাস্টম ইনপুট স্টাইলগুলি"</string>
+    <string name="add_style" msgid="6163126614514489951">"স্টাইল জুড়ুন"</string>
     <string name="add" msgid="8299699805688017798">"জুড়ুন"</string>
     <string name="remove" msgid="4486081658752944606">"সরান"</string>
     <string name="save" msgid="7646738597196767214">"সেভ করুন"</string>
     <string name="subtype_locale" msgid="8576443440738143764">"ভাষা"</string>
     <string name="keyboard_layout_set" msgid="4309233698194565609">"লেআউট"</string>
-    <string name="custom_input_style_note_message" msgid="8826731320846363423">"আপনার কাস্টম ইনপুট শৈলী ব্যবহার শুরু করার আগে এটি সক্ষম করা প্রয়োজন। আপনি কি এখন এটি সক্ষম করতে চান?"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"আপনার কাস্টম ইনপুট স্টাইল ব্যবহার শুরু করার আগে এটি সক্ষম করা প্রয়োজন। আপনি কি এখন এটি সক্ষম করতে চান?"</string>
     <string name="enable" msgid="5031294444630523247">"সক্ষম করুন"</string>
     <string name="not_now" msgid="6172462888202790482">"এখন নয়"</string>
-    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"একই ইনপুট শৈলী ইতোমধ্যে বিদ্যমান: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
+    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"একই ইনপুট স্টাইল ইতোমধ্যে বিদ্যমান: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"কীপ্রেস ভাইব্রেট সময়কাল"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"কীপ্রেস সাউন্ড ভলিউম"</string>
     <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"কী প্রেসে দীর্ঘ বিলম্ব"</string>
@@ -183,7 +183,7 @@
     <string name="install_dict" msgid="180852772562189365">"ইনস্টল করুন"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"বাতিল করুন"</string>
     <string name="delete_dict" msgid="756853268088330054">"মুছুন"</string>
-    <string name="should_download_over_metered_prompt" msgid="6737084685073734292">"আপনার মোবাইল ডিভাইসে নির্বাচিত ভাষার জন্য একটি অভিধান উপলভ্য আছে। &lt;br/&gt; আপনার টাইপিং এর অভিজ্ঞতা ভালো করার জন্য আমরা <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> অভিধান &lt;b&gt;ডাউনলোড করার&lt;/b&gt; পরামর্শ দিই। &lt;br/&gt; &lt;br/&gt; 3G-র মাধ্যমে ডাউনলোড হতে এক বা দুই মিনিট সময় লাগতে পারে। আপনার কাছে কোন &lt;b&gt;আনলিমিটেড ডেটা প্ল্যান&lt;/b&gt;.&lt;br/&gt; না থাকলে চার্জ প্রযোজ্য হতে পারে, আপনার কাছে কোন ডেটা প্ল্যান আছে তা নিয়ে আপনি নিশ্চিত না থাকলে সেক্ষেত্রে আমরা ডাউনলোড স্বয়ংক্রিয়ভাবে শুরু করার জন্য একটি Wi-Fi সংযোগ খোঁজার পরামর্শ দিই। &lt;br/&gt; &lt;br/&gt;টিপ: আপনি আপনার মোবাইল ডিভাইসে &lt;b&gt;সেটিংস&lt;/b&gt; মেনুতে &lt;b&gt;ভাষা এবং ইনপুট&lt;/b&gt; এর মধ্যে গিয়ে অভিধান ডাউনলোড করতে ও মুছতে পারবেন।"</string>
+    <string name="should_download_over_metered_prompt" msgid="6737084685073734292">"আপনার মোবাইল ডিভাইসে নির্বাচিত ভাষার জন্য একটি অভিধান উপলভ্য আছে। &lt;br/&gt; আপনার টাইপিং এর অভিজ্ঞতা ভালো করার জন্য আমরা <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> অভিধান &lt;b&gt;ডাউনলোড করার&lt;/b&gt; পরামর্শ দিই। &lt;br/&gt; &lt;br/&gt; 3G-র মাধ্যমে ডাউনলোড হতে এক বা দুই মিনিট সময় লাগতে পারে। আপনার কাছে কোন &lt;b&gt;আনলিমিটেড ডেটা প্ল্যান&lt;/b&gt;.&lt;br/&gt; না থাকলে চার্জ প্রযোজ্য হতে পারে, আপনার কাছে কোন ডেটা প্ল্যান আছে তা নিয়ে আপনি নিশ্চিত না থাকলে সেক্ষেত্রে আমরা ডাউনলোড অটোমেটিক শুরু করার জন্য একটি Wi-Fi সংযোগ খোঁজার পরামর্শ দিই। &lt;br/&gt; &lt;br/&gt;টিপ: আপনি আপনার মোবাইল ডিভাইসে &lt;b&gt;সেটিংস&lt;/b&gt; মেনুতে &lt;b&gt;ভাষা এবং ইনপুট&lt;/b&gt; এর মধ্যে গিয়ে অভিধান ডাউনলোড করতে ও মুছতে পারবেন।"</string>
     <string name="download_over_metered" msgid="1643065851159409546">"এখন ডাউনলোড করুন (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>মেবা)"</string>
     <string name="do_not_download_over_metered" msgid="2176209579313941583">"ওয়াই-ফাই মাধ্যমে ডাউনলোড করুন"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> ভাষার জন্য একটি অভিধান উপলব্ধ"</string>
diff --git a/java/res/values-bs/strings.xml b/java/res/values-bs/strings.xml
index ee310f3..18a6e84 100644
--- a/java/res/values-bs/strings.xml
+++ b/java/res/values-bs/strings.xml
@@ -26,7 +26,7 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibracija pri pritisku na tipku"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk pri pritisku tipke"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Iskačuči prozor pri pritisku na tipku"</string>
-    <string name="settings_screen_preferences" msgid="2696713156722014624">"Karakteristike"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Postavke"</string>
     <string name="settings_screen_accounts" msgid="2786418968536696670">"Računi i privatnost"</string>
     <string name="settings_screen_appearance" msgid="7358046399111611615">"Izgled i rasporedi tipki"</string>
     <string name="settings_screen_gesture" msgid="8826372746901183556">"Kucanje pokretima"</string>
@@ -38,7 +38,7 @@
     <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinhronizacija je uključena"</string>
     <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sinhronizirajte vlastiti rječnik na svim uređajima"</string>
     <string name="sync_now_title" msgid="3088838136743277721">"Sinhroniziraj sada"</string>
-    <string name="clear_sync_data_title" msgid="8582001557037069154">"Obriši podatke iz oblaka"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Brisanje podataka iz oblaka"</string>
     <string name="clear_sync_data_summary" msgid="993477139012576584">"Briše vaše sinhronizirane podatke s Googlea"</string>
     <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Vaši snihronizirani podaci bit će izbrisani iz oblaka. Sigurno?"</string>
     <string name="clear_sync_data_ok" msgid="613104067705915132">"Izbriši"</string>
@@ -86,7 +86,7 @@
     <string name="gesture_space_aware" msgid="2078291600664682496">"Pokret za fraze"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Klizanjem na tipku za razmak umetni razmake tokom pokreta"</string>
     <string name="voice_input" msgid="3583258583521397548">"Tipka za govorni unos"</string>
-    <string name="voice_input_disabled_summary" msgid="6323489602945135165">"Nisu omogućeni načini za glasovni unos. Provjerite postavke sekcije Jezici i unos."</string>
+    <string name="voice_input_disabled_summary" msgid="6323489602945135165">"Nisu omogućeni načini za glasovni unos. Provjerite postavke odjeljka Jezici i unos."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfiguriraj načine unosa"</string>
     <string name="language_selection_title" msgid="3666971864764478269">"Jezici"</string>
     <string name="help_and_feedback" msgid="5328219371839879161">"Pomoć i povratne informacije"</string>
@@ -146,8 +146,8 @@
     <string name="setup_next_action" msgid="371821437915144603">"Sljedeći korak"</string>
     <string name="setup_steps_title" msgid="6400373034871816182">"Postavljanje aplikacije <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_step1_title" msgid="3147967630253462315">"Omogući aplikaciju <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <string name="setup_step1_instruction" msgid="4295448056733329661">"Označite aplikaciju \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" u postavkama sekcije Jezici i unos. Na taj način ćete joj dozvoliti da se pokrene na vašem uređaju."</string>
-    <string name="setup_step1_finished_instruction" msgid="8701441895377434947">"Aplikacija <xliff:g id="APPLICATION_NAME">%s</xliff:g> je već omogućena u vašim postavkama sekcije Jezici i unos, tako da je ovaj korak završen. Pređite na sljedeći!"</string>
+    <string name="setup_step1_instruction" msgid="4295448056733329661">"Označite aplikaciju \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" u postavkama odjeljka Jezici i unos. Na taj način ćete joj dozvoliti da se pokrene na vašem uređaju."</string>
+    <string name="setup_step1_finished_instruction" msgid="8701441895377434947">"Aplikacija <xliff:g id="APPLICATION_NAME">%s</xliff:g> je već omogućena u vašim postavkama odjeljka Jezici i unos, tako da je ovaj korak završen. Pređite na sljedeći!"</string>
     <string name="setup_step1_action" msgid="4366513534999901728">"Omogući u Postavkama"</string>
     <string name="setup_step2_title" msgid="6860725447906690594">"Prebacite se na aplikaciju <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_step2_instruction" msgid="9141481964870023336">"Zatim odaberite aplikaciju \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" kao vaš aktivni način unosa teksta."</string>
@@ -183,9 +183,9 @@
     <string name="install_dict" msgid="180852772562189365">"Instaliraj"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"Otkaži"</string>
     <string name="delete_dict" msgid="756853268088330054">"Izbriši"</string>
-    <string name="should_download_over_metered_prompt" msgid="6737084685073734292">"Za odabrani jezik na vašem uređaju postoji dostupan rječnik.&lt;br/&gt; Predlažemo da &lt;b&gt;preuzmete&lt;/b&gt; rječnik za <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> kako biste poboljšali svoje iskustvo tipkanja.&lt;br/&gt; &lt;br/&gt; Preuzimanje putem 3G mreže može potrajati minut-dva. Mogući su troškovi ukoliko nemate &lt;b&gt;paket s neograničenim prijenosom podataka&lt;/b&gt;.&lt;br/&gt; Ako ne znate koji paket za prijenos podataka imate, preporučujemo da pronađete Wi-Fi mrežu kako biste počeli automatsko preuzimanje.&lt;br/&gt; &lt;br/&gt; Savjet: Rječnike možete preuzimati i uklanjati ako odete na &lt;b&gt;Jezici i unos&lt;/b&gt; u meniju &lt;b&gt;Postavke&lt;/b&gt; na vašem mobilnom uređaju."</string>
+    <string name="should_download_over_metered_prompt" msgid="6737084685073734292">"Za odabrani jezik na vašem uređaju postoji dostupan rječnik.&lt;br/&gt; Predlažemo da &lt;b&gt;preuzmete&lt;/b&gt; rječnik za <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> kako biste poboljšali svoje iskustvo tipkanja.&lt;br/&gt; &lt;br/&gt; Preuzimanje putem 3G mreže može potrajati minut-dva. Mogući su troškovi ukoliko nemate &lt;b&gt;paket s neograničenim prijenosom podataka&lt;/b&gt;.&lt;br/&gt; Ako ne znate koji paket za prijenos podataka imate, preporučujemo da pronađete WiFi mrežu kako biste počeli automatsko preuzimanje.&lt;br/&gt; &lt;br/&gt; Savjet: Rječnike možete preuzimati i uklanjati ako odete na &lt;b&gt;Jezici i unos&lt;/b&gt; u meniju &lt;b&gt;Postavke&lt;/b&gt; na vašem mobilnom uređaju."</string>
     <string name="download_over_metered" msgid="1643065851159409546">"Preuzmi odmah (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
-    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Preuzmi putem Wi-Fi mreže"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Preuzmi putem WiFi mreže"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"Rječnik je dostupan za <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"Pritisnite za pregled i preuzimanje"</string>
     <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Preuzimanje: prijedlozi za <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> bit će uskoro spremni."</string>
diff --git a/java/res/values-ca/strings-emoji-descriptions.xml b/java/res/values-ca/strings-emoji-descriptions.xml
index 4371fc2..86ba6a8 100644
--- a/java/res/values-ca/strings-emoji-descriptions.xml
+++ b/java/res/values-ca/strings-emoji-descriptions.xml
@@ -275,7 +275,7 @@
     <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sortida del sol sobre les muntanyes"</string>
     <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sortida del sol"</string>
     <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Paisatge urbà al vespre"</string>
-    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Posta del sol sobre els edificis"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Posta de sol sobre els edificis"</string>
     <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arc de Sant Martí"</string>
     <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Pont a la nit"</string>
     <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Onada"</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 77ec50e..f183902 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -62,7 +62,7 @@
     <string name="use_double_space_period" msgid="8781529969425082860">"Doble espai per punt"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"Fer dos tocs a la barra d\'espai insereix punt seguit d\'un espai"</string>
     <string name="auto_cap" msgid="1719746674854628252">"Majúscules automàtiques"</string>
-    <string name="auto_cap_summary" msgid="7934452761022946874">"Posa en majúscula la primera paraula de cada frase"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Escriu en majúscula la primera lletra de la primera paraula de cada frase"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Diccionari personal"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"Diccionaris complementaris"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"Diccionari principal"</string>
diff --git a/java/res/values-cs/strings-emoji-descriptions.xml b/java/res/values-cs/strings-emoji-descriptions.xml
index 988abd1..db072c4 100644
--- a/java/res/values-cs/strings-emoji-descriptions.xml
+++ b/java/res/values-cs/strings-emoji-descriptions.xml
@@ -1100,7 +1100,7 @@
     <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Vysokorychlostní vlak s kulatou přídí"</string>
     <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Vlak"</string>
     <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
-    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Železnice"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Městská dráha"</string>
     <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stanice"</string>
     <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvaj"</string>
     <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vagon tramvaje"</string>
diff --git a/java/res/values-da/strings-emoji-descriptions.xml b/java/res/values-da/strings-emoji-descriptions.xml
index e82b06c..e3773c4 100644
--- a/java/res/values-da/strings-emoji-descriptions.xml
+++ b/java/res/values-da/strings-emoji-descriptions.xml
@@ -806,7 +806,7 @@
     <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Udbakke"</string>
     <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Indbakke"</string>
     <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pakke"</string>
-    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mailsymbol"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Mailsymbol"</string>
     <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Indgående kuvert"</string>
     <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Kuvert under pil, der peger nedad"</string>
     <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Lukket postkasse med flaget nede"</string>
diff --git a/java/res/values-da/strings-talkback-descriptions.xml b/java/res/values-da/strings-talkback-descriptions.xml
index 8ee20d3..2974015 100644
--- a/java/res/values-da/strings-talkback-descriptions.xml
+++ b/java/res/values-da/strings-talkback-descriptions.xml
@@ -58,7 +58,7 @@
     <string name="announce_keyboard_mode" msgid="6698257917367823205">"Viser tastatur til <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
     <string name="keyboard_mode_date" msgid="6597407244976713364">"dato"</string>
     <string name="keyboard_mode_date_time" msgid="3642804408726668808">"dato og klokkeslæt"</string>
-    <string name="keyboard_mode_email" msgid="1239682082047693644">"e-mail"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"mail"</string>
     <string name="keyboard_mode_im" msgid="3812086215529493501">"beskeder"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"tal"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"telefonnummer"</string>
diff --git a/java/res/values-de/strings-emoji-descriptions.xml b/java/res/values-de/strings-emoji-descriptions.xml
index bbcd50a..0e4699b 100644
--- a/java/res/values-de/strings-emoji-descriptions.xml
+++ b/java/res/values-de/strings-emoji-descriptions.xml
@@ -227,7 +227,7 @@
     <string name="spoken_emoji_2935" msgid="6198710960720232074">"Pfeil nach rechts und dann im Bogen nach unten"</string>
     <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Schwarzer Pfeil nach links"</string>
     <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Schwarzer Pfeil nach oben"</string>
-    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Schwarzer Pfeil nach unten"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Schwarzer Abwärtspfeil"</string>
     <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Großes schwarzes Quadrat"</string>
     <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Großes weißes Quadrat"</string>
     <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Mittelgroßer weißer Stern"</string>
diff --git a/java/res/values-de/strings-letter-descriptions.xml b/java/res/values-de/strings-letter-descriptions.xml
index 78cf742..92b1d6c 100644
--- a/java/res/values-de/strings-letter-descriptions.xml
+++ b/java/res/values-de/strings-letter-descriptions.xml
@@ -199,7 +199,7 @@
     <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Peso-Zeichen"</string>
     <string name="spoken_symbol_2105" msgid="7289404939366976829">"Per Adresse"</string>
     <string name="spoken_symbol_2192" msgid="827804523596125414">"Pfeil nach rechts"</string>
-    <string name="spoken_symbol_2193" msgid="2659541693445985717">"Pfeil nach unten"</string>
+    <string name="spoken_symbol_2193" msgid="2659541693445985717">"Abwärtspfeil"</string>
     <string name="spoken_symbol_2205" msgid="4457188084269117343">"Leere Menge"</string>
     <string name="spoken_symbol_2206" msgid="4856786565708380687">"Differenzzeichen"</string>
     <string name="spoken_symbol_2264" msgid="5092061257745123554">"Kleiner/gleich"</string>
diff --git a/java/res/values-de/strings-talkback-descriptions.xml b/java/res/values-de/strings-talkback-descriptions.xml
index 17e9c94..7580678 100644
--- a/java/res/values-de/strings-talkback-descriptions.xml
+++ b/java/res/values-de/strings-talkback-descriptions.xml
@@ -29,9 +29,9 @@
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Unbekanntes Zeichen"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Umschalttaste"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Weitere Symbole"</string>
-    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift-Taste"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Umschalttaste-Taste"</string>
     <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symbole"</string>
-    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift-Taste"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Umschalttaste-Taste"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Löschen"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbole"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Buchstaben"</string>
diff --git a/java/res/values-en-rAU/strings-emoji-descriptions.xml b/java/res/values-en-rAU/strings-emoji-descriptions.xml
index b3eb4cc..695dcfe 100644
--- a/java/res/values-en-rAU/strings-emoji-descriptions.xml
+++ b/java/res/values-en-rAU/strings-emoji-descriptions.xml
@@ -1151,7 +1151,7 @@
     <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Children crossing"</string>
     <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Mens symbol"</string>
     <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Womens symbol"</string>
-    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Restroom"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toilet"</string>
     <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Baby symbol"</string>
     <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
     <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Water closet"</string>
diff --git a/java/res/values-en-rCA/strings-emoji-descriptions.xml b/java/res/values-en-rCA/strings-emoji-descriptions.xml
index b3eb4cc..952c27b 100644
--- a/java/res/values-en-rCA/strings-emoji-descriptions.xml
+++ b/java/res/values-en-rCA/strings-emoji-descriptions.xml
@@ -188,7 +188,7 @@
     <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Fuel pump"</string>
     <string name="spoken_emoji_2702" msgid="4005741160717451912">"Black scissors"</string>
     <string name="spoken_emoji_2705" msgid="164605766946697759">"White heavy tick"</string>
-    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Aeroplane"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Airplane"</string>
     <string name="spoken_emoji_2709" msgid="2217319160724311369">"Envelope"</string>
     <string name="spoken_emoji_270A" msgid="508347232762319473">"Raised fist"</string>
     <string name="spoken_emoji_270B" msgid="6640562128327753423">"Raised hand"</string>
@@ -1151,7 +1151,7 @@
     <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Children crossing"</string>
     <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Mens symbol"</string>
     <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Womens symbol"</string>
-    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Restroom"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toilet"</string>
     <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Baby symbol"</string>
     <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
     <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Water closet"</string>
diff --git a/java/res/values-en-rGB/strings-emoji-descriptions.xml b/java/res/values-en-rGB/strings-emoji-descriptions.xml
index b3eb4cc..695dcfe 100644
--- a/java/res/values-en-rGB/strings-emoji-descriptions.xml
+++ b/java/res/values-en-rGB/strings-emoji-descriptions.xml
@@ -1151,7 +1151,7 @@
     <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Children crossing"</string>
     <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Mens symbol"</string>
     <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Womens symbol"</string>
-    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Restroom"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toilet"</string>
     <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Baby symbol"</string>
     <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
     <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Water closet"</string>
diff --git a/java/res/values-en-rIN/strings-emoji-descriptions.xml b/java/res/values-en-rIN/strings-emoji-descriptions.xml
index b3eb4cc..695dcfe 100644
--- a/java/res/values-en-rIN/strings-emoji-descriptions.xml
+++ b/java/res/values-en-rIN/strings-emoji-descriptions.xml
@@ -1151,7 +1151,7 @@
     <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Children crossing"</string>
     <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Mens symbol"</string>
     <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Womens symbol"</string>
-    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Restroom"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toilet"</string>
     <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Baby symbol"</string>
     <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
     <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Water closet"</string>
diff --git a/java/res/values-es/strings-talkback-descriptions.xml b/java/res/values-es/strings-talkback-descriptions.xml
index 139b637..4f79193 100644
--- a/java/res/values-es/strings-talkback-descriptions.xml
+++ b/java/res/values-es/strings-talkback-descriptions.xml
@@ -74,7 +74,7 @@
     <string name="spoken_descrption_emoji_category_flags" msgid="5971573825866381472">"Banderas"</string>
     <string name="spoken_descrption_emoji_category_eight_smiley_people" msgid="5682663819532433464">"Sonrisas y personas"</string>
     <string name="spoken_descrption_emoji_category_eight_animals_nature" msgid="5844950234883716704">"Animales y naturaleza"</string>
-    <string name="spoken_descrption_emoji_category_eight_food_drink" msgid="6196944764485349650">"Alimentación y bebidas"</string>
+    <string name="spoken_descrption_emoji_category_eight_food_drink" msgid="6196944764485349650">"Comer y beber"</string>
     <string name="spoken_descrption_emoji_category_eight_travel_places" msgid="3834085499381434611">"Viajes y sitios"</string>
     <string name="spoken_descrption_emoji_category_eight_activity" msgid="4795281669042975993">"Actividad"</string>
     <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emoticonos"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index ced838e..eab31f5 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -59,15 +59,15 @@
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilizar nombres de contactos para sugerencias y correcciones"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Sugerencias personalizadas"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Mejorar <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <string name="use_double_space_period" msgid="8781529969425082860">"Punto y espacio"</string>
-    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Si tocas dos veces el espacio, se inserta un punto seguido de un espacio"</string>
+    <string name="use_double_space_period" msgid="8781529969425082860">"Doble espacio inserta punto"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Insertar un punto seguido de un espacio al tocar dos veces la barra espaciadora"</string>
     <string name="auto_cap" msgid="1719746674854628252">"Mayúsculas automáticas"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"Escribir la primera letra de cada frase en mayúscula"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Diccionario personal"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"Diccionarios complementarios"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"Diccionario principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Sugerencias de correcciones"</string>
-    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Mostrar las palabras sugeridas mientras se escribe"</string>
+    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Mostrar las palabras sugeridas mientras escribes"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquear palabras ofensivas"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"No sugerir palabras que pueden ser ofensivas"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autocorrección"</string>
diff --git a/java/res/values-et/strings-emoji-descriptions.xml b/java/res/values-et/strings-emoji-descriptions.xml
index 0bd3707..795c7d0 100644
--- a/java/res/values-et/strings-emoji-descriptions.xml
+++ b/java/res/values-et/strings-emoji-descriptions.xml
@@ -818,7 +818,7 @@
     <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Ajaleht"</string>
     <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiiltelefon"</string>
     <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiiiltelefon, millest vasakul on paremnool"</string>
-    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Värinarežiim"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibreerimisrežiim"</string>
     <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobiiltelefon väljas"</string>
     <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Mobiiltelefonid pole lubatud"</string>
     <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antennipostid"</string>
diff --git a/java/res/values-et/strings.xml b/java/res/values-et/strings.xml
index a0bf57d..54de874 100644
--- a/java/res/values-et/strings.xml
+++ b/java/res/values-et/strings.xml
@@ -69,7 +69,7 @@
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Kuva korrigeerimise soovitused"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Kuva sisestamise ajal sõnasoovitusi"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokeeri solvavad sõnad"</string>
-    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ära soovita potentsiaals. solvavaid sõnu"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ära soovita potentsiaalselt solvavaid sõnu"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automaatne korrigeerimine"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Tühik ja kirjavahemärgid parand. autom. kirjavigadega sõnad"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Väljas"</string>
diff --git a/java/res/values-eu/strings-emoji-descriptions.xml b/java/res/values-eu/strings-emoji-descriptions.xml
index 9af7e64..c4a788a 100644
--- a/java/res/values-eu/strings-emoji-descriptions.xml
+++ b/java/res/values-eu/strings-emoji-descriptions.xml
@@ -70,8 +70,8 @@
     <string name="spoken_emoji_24C2" msgid="3948348737566038470">"M letra larri latindarra zirkulu batean"</string>
     <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Karratu beltz txikia"</string>
     <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Karratu zuri txikia"</string>
-    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triangelu beltza gorantz begira"</string>
-    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triangelu beltza ezkerrerantz begira"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triangelu beltza gora begira"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triangelu beltza ezkerrera begira"</string>
     <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Karratu zuri ertaina"</string>
     <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Karratu beltz ertaina"</string>
     <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Karratu zuri txiki-ertaina"</string>
@@ -220,14 +220,14 @@
     <string name="spoken_emoji_2795" msgid="6563954833786162168">"Gehi ikur lodia"</string>
     <string name="spoken_emoji_2796" msgid="5990926508250772777">"Ken ikur lodia"</string>
     <string name="spoken_emoji_2797" msgid="24694184172879174">"Zatiketa ikur lodia"</string>
-    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Gezi beltza eskuinerantz"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Gezi beltza eskuinera"</string>
     <string name="spoken_emoji_27B0" msgid="203395646864662198">"Kiribila"</string>
     <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Kiribil bikoitza"</string>
-    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Gezia eskuinerantz begira eta gero gorantz biratuta"</string>
-    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Gezia eskuinerantz begira eta gero beherantz biratuta"</string>
-    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Gezi beltza ezkerrerantz"</string>
-    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Gezi beltza gorantz"</string>
-    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Gezi beltza beherantz"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Gezia eskuinera begira eta gero gora biratuta"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Gezia eskuinera begira eta gero behera biratuta"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Gezi beltza ezkerrera"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Gezi beltza gora"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Gezi beltza behera"</string>
     <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Karratu beltz handia"</string>
     <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Karratu zuri handia"</string>
     <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Izar zuri ertaina"</string>
@@ -645,10 +645,10 @@
     <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Sudurra"</string>
     <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Ahoa"</string>
     <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Mihia"</string>
-    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Esku zuri baten atzeko aldea, hatz erakuslearekin gorantz seinalatzen duela"</string>
-    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Esku zuri baten atzeko aldea, hatz erakuslearekin beherantz seinalatzen duela"</string>
-    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Esku zuri baten atzeko aldea, hatz erakuslearekin ezkerrerantz seinalatzen duela"</string>
-    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Esku zuri baten atzeko aldea, hatz erakuslearekin eskuinerantz seinalatzen duela"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Esku zuri baten atzeko aldea, hatz erakuslearekin gora seinalatzen duela"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Esku zuri baten atzeko aldea, hatz erakuslearekin behera seinalatzen duela"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Esku zuri baten atzeko aldea, hatz erakuslearekin ezkerrera seinalatzen duela"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Esku zuri baten atzeko aldea, hatz erakuslearekin eskuinera seinalatzen duela"</string>
     <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Ukabila"</string>
     <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Eskua agurtzen"</string>
     <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Ados keinua eskuarekin"</string>
@@ -752,7 +752,7 @@
     <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Lore zuria"</string>
     <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Ehun puntuen ikurra"</string>
     <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Diru-poltsa"</string>
-    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Moneta-trukaketa"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Dibisa-trukaketa"</string>
     <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Dolarraren ikur lodia"</string>
     <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditu-txartela"</string>
     <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Billetea yenaren ikurrarekin"</string>
@@ -833,7 +833,7 @@
     <skip />
     <!-- no translation found for spoken_emoji_1F4FF (6566102135671766103) -->
     <skip />
-    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Elkar gurutzatzen diren geziak eskuinerantz"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Elkar gurutzatzen diren geziak eskuinera"</string>
     <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Erlojuaren noranzkoan doazen zirkulu irekiko gezi horizontalak"</string>
     <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Erlojuaren noranzkoan doazen zirkulu irekiko gezi horizontalak, 1 zenbakiarekin"</string>
     <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Erlojuaren noranzkoan doazen zirkulu irekiko gezi bertikalak"</string>
@@ -846,8 +846,8 @@
     <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Bozgorailua, hiru soinu-uhinekin"</string>
     <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Bateria"</string>
     <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Entxufe elektrikoa"</string>
-    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa ezkerrerantz"</string>
-    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa eskuinerantz"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa ezkerrera"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa eskuinera"</string>
     <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Giltzarrapoa eta bolaluma"</string>
     <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Giltzarrapoa itxita eta giltza"</string>
     <string name="spoken_emoji_1F511" msgid="262319867774655688">"Giltza"</string>
@@ -858,11 +858,11 @@
     <string name="spoken_emoji_1F516" msgid="108097933937925381">"Orri-markatzailea"</string>
     <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Estekaren ikurra"</string>
     <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Aukera-botoia"</string>
-    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"Back\" hitza eta ezkerrerantz gezia gainean"</string>
-    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"End\" hitza eta ezkerrerantz gezia gainean"</string>
-    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"On\" hitza harridura markarekin eta ezkerrerantz gezia gainean"</string>
-    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"Soon\" hitza eta eskuinerantz gezia gainean"</string>
-    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"Top\" hitza eta gorantz gezia gainean"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"Back\" hitza eta ezkerrera gezia gainean"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"End\" hitza eta ezkerrera gezia gainean"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"On\" hitza harridura markarekin eta ezkerrera gezia gainean"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"Soon\" hitza eta eskuinera gezia gainean"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"Top\" hitza eta gora gezia gainean"</string>
     <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Hemezortzi urte beherakorik ez ikurra"</string>
     <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Hamar tekla"</string>
     <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Letra larri latindarren idazketa-ikurra"</string>
@@ -1021,7 +1021,7 @@
     <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Aurpegi irribarretsua poztasun-begiekin"</string>
     <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Janari gozoa dastatzearen aurpegia"</string>
     <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Lasaitasun-aurpegia"</string>
-    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Aurpegi irribarretsua bihotz formako begiekin"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Aurpegi irribarretsua bihotz-formako begiekin"</string>
     <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Aurpegi irribarretsua betaurrekoekin"</string>
     <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Konplizitate irribarreko aurpegia"</string>
     <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Aurpegi neutroa"</string>
diff --git a/java/res/values-eu/strings.xml b/java/res/values-eu/strings.xml
index b63d83e..dfb2c1c 100644
--- a/java/res/values-eu/strings.xml
+++ b/java/res/values-eu/strings.xml
@@ -43,7 +43,7 @@
     <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Datuak hodeitik ezabatuko dira. Ziur hori egin nahi duzula?"</string>
     <string name="clear_sync_data_ok" msgid="613104067705915132">"Ezabatu"</string>
     <string name="cloud_sync_cancel" msgid="5877481252150919037">"Utzi"</string>
-    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Hiztegi pertsonalizatua sinkronizatu egingo da eta Google zerbitzarietan gordeko da babeskopia gisa. Hitzak erabiltzeko maiztasunari buruzko estatistikak bil daitezke produktuak hobetzen laguntzeko. Informazioaren bilketak eta erabilerak "<a href="https://www.google.com/policies/privacy">"Google Pribatutasun-gidalerroak"</a>" gordeko ditu uneoro."</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Hiztegi pertsonalizatua sinkronizatu egingo da eta Google zerbitzarietan gordeko da babeskopia gisa. Hitzak erabiltzeko maiztasunari buruzko estatistikak bil daitezke produktuak hobetzen laguntzeko. Informazioaren bilketak eta erabilerak "<a href="https://www.google.com/policies/privacy">"Google Pribatutasun-gidalerroak"</a>" gordeko ditu une oro."</string>
     <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Eginbidea gaitzeko, gehitu Google kontua gailuan"</string>
     <string name="cloud_sync_summary_disabled_work_profile" msgid="1381770407303129164">"Sinkronizazioa ez dago erabilgarri Google Apps for Business kontuak dituzten gailuetan"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Aldatu idazketa-metodoa"</string>
diff --git a/java/res/values-fa/strings-emoji-descriptions.xml b/java/res/values-fa/strings-emoji-descriptions.xml
index 747bf1a..35139ef 100644
--- a/java/res/values-fa/strings-emoji-descriptions.xml
+++ b/java/res/values-fa/strings-emoji-descriptions.xml
@@ -806,7 +806,7 @@
     <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"سینی صندوق خروجی"</string>
     <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"سینی صندوق ورودی"</string>
     <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"بسته‌بندی"</string>
-    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"نماد رایانامه"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"نماد ایمیل"</string>
     <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"پاکت نامه ورودی"</string>
     <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"پاکت نامه با پیکان‌های رو به پایین در بالا"</string>
     <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"صندوق پستی بسته شده با پرچم پایین آمده"</string>
diff --git a/java/res/values-fa/strings-talkback-descriptions.xml b/java/res/values-fa/strings-talkback-descriptions.xml
index 12b55be..4613d32 100644
--- a/java/res/values-fa/strings-talkback-descriptions.xml
+++ b/java/res/values-fa/strings-talkback-descriptions.xml
@@ -58,7 +58,7 @@
     <string name="announce_keyboard_mode" msgid="6698257917367823205">"در حال نمایش صفحه‌کلید <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
     <string name="keyboard_mode_date" msgid="6597407244976713364">"تاریخ"</string>
     <string name="keyboard_mode_date_time" msgid="3642804408726668808">"تاریخ و زمان"</string>
-    <string name="keyboard_mode_email" msgid="1239682082047693644">"رایانامه"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"ایمیل"</string>
     <string name="keyboard_mode_im" msgid="3812086215529493501">"پیام‌رسانی"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"عدد"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"تلفن"</string>
diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml
index 139e775..d1f7e19 100644
--- a/java/res/values-fr-rCA/strings.xml
+++ b/java/res/values-fr-rCA/strings.xml
@@ -169,7 +169,7 @@
     <string name="default_user_dict_pref_name" msgid="1625055720489280530">"Dictionnaire personnel"</string>
     <string name="dictionary_available" msgid="4728975345815214218">"Dictionnaire disponible"</string>
     <string name="dictionary_downloading" msgid="2982650524622620983">"Téléchargement en cours…"</string>
-    <string name="dictionary_installed" msgid="8081558343559342962">"Installé"</string>
+    <string name="dictionary_installed" msgid="8081558343559342962">"Installés"</string>
     <string name="dictionary_disabled" msgid="8950383219564621762">"Installé, désactivé"</string>
     <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"Pas de service dico."</string>
     <string name="no_dictionaries_available" msgid="8039920716566132611">"Aucun dictionnaire"</string>
@@ -204,7 +204,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Modifier le mot"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Modifier"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Supprimer"</string>
-    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Votre dictionnaire personnel ne contient aucun mot. Pour ajouter un mot, touchez le bouton d\'ajout (« + »)."</string>
+    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Votre dictionnaire personnel ne contient aucun mot. Pour ajouter un mot, touchez le bouton d\'ajout (+)."</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"Pour toutes les langues"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"Plus de langues…"</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"Supprimer"</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index f8490b2..9e42ecc 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -74,7 +74,7 @@
     <string name="auto_correction_summary" msgid="5625751551134658006">"Corriger l\'orthographe (pression sur barre espace/signes ponctuation)"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Désactiver"</string>
     <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Simple"</string>
-    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Proactive"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Forcée"</string>
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Très proactive"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"Suggestions pour mot suivant"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"Utiliser le mot précédent pour les suggestions"</string>
diff --git a/java/res/values-gl/strings.xml b/java/res/values-gl/strings.xml
index 2f5f134..354f31d 100644
--- a/java/res/values-gl/strings.xml
+++ b/java/res/values-gl/strings.xml
@@ -157,7 +157,7 @@
     <string name="setup_step3_action" msgid="600879797256942259">"Configurar idiomas adicionais"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Finalizado"</string>
     <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar icona da aplicación"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostra a icona da aplicación no menú de aplicacións"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostra a icona da aplicación no Launcher"</string>
     <string name="app_name" msgid="6320102637491234792">"Fornecedor do dicionario"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Fornecedor do dicionario"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Servizo de dicionario"</string>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index 3e71425..4f6d372 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -156,7 +156,7 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"अब आप <xliff:g id="APPLICATION_NAME">%s</xliff:g> के साथ अपने सभी पसंदीदा ऐप्स  में लिख सकते हैं."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"अतिरिक्त भाषाएं कॉन्फ़िगर करें"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"समाप्त"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ऐप आइकॉन दिखाएं"</string>
+    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ऐप्लिकेशन का आइकॉन दिखाएं"</string>
     <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"लॉन्चर में ऐप आइकॉन दिखाएं"</string>
     <string name="app_name" msgid="6320102637491234792">"डिक्‍शनरी प्रदाता"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"डिक्‍शनरी प्रदाता"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index d5f72c2..57c1692 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -79,7 +79,7 @@
     <string name="bigram_prediction" msgid="1084449187723948550">"Prijedlozi za sljedeću riječ"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"Koristi se prethodnom riječi u izradi prijedloga"</string>
     <string name="gesture_input" msgid="826951152254563827">"Omogući pisanje kretnjama"</string>
-    <string name="gesture_input_summary" msgid="9180350639305731231">"Unesi riječ klizanjem preko slova"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"Unesite riječ klizanjem preko slova"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"Prikaži trag pokreta"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Dinamički plutajući pregled"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Vidi predloženu riječ tijekom pokreta"</string>
diff --git a/java/res/values-hy/strings.xml b/java/res/values-hy/strings.xml
index 3d9b39f..5e2568c 100644
--- a/java/res/values-hy/strings.xml
+++ b/java/res/values-hy/strings.xml
@@ -59,10 +59,10 @@
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Օգտագործել կոնտակտների անունները՝ առաջարկների և ուղղումների համար"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Անհատականացված առաջարկներ"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Բարելավել <xliff:g id="APPLICATION_NAME">%s</xliff:g>-ը"</string>
-    <string name="use_double_space_period" msgid="8781529969425082860">"Կրկնաբացակի վերջակետ"</string>
-    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Բացակի ստեղնի կրկնակի հպումը բացակից հետո վերջակետ է դնում"</string>
+    <string name="use_double_space_period" msgid="8781529969425082860">"Կրկնաբացատով վերջակետ"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Բացատի ստեղնի կրկնակի հպումը բացատից հետո վերջակետ է դնում"</string>
     <string name="auto_cap" msgid="1719746674854628252">"Ավտոմատ գլխատառացում"</string>
-    <string name="auto_cap_summary" msgid="7934452761022946874">"Գլխատառել յուրաքանչյուր նախադասության առաջին բառը"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Մեծատառով գրել յուրաքանչյուր նախադասության առաջին բառը"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Անհատական բառարան"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"Հավելյալ բառարաններ"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"Հիմնական բառարան"</string>
@@ -79,7 +79,7 @@
     <string name="bigram_prediction" msgid="1084449187723948550">"Հաջորդ բառի առաջարկներ"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"Առաջարկներ կազմելու համար օգտագործել նախորդ բառը"</string>
     <string name="gesture_input" msgid="826951152254563827">"Միացնել ժեստերով մուտքագրումը"</string>
-    <string name="gesture_input_summary" msgid="9180350639305731231">"Մուտքագրեք բառ` սահեցնելով տառերը"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"Մուտքագրեք բառ` մատը տառից տառ սահեցնելով"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"Ցույց տալ ժեստի հետագիծը"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Դինամիկ սահող նախատեսք"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Տեսեք առաջարկված բառը՝ ժեստի միջոցով"</string>
@@ -157,7 +157,7 @@
     <string name="setup_step3_action" msgid="600879797256942259">"Կարգավորել լրացուցիչ լեզուները"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Ավարտված"</string>
     <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Ցույց տալ հավելվածի պատկերակը"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Ցուցադրել հավելվածի պատկերակը թողարկչում"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Ցուցադրել հավելվածի պատկերակը գործարկիչում"</string>
     <string name="app_name" msgid="6320102637491234792">"Բառարանի մատակարար"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Բառարանի մատակարար"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Բառարանի ծառայություն"</string>
diff --git a/java/res/values-in/strings-emoji-descriptions.xml b/java/res/values-in/strings-emoji-descriptions.xml
index 1e87027..4b6b410 100644
--- a/java/res/values-in/strings-emoji-descriptions.xml
+++ b/java/res/values-in/strings-emoji-descriptions.xml
@@ -1082,7 +1082,7 @@
     <!-- no translation found for spoken_emoji_1F644 (446284817942609022) -->
     <skip />
     <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Wajah dengan isyarat tidak setuju"</string>
-    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Wajah dengan isyarat oke"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Wajah dengan gestur oke"</string>
     <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Orang yang membungkuk dalam-dalam"</string>
     <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Monyet menutup mata"</string>
     <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Monyet menutup telinga"</string>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index 22a3c80..7061c40 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -29,7 +29,7 @@
     <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferensi"</string>
     <string name="settings_screen_accounts" msgid="2786418968536696670">"Akun &amp; Privasi"</string>
     <string name="settings_screen_appearance" msgid="7358046399111611615">"Tampilan &amp; Tata Letak"</string>
-    <string name="settings_screen_gesture" msgid="8826372746901183556">"Ketikan Isyarat"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Ketikan Gestur"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Koreksi teks"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
@@ -43,7 +43,7 @@
     <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Data yang disinkronkan akan dihapus dari awan. Anda yakin?"</string>
     <string name="clear_sync_data_ok" msgid="613104067705915132">"Hapus"</string>
     <string name="cloud_sync_cancel" msgid="5877481252150919037">"Batal"</string>
-    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Kamus pribadi akan disinkronkan dan dicadangkan ke server Google. Informasi statistik tentang frekuensi kata dapat dikumpulkan untuk membantu menyempurnakan produk kami. Pengumpulan dan penggunaan data tunduk pada "<a href="https://www.google.com/policies/privacy">"Kebijakan Privasi Google"</a>"."</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Kamus pribadi akan disinkronkan dan di-backup ke server Google. Informasi statistik tentang frekuensi kata dapat dikumpulkan untuk membantu menyempurnakan produk kami. Pengumpulan dan penggunaan data tunduk pada "<a href="https://www.google.com/policies/privacy">"Kebijakan Privasi Google"</a>"."</string>
     <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Tambahkan akun Google ke perangkat ini untuk mengaktifkan fitur ini"</string>
     <string name="cloud_sync_summary_disabled_work_profile" msgid="1381770407303129164">"Sinkronisasi tidak tersedia untuk perangkat yang memiliki akun Google Apps for Business"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Beralih ke metode masukan lain"</string>
@@ -78,12 +78,12 @@
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Sangat agresif"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"Saran kata berikutnya"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"Gunakan kata sebelumnya dalam membuat saran"</string>
-    <string name="gesture_input" msgid="826951152254563827">"Aktifkan pengetikan isyarat"</string>
+    <string name="gesture_input" msgid="826951152254563827">"Aktifkan pengetikan gestur"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"Masukkan kata dengan menggeser huruf ke kanan/kiri"</string>
-    <string name="gesture_preview_trail" msgid="3802333369335722221">"Tampilkan jejak isyarat"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"Tampilkan jejak gestur"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Pratinjau mengambang dinamis"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Lihat kata yang disarankan saat melakukan isyarat"</string>
-    <string name="gesture_space_aware" msgid="2078291600664682496">"Isyarat frasa"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"Gesture frasa"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Masukkan spasi dalam isyarat dengan meluncur ke tombol spasi"</string>
     <string name="voice_input" msgid="3583258583521397548">"Tombol masukan suara"</string>
     <string name="voice_input_disabled_summary" msgid="6323489602945135165">"Tidak ada metode masukan suara yang diaktifkan. Periksa setelan Bahasan &amp; masukan."</string>
@@ -91,8 +91,8 @@
     <string name="language_selection_title" msgid="3666971864764478269">"Bahasa"</string>
     <string name="help_and_feedback" msgid="5328219371839879161">"Bantuan &amp; masukan"</string>
     <string name="select_language" msgid="5709487854987078367">"Bahasa"</string>
-    <string name="hint_add_to_dictionary" msgid="2645988432867033007">"Ketuk sekali lagi untuk menyimpan"</string>
-    <string name="hint_add_to_dictionary_without_word" msgid="6710206006427574423">"Ketuk di sini untuk menyimpan"</string>
+    <string name="hint_add_to_dictionary" msgid="2645988432867033007">"Tap sekali lagi untuk menyimpan"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="6710206006427574423">"Tap di sini untuk menyimpan"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Kamus yang tersedia"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema keyboard"</string>
     <string name="switch_accounts" msgid="3321216593719006162">"Beralih akun"</string>
@@ -141,7 +141,7 @@
     <string name="prefs_enable_emoji_alt_physical_key_summary" msgid="5259484820941627827">"Tombol Alt fisik menampilkan palet emoji"</string>
     <string name="button_default" msgid="3988017840431881491">"Default"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Selamat datang di <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"dengan Ketikan Isyarat"</string>
+    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"dengan Ketikan Gestur"</string>
     <string name="setup_start_action" msgid="8936036460897347708">"Memulai"</string>
     <string name="setup_next_action" msgid="371821437915144603">"Langkah berikutnya"</string>
     <string name="setup_steps_title" msgid="6400373034871816182">"Menyiapkan <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
@@ -204,7 +204,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Edit kata"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Edit"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Hapus"</string>
-    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Tidak ada kata-kata dalam kamus pengguna. Untuk menambahkan kata, ketuk tombol Tambahkan (+)."</string>
+    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Tidak ada kata-kata dalam kamus pengguna. Untuk menambahkan kata, tap tombol Tambahkan (+)."</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"Untuk semua bahasa"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"Bahasa lainnya..."</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"Hapus"</string>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 73a2961..11af2b8 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -157,7 +157,7 @@
     <string name="setup_step3_action" msgid="600879797256942259">"Configura altre lingue"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Terminato"</string>
     <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostra icona app"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostra l\'icona dell\'app in Avvio applicazioni"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostra l\'icona dell\'app in Avvio app"</string>
     <string name="app_name" msgid="6320102637491234792">"Dictionary Provider"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Dictionary Provider"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Servizio dizionario"</string>
diff --git a/java/res/values-kk/strings-emoji-descriptions.xml b/java/res/values-kk/strings-emoji-descriptions.xml
index 989c645..8d6c438 100644
--- a/java/res/values-kk/strings-emoji-descriptions.xml
+++ b/java/res/values-kk/strings-emoji-descriptions.xml
@@ -249,7 +249,7 @@
     <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Шаршыдағы ID"</string>
     <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Шаршыдағы «new»"</string>
     <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Шаршыдағы «N G»"</string>
-    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Шаршыдағы «OK»"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Шаршыдағы «Жарайды»"</string>
     <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Шаршыдағы «SOS»"</string>
     <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Шаршыдағы «Up» және леп белгісі"</string>
     <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Шаршыдағы «vs»"</string>
diff --git a/java/res/values-kk/strings.xml b/java/res/values-kk/strings.xml
index 275300d..b7da51b 100644
--- a/java/res/values-kk/strings.xml
+++ b/java/res/values-kk/strings.xml
@@ -31,7 +31,7 @@
     <string name="settings_screen_appearance" msgid="7358046399111611615">"Сыртқы түр және орналасулар"</string>
     <string name="settings_screen_gesture" msgid="8826372746901183556">"Қимыл арқылы теру"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Мәтінді түзету"</string>
-    <string name="settings_screen_advanced" msgid="7472408607625972994">"Кеңейтілген"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Қосымша"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Тақырып"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Бөлінген пернетақтаны қосу"</string>
     <string name="cloud_sync_title" msgid="8579271074443847055">"Google пернетақтасын синхрондау"</string>
@@ -54,21 +54,21 @@
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Кідіріс жоқ"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Әдепкі"</string>
     <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g>мс"</string>
-    <string name="settings_system_default" msgid="6268225104743331821">"Жүйе әдепкісі"</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"Жүйенің әдепкі мәні"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"Контакт аттарын ұсыну"</string>
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Ұсыныстар мен түзетулер үшін контакт аттарын пайдалану"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Жекелендірілген ұсыныстар"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> жақсарту"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"Нүкте мен бос орын қою"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"Бос орын пернесін екі рет түртсе, нүкте мен бос орын қойылады"</string>
-    <string name="auto_cap" msgid="1719746674854628252">"Авто бас әріптерге түрлендіру"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"Автоматты бас әріпке ауыстыру"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"Әрбір сөйлемнің бірінші әріпін бас әріпке түрлендіру"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Жеке сөздік"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"Қосымша сөздіктер"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"Негізгі сөздік"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Түзету ұсыныстарын көрсету"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Теру кезінде ұсынылған сөздерді көрсету"</string>
-    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Қорлаушы сөздерді тыю"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Балағат сөздерге тыйым салу"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Қорлаушы сөздерді ұсынбау"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Авто түзету"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Бос орын және тыныс белгі автоматты түрде қателерді түзетеді"</string>
@@ -157,7 +157,7 @@
     <string name="setup_step3_action" msgid="600879797256942259">"Қосымша тілдерді теңшеу"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Аяқталған"</string>
     <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Қолданба белгішесін көрсету"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Іске қосу құралындағы қолданба белгішесін көрсету"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Іске қосу құралында қолданба белгішесін көрсету"</string>
     <string name="app_name" msgid="6320102637491234792">"Сөздік провайдері"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Сөздік провайдері"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Сөздік қызметі"</string>
diff --git a/java/res/values-km/strings.xml b/java/res/values-km/strings.xml
index d5dce2a..71a185d 100644
--- a/java/res/values-km/strings.xml
+++ b/java/res/values-km/strings.xml
@@ -156,8 +156,8 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ឥឡូវ​​អ្នក​អាច​​វាយ​បញ្ចូល​នៅ​ក្នុង​​កម្មវិធី​​ពេញ​ចិត្ត​របស់​អ្នក​ទាំងអស់​ជាមួយ <xliff:g id="APPLICATION_NAME">%s</xliff:g> ។"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"កំណត់​រចនា​សម្ព័ន្ធ​ភាសា​បន្ថែម"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"បាន​បញ្ចប់"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"បង្ហាញ​រូប​តំណាង​កម្មវិធី"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"បង្ហាញ​រូប​តំណាង​កម្មវិធី​នៅ​ក្នុង​កម្ម​​វិធី​ចាប់ផ្ដើម"</string>
+    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"បង្ហាញ​រូប​កម្មវិធី"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"បង្ហាញ​រូប​កម្មវិធី​នៅ​ក្នុង​កម្ម​​វិធី​ចាប់ផ្ដើម"</string>
     <string name="app_name" msgid="6320102637491234792">"កម្មវិធី​ផ្ដល់​វចនានុក្រម"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"កម្មវិធី​ផ្ដល់​វចនានុក្រម"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"សេវាកម្ម​​វចនានុក្រម"</string>
diff --git a/java/res/values-kn/strings.xml b/java/res/values-kn/strings.xml
index 924f059..45f05ab 100644
--- a/java/res/values-kn/strings.xml
+++ b/java/res/values-kn/strings.xml
@@ -80,7 +80,7 @@
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"ಸಲಹೆಗಳನ್ನು ಮಾಡುವಾಗ ಹಿಂದಿನ ಪದವನ್ನು ಬಳಸು"</string>
     <string name="gesture_input" msgid="826951152254563827">"ಗೆಶ್ಚರ್ ಟೈಪಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸು"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"ಅಕ್ಷರಗಳ ಮೇಲೆ ಸರಿಸುವ ಮೂಲಕ ಪದವೊಂದನ್ನು ನಮೂದಿಸಿ"</string>
-    <string name="gesture_preview_trail" msgid="3802333369335722221">"ಗೆಶ್ಚರ್ ಟ್ರಯಲ್ ತೋರಿಸು"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"ಗೆಶ್ಚರ್ ಟ್ರೇಲ್ ತೋರಿಸು"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"ಡೈನಮಿಕ್ ಫ್ಲೋಟಿಂಗ್ ಪೂರ್ವವೀಕ್ಷಣೆ"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"ಗೆಸ್ಟರ್ ಮಾಡುವಾಗ ಸೂಚಿಸಿದ ಪದವನ್ನು ನೋಡಿ"</string>
     <string name="gesture_space_aware" msgid="2078291600664682496">"ಪದಗುಚ್ಛದ ಗೆಶ್ಚರ್"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index 5f2fb8e..90fec1b 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -60,7 +60,7 @@
     <string name="use_personalized_dicts" msgid="5167396352105467626">"맞춤 추천 검색어"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> 개선"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"더블스페이스 마침표"</string>
-    <string name="use_double_space_period_summary" msgid="6532892187247952799">"스페이스바를 두 번 탭하면 마침표와 공백 한 개가 삽입됩니다."</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"스페이스바를 두 번 탭하면 마침표와 공백 한 개가 삽입됨"</string>
     <string name="auto_cap" msgid="1719746674854628252">"자동 대문자화"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"문장의 첫 단어를 대문자로 표시"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"개인 사전"</string>
diff --git a/java/res/values-ky/strings.xml b/java/res/values-ky/strings.xml
index c6be21a..59ef363 100644
--- a/java/res/values-ky/strings.xml
+++ b/java/res/values-ky/strings.xml
@@ -24,7 +24,7 @@
     <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"Байланыш ысымдарын издөө"</string>
     <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"Орфография текшерилип жатканда байланыштар тизмеси колдонулат"</string>
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Баскыч басылганда дирилдесин"</string>
-    <string name="sound_on_keypress" msgid="6093592297198243644">"Баскыч басылганда чыккан үн"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"Баскычты басканда үн чыгат"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Баскыч басылганда калкып чыкма"</string>
     <string name="settings_screen_preferences" msgid="2696713156722014624">"Мүмкүнчүлүктөрдү тандоо"</string>
     <string name="settings_screen_accounts" msgid="2786418968536696670">"Каттоо эсептери жана купуялык"</string>
@@ -69,7 +69,7 @@
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Оңдоо сунуштары көрсөтүлсүн"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Терүү учурунда сунушталган сөздөрдү көрсөтүү"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Адепсиз сөздөрдү бөгөттө"</string>
-    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Адепсиз сөздөр сунушталбасын"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Адепсиз сөздөр сунушталбайт"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Авто оңдоо"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Боштук жана тыныш белгиси автоматтык түрдө туура эмес терилген сөздөрдү оңдойт"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Өчүк"</string>
@@ -79,7 +79,7 @@
     <string name="bigram_prediction" msgid="1084449187723948550">"Кийинки сөздү сунуштоо"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"Сунуштоодо мурунку сөздү пайдалануу"</string>
     <string name="gesture_input" msgid="826951152254563827">"Жаңсап терүүнү иштетүү"</string>
-    <string name="gesture_input_summary" msgid="9180350639305731231">"Тамгаларды сүрүп сөз киргизүү"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"Сөздү тамгаларды сүрүп киргизесиз"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"Жаңсоо изи көрүнүп турсун"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Динамикалык калкыма алдын-ала көрүү"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Жаңсалганда сунушталган сөздү көрүү"</string>
@@ -157,7 +157,7 @@
     <string name="setup_step3_action" msgid="600879797256942259">"Кошумча тилдерди конфигурациялоо"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Аяктады"</string>
     <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Колдонмонун сүрөтчөсүн көрсөтүү"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Колдонмонун сүрөтчөсүн иштетүү тактасында көрсөтүү"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Колдонмонун сүрөтчөсү иштетүү тактасында көрүнөт"</string>
     <string name="app_name" msgid="6320102637491234792">"Сөздүк жабдуучусу"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Сөздүк жабдуучусу"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Сөздүк кызматы"</string>
diff --git a/java/res/values-lo/strings.xml b/java/res/values-lo/strings.xml
index 2c37c9a..fc93425 100644
--- a/java/res/values-lo/strings.xml
+++ b/java/res/values-lo/strings.xml
@@ -21,7 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="english_ime_input_options" msgid="3909945612939668554">"ຕົວເລືອກການປ້ອນຂໍ້ມູນ"</string>
-    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"ເບິ່ງທີ່ຊື່ຂອງລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"ຊອກຫາລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
     <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"ໂຕຊ່ວຍສະກົດໃຊ້ຂໍ້ມູນຈາກລາຍການຂອງລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານ"</string>
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"ສັ່ນເຕືອນເມື່ອພິມ"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"ສຽງໃນການກົດປຸ່ມ"</string>
@@ -156,8 +156,8 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ຕອນນີ້ທ່ານສາມາດພິມໃນແອັບຯທີ່ທ່ານມັກໄດ້ທຸກແອັບຯດ້ວຍ <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"ປັບຄ່າພາສາເພີ່ມເຕີມ"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"ສຳເລັດແລ້ວ"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ສະແດງໄອຄອນຂອງແອັບຯ"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"ສະແດງໄອຄອນຂອງແອັບຯໃນ Launcher"</string>
+    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ສະແດງໄອຄອນຂອງແອັບ"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"ສະແດງໄອຄອນຂອງແອັບໃນ Launcher"</string>
     <string name="app_name" msgid="6320102637491234792">"ຜູ່​ສະ​ຫນອງ​ວັດຈະ​ນາ​ນຸ​ກົມ"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ຜູ່​ສະ​ຫນອງ​ວັດຈະ​ນາ​ນຸ​ກົມ"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"ບໍລິການວັດຈະນານຸກົມ"</string>
diff --git a/java/res/values-mk/strings-talkback-descriptions.xml b/java/res/values-mk/strings-talkback-descriptions.xml
index 0955656..44ac433 100644
--- a/java/res/values-mk/strings-talkback-descriptions.xml
+++ b/java/res/values-mk/strings-talkback-descriptions.xml
@@ -64,7 +64,7 @@
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"телефон"</string>
     <string name="keyboard_mode_text" msgid="9138789594969187494">"текст"</string>
     <string name="keyboard_mode_time" msgid="8558297845514402675">"време"</string>
-    <string name="keyboard_mode_url" msgid="8072011652949962550">"УРЛ"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
     <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Неодамнешни"</string>
     <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Луѓе"</string>
     <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Предмети"</string>
diff --git a/java/res/values-ml/strings.xml b/java/res/values-ml/strings.xml
index 6d4ce71..bc1aebc 100644
--- a/java/res/values-ml/strings.xml
+++ b/java/res/values-ml/strings.xml
@@ -78,7 +78,7 @@
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"വളരെ നിർബന്ധിതമായി"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"അടുത്ത-പദ നിർദ്ദേശങ്ങൾ"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"നിർദ്ദേശങ്ങൾ സൃഷ്‌ടിക്കാൻ മുമ്പത്തെ പദം ഉപയോഗിക്കുക"</string>
-    <string name="gesture_input" msgid="826951152254563827">"ജെസ്റ്റർടൈപ്പിംഗ് സജീവമാക്കൂ"</string>
+    <string name="gesture_input" msgid="826951152254563827">"ജെസ്റ്റർടൈപ്പിംഗ് സജീവമാക്കുക"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"അക്ഷരങ്ങളിലൂടെ സ്ലൈഡ് ചെയ്‌തുകൊണ്ട് ഒരു പദം ടൈപ്പുചെയ്യുക"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"വിരൽചലന ട്രെയിൽ കാണിക്കുക"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"ചലനാത്മക ഫ്ലോട്ടിംഗ് പ്രിവ്യൂ"</string>
diff --git a/java/res/values-mn/strings.xml b/java/res/values-mn/strings.xml
index a2efc42..69f9673 100644
--- a/java/res/values-mn/strings.xml
+++ b/java/res/values-mn/strings.xml
@@ -30,7 +30,7 @@
     <string name="settings_screen_accounts" msgid="2786418968536696670">"Хаяг &amp; Нууцлал"</string>
     <string name="settings_screen_appearance" msgid="7358046399111611615">"Харагдах байдал &amp; Зураглал"</string>
     <string name="settings_screen_gesture" msgid="8826372746901183556">"Зангаагаар бичих"</string>
-    <string name="settings_screen_correction" msgid="1616818407747682955">"Текст залруулалт"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Текст засварлах"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Дэлгэрэнгүй"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Загвар"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Хуваагдмал гарыг идэвхжүүлэх"</string>
@@ -135,7 +135,7 @@
     <string name="not_now" msgid="6172462888202790482">"Одоо биш"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ижилхэн оруулах загвар байна: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Товч дарах чичиргээний хугацаа"</string>
-    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Товчны дууны хэмжээ"</string>
+    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Товчны дууны түвшин"</string>
     <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Товчны удаан даралтын тохиргоо"</string>
     <string name="prefs_enable_emoji_alt_physical_key" msgid="5963640002335470112">"Бодит гарт зориулсан эможи"</string>
     <string name="prefs_enable_emoji_alt_physical_key_summary" msgid="5259484820941627827">"Бодит Alt товчлуур нь эможи палитрыг харуулдаг"</string>
diff --git a/java/res/values-mr/strings-emoji-descriptions.xml b/java/res/values-mr/strings-emoji-descriptions.xml
index 07b5b50..373ef29 100644
--- a/java/res/values-mr/strings-emoji-descriptions.xml
+++ b/java/res/values-mr/strings-emoji-descriptions.xml
@@ -818,7 +818,7 @@
     <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"वर्तमानपत्र"</string>
     <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"मोबाईल फोन"</string>
     <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"डावीकडे उजवीकडे जाणार्‍या बाणासह मोबाईल फोन"</string>
-    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"कंपन मोड"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"व्हायब्रेट मोड"</string>
     <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"मोबाईल फोन बंद"</string>
     <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"मोबाईल फोन नाहीत"</string>
     <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"बार सह अँटेना"</string>
diff --git a/java/res/values-mr/strings.xml b/java/res/values-mr/strings.xml
index a7963ef..d07c72e 100644
--- a/java/res/values-mr/strings.xml
+++ b/java/res/values-mr/strings.xml
@@ -23,7 +23,7 @@
     <string name="english_ime_input_options" msgid="3909945612939668554">"इनपुट पर्याय"</string>
     <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"संपर्क नावे शोधा"</string>
     <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"शब्दलेखन तपासक आपल्या संपर्क सूचीमधील प्रविष्ट्या वापरतो"</string>
-    <string name="vibrate_on_keypress" msgid="5258079494276955460">"की दाबताना कंपन"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"की दाबताना व्हायब्रेट"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"की दाबताना आवाज"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"की दाबताना पॉपअप"</string>
     <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राधान्ये"</string>
@@ -33,19 +33,19 @@
     <string name="settings_screen_correction" msgid="1616818407747682955">"मजकूर दुरुस्ती"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"प्रगत"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"थीम"</string>
-    <string name="enable_split_keyboard" msgid="4177264923999493614">"विभाजित कीबोर्ड सक्षम करा"</string>
-    <string name="cloud_sync_title" msgid="8579271074443847055">"Google कीबोर्ड संकालन"</string>
-    <string name="cloud_sync_summary" msgid="7684887161145650857">"संकालन चालू केले आहे"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"विभाजित कीबोर्ड सुरू करा"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google कीबोर्ड सिंक"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"सिंक चालू केले आहे"</string>
     <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"डिव्‍हाइसेस वरून आपला वैयक्तिक शब्दकोश संकालित करा"</string>
-    <string name="sync_now_title" msgid="3088838136743277721">"आता संकालन करा"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"आता सिंक करा"</string>
     <string name="clear_sync_data_title" msgid="8582001557037069154">"क्लाउड डेटा हटवा"</string>
     <string name="clear_sync_data_summary" msgid="993477139012576584">"Google वरून आपला संकालित केलेला डेटा हटविते"</string>
-    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"आपला संकालित केलेला डेटा मेघवरून हटविला जाईल. आपल्‍याला खात्री आहे?"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"आपला संकालित केलेला डेटा मेघवरून हटवला जाईल. आपल्‍याला खात्री आहे?"</string>
     <string name="clear_sync_data_ok" msgid="613104067705915132">"हटवा"</string>
     <string name="cloud_sync_cancel" msgid="5877481252150919037">"रद्द करा"</string>
-    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"आपली वैयक्तिक डिरेक्टरी Google सर्व्हरवर सिंक केली जाईल आणि बॅकअप घेतला जाईल. आमचे उत्पादन सुधारित करण्यात मदत करण्यासाठी शब्दाच्या वारंवारतेची आकडेवारी माहिती गोळा केली जाऊ शकते. सर्व माहितीचे संकलन आणि वापर "<a href="https://www.google.com/policies/privacy">"Google चे गोपनीयता धोरण"</a>" शी सुसंगत असेल."</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"तुमची वैयक्तिक डिरेक्टरी Google सर्व्हरवर सिंक केली जाईल आणि बॅकअप घेतला जाईल. आमचे उत्पादन सुधारित करण्यात मदत करण्यासाठी शब्दाच्या वारंवारतेची आकडेवारी माहिती गोळा केली जाऊ शकते. सर्व माहितीचे संकलन आणि वापर "<a href="https://www.google.com/policies/privacy">"Google चे गोपनीयता धोरण"</a>" शी सुसंगत असेल."</string>
     <string name="add_account_to_enable_sync" msgid="7836932571852055265">"या डीव्हाइसमध्ये हे वैशिष्ट्य सक्षम करण्यासाठी कृपया एक Google खाते जोडा"</string>
-    <string name="cloud_sync_summary_disabled_work_profile" msgid="1381770407303129164">"Google Apps for Business खात्यांसह डिव्हाइसेससाठी संकालन उपलब्ध नाही"</string>
+    <string name="cloud_sync_summary_disabled_work_profile" msgid="1381770407303129164">"Google Apps for Business खात्यांसह डिव्हाइसेससाठी सिंक उपलब्ध नाही"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट पद्धतींवर स्विच करा"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच की अन्य इनपुट पद्धती देखील समाविष्ट करते"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच की"</string>
@@ -57,7 +57,7 @@
     <string name="settings_system_default" msgid="6268225104743331821">"सिस्टम डीफॉल्ट"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"संपर्क नावे सुचवा"</string>
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"सूचनांसाठी आणि सुधारणांसाठी संपर्कांमधील नावे वापरा"</string>
-    <string name="use_personalized_dicts" msgid="5167396352105467626">"वैयक्तिकृत केलेल्या सूचना"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"पर्सनलाइझ केलेल्या सूचना"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> मध्ये सुधारणा करा"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"डबल-स्पेस पूर्णविरामचिन्ह"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"स्पेसबारवर डबल टॅप केल्याने पूर्णविरामचिन्ह व त्यापाठोपाठ स्पेस घातली जाते"</string>
@@ -70,7 +70,7 @@
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"टाइप करताना सुचविलेले शब्द प्रदर्शित करा"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"आक्षेपार्ह शब्द ब्लॉक करा"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"संभाव्य आक्षेपार्ह शब्द सुचवू नका"</string>
-    <string name="auto_correction" msgid="7630720885194996950">"स्‍वयं-सुधारणा"</string>
+    <string name="auto_correction" msgid="7630720885194996950">"ऑटो-करेक्शन"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"चुकीचे टाइप केलेले शब्द स्पेसबार आणि विरामचिन्हे स्वयंचलितपणे सुधारते"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"बंद"</string>
     <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"मर्यादशील"</string>
@@ -78,7 +78,7 @@
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"खूप आक्रमक"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"पुढील-शब्द सूचना"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"सूचना करताना मागील शब्द वापरा"</string>
-    <string name="gesture_input" msgid="826951152254563827">"जेश्चर टायपिंग सक्षम करा"</string>
+    <string name="gesture_input" msgid="826951152254563827">"जेश्चर टायपिंग सुरू करा"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"अक्षरांमधून स्लायडिंग करून एक शब्द इनपुट करा"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"जेश्चर अनुचिन्ह दर्शवा"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"डायनॅमिक फ्लोटिंग पूर्वावलोकन"</string>
@@ -91,8 +91,8 @@
     <string name="language_selection_title" msgid="3666971864764478269">"भाषा"</string>
     <string name="help_and_feedback" msgid="5328219371839879161">"मदत आणि अभिप्राय"</string>
     <string name="select_language" msgid="5709487854987078367">"भाषा"</string>
-    <string name="hint_add_to_dictionary" msgid="2645988432867033007">"जतन करण्यासाठी पुन्हा टॅप करा"</string>
-    <string name="hint_add_to_dictionary_without_word" msgid="6710206006427574423">"जतन करण्यासाठी येथे टॅप करा"</string>
+    <string name="hint_add_to_dictionary" msgid="2645988432867033007">"सेव्ह करण्यासाठी पुन्हा टॅप करा"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="6710206006427574423">"सेव्ह करण्यासाठी येथे टॅप करा"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"शब्दकोश उपलब्ध"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"कीबोर्ड थीम"</string>
     <string name="switch_accounts" msgid="3321216593719006162">"खाती स्विच करा"</string>
@@ -123,18 +123,18 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"वर्णमाला (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"इमोजी"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"कीबोर्ड थीम"</string>
-    <string name="custom_input_styles_title" msgid="8429952441821251512">"सानुकूल इनपुट शैली"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"कस्टम इनपुट शैली"</string>
     <string name="add_style" msgid="6163126614514489951">"स्टाइल जोडा"</string>
     <string name="add" msgid="8299699805688017798">"जोडा"</string>
     <string name="remove" msgid="4486081658752944606">"काढा"</string>
     <string name="save" msgid="7646738597196767214">"सेव्ह करा"</string>
     <string name="subtype_locale" msgid="8576443440738143764">"भाषा"</string>
     <string name="keyboard_layout_set" msgid="4309233698194565609">"लेआउट"</string>
-    <string name="custom_input_style_note_message" msgid="8826731320846363423">"आपली सानुकूल इनपुट शैली आपण ती वापरणे प्रारंभ करण्यापूर्वी सक्षम करणे आवश्यक आहे. आपण आता ती सक्षम करू इच्‍छिता?"</string>
-    <string name="enable" msgid="5031294444630523247">"सक्षम करा"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"तुमची कस्टम इनपुट शैली तुम्ही ती वापरणे प्रारंभ करण्यापूर्वी सक्षम करणे आवश्यक आहे. तुम्ही आता ती सक्षम करू इच्‍छिता?"</string>
+    <string name="enable" msgid="5031294444630523247">"सुरू करा"</string>
     <string name="not_now" msgid="6172462888202790482">"आता नाही"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"समान इनपुट शैली आधीपासूनच अस्तित्वात आहे: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"की दाबल्यानंतरचा कंपन कालावधी"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"की दाबल्यानंतरचा व्हायब्रेट कालावधी"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"की दाबल्यावर आवाजाची तीव्रता"</string>
     <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"की जास्त दाबण्यात विलंब"</string>
     <string name="prefs_enable_emoji_alt_physical_key" msgid="5963640002335470112">"वास्तविक कीबोर्डसाठी इमोजी"</string>
@@ -145,15 +145,15 @@
     <string name="setup_start_action" msgid="8936036460897347708">"सुरू करा"</string>
     <string name="setup_next_action" msgid="371821437915144603">"पुढील चरण"</string>
     <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> सेट अप करत आहे"</string>
-    <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> सक्षम करा"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> सुरू करा"</string>
     <string name="setup_step1_instruction" msgid="4295448056733329661">"कृपया आपल्या भाषांमध्ये आणि इनपुट सेटिंग्जमध्ये \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" तपासा. आपल्या डिव्हाइसवर चालण्यासाठी त्यास हे अधिकृत करेल."</string>
     <string name="setup_step1_finished_instruction" msgid="8701441895377434947">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> आपल्या भाषांमध्ये आणि इनपुट सेटिंग्जमध्ये आधीपासून सक्षम केला आहे, त्यामुळे हे चरण पूर्ण झाले आहे. पुढील चरणावर!"</string>
-    <string name="setup_step1_action" msgid="4366513534999901728">"सेटिंग्जमध्ये सक्षम करा"</string>
+    <string name="setup_step1_action" msgid="4366513534999901728">"सेटिंग्जमध्ये सुरू करा"</string>
     <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> वर स्विच करा"</string>
-    <string name="setup_step2_instruction" msgid="9141481964870023336">"पुढे, आपली सक्रिय मजकूर-इनपुट पद्धत म्हणून \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" निवडा."</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"पुढे, तुमची सक्रिय मजकूर-इनपुट पद्धत म्हणून \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" निवडा."</string>
     <string name="setup_step2_action" msgid="1660330307159824337">"इनपुट पद्धती स्विच करा"</string>
-    <string name="setup_step3_title" msgid="3154757183631490281">"अभिनंदन, आता आपण तयार आहात!"</string>
-    <string name="setup_step3_instruction" msgid="8025981829605426000">"आता आपण <xliff:g id="APPLICATION_NAME">%s</xliff:g> सह आपल्या सर्व आवडत्या अॅप्समध्ये टाइप करू शकता."</string>
+    <string name="setup_step3_title" msgid="3154757183631490281">"अभिनंदन, आता तुम्ही तयार आहात!"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"आता तुम्ही <xliff:g id="APPLICATION_NAME">%s</xliff:g> सह आपल्या सर्व आवडत्या अॅप्समध्ये टाइप करू शकता."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"अतिरिक्त भाषा कॉन्फिगर करा"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"समाप्त"</string>
     <string name="show_setup_wizard_icon" msgid="5008028590593710830">"अॅप आयकन दर्शवा"</string>
diff --git a/java/res/values-my/strings.xml b/java/res/values-my/strings.xml
index 685dc9b..a7b7f24 100644
--- a/java/res/values-my/strings.xml
+++ b/java/res/values-my/strings.xml
@@ -25,7 +25,7 @@
     <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"စာလုံးပေါင်းစစ်စနစ်က သင့်အဆက်အသွယ်စာရင်းမှ ရယူအသုံးပြုသည်"</string>
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"ခလုတ်နှိပ်သည်နှင့် တုံခါစေပါ"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"ခလုတ်နှိပ်လျှင် အသံမြည်"</string>
-    <string name="popup_on_keypress" msgid="123894815723512944">"ကီးနှိပ်လိုက်သည်နှင့် ပေါ်လာရန်"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"ခလုတ်နှိပ်လိုက်သည်နှင့် ပေါ်လာရန်"</string>
     <string name="settings_screen_preferences" msgid="2696713156722014624">"ရွေးချယ်စရာများ"</string>
     <string name="settings_screen_accounts" msgid="2786418968536696670">"အကောင့်များ &amp; ကိုယ်ပိုင်ကိစ္စ"</string>
     <string name="settings_screen_appearance" msgid="7358046399111611615">"ပုံပန်းသွင်ပြင် &amp; အပြင်အဆင်များ"</string>
@@ -156,7 +156,7 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ဖြင့်သင့် ကြိုက်နှစ်သက်ရာ အပလီကေးရှင်းများအားလုံးအား ရိုက်ထည့်နိုင်ပါပြီ။"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"ထပ်ပေါင်းဘာသာစကားများ ပြုပြင်မည်"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"ပြီးဆုံးသွားပြီ"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"အက်ပ်သင်္ကေတ ပြပါ"</string>
+    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"အက်ပ်သင်္ကေတပြခြင်း"</string>
     <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"launcher တွင် အပလီကေးရှင်း သင်္ကေတကိုပြရန်"</string>
     <string name="app_name" msgid="6320102637491234792">"အဘိဓါန် ထောက်ပံ့သူ"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"အဘိဓါန် ထောက်ပံ့သူ"</string>
diff --git a/java/res/values-ne/strings-emoji-descriptions.xml b/java/res/values-ne/strings-emoji-descriptions.xml
index 2396156..2735db8 100644
--- a/java/res/values-ne/strings-emoji-descriptions.xml
+++ b/java/res/values-ne/strings-emoji-descriptions.xml
@@ -249,7 +249,7 @@
     <string name="spoken_emoji_1F194" msgid="4903128609556175887">"चारपाते ID"</string>
     <string name="spoken_emoji_1F195" msgid="1433142500411060924">"चारपाते नयाँ"</string>
     <string name="spoken_emoji_1F196" msgid="8825160701159634202">"चारपाते N G"</string>
-    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"चारपाते ठीक"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"चारपाते ठिक"</string>
     <string name="spoken_emoji_1F198" msgid="7020298909426960622">"चारपाते SOS"</string>
     <string name="spoken_emoji_1F199" msgid="5971252667136235630">"उद्गार चिन्ह साथ चारपाते"</string>
     <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"चारपाते बिरुद्ध"</string>
@@ -651,7 +651,7 @@
     <string name="spoken_emoji_1F449" msgid="4764447975177805991">"औंला इशारा पछाडिबाट सूचकांक दायाँ"</string>
     <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"मुठी चिन्ह"</string>
     <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"हल्लाएको हात चिन्ह"</string>
-    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"ठीक हात चिन्ह"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"ठिक हात चिन्ह"</string>
     <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"औंठा माथी चिन्ह"</string>
     <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"औंठा तल चिन्ह"</string>
     <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"ताली चिन्ह"</string>
@@ -1082,7 +1082,7 @@
     <!-- no translation found for spoken_emoji_1F644 (446284817942609022) -->
     <skip />
     <string name="spoken_emoji_1F645" msgid="5202090629227587076">"कुनै राम्रो सङ्केत बिना साथ अनुहार"</string>
-    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"ठीक इशारा साथ अनुहार"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"ठिक इशारा साथ अनुहार"</string>
     <string name="spoken_emoji_1F647" msgid="1090285518444205483">"गहिरो निहुरेको व्यक्ति"</string>
     <string name="spoken_emoji_1F648" msgid="8978535230610522356">"हेर्नुहोस्-कुनै-दुष्ट बाँदर"</string>
     <string name="spoken_emoji_1F649" msgid="8486145279809495102">"सुन-कुनै-दुष्ट बाँदर"</string>
diff --git a/java/res/values-ne/strings-talkback-descriptions.xml b/java/res/values-ne/strings-talkback-descriptions.xml
index 4a84386..5d4d131 100644
--- a/java/res/values-ne/strings-talkback-descriptions.xml
+++ b/java/res/values-ne/strings-talkback-descriptions.xml
@@ -72,7 +72,7 @@
     <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"स्थानहरू"</string>
     <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"प्रतिकहरू"</string>
     <string name="spoken_descrption_emoji_category_flags" msgid="5971573825866381472">"झण्डाहरू"</string>
-    <string name="spoken_descrption_emoji_category_eight_smiley_people" msgid="5682663819532433464">"स्माइली र व्यक्तिहरू"</string>
+    <string name="spoken_descrption_emoji_category_eight_smiley_people" msgid="5682663819532433464">"स्माइली र मान्छेहरू"</string>
     <string name="spoken_descrption_emoji_category_eight_animals_nature" msgid="5844950234883716704">"पशुहरू र प्रकृति"</string>
     <string name="spoken_descrption_emoji_category_eight_food_drink" msgid="6196944764485349650">"खाद्य र पेय"</string>
     <string name="spoken_descrption_emoji_category_eight_travel_places" msgid="3834085499381434611">"यात्रा र स्थानहरू"</string>
diff --git a/java/res/values-ne/strings.xml b/java/res/values-ne/strings.xml
index b552dd5..2a70553 100644
--- a/java/res/values-ne/strings.xml
+++ b/java/res/values-ne/strings.xml
@@ -98,7 +98,7 @@
     <string name="switch_accounts" msgid="3321216593719006162">"खाताहरू स्विच गर्नुहोस्"</string>
     <string name="no_accounts_selected" msgid="2073821619103904330">"कुनै खाता चयन गरिएको छैन"</string>
     <string name="account_selected" msgid="2846876462199625974">"हाल प्रयोग गर्दै <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
-    <string name="account_select_ok" msgid="9141195141763227797">"ठीक छ"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ठिक छ"</string>
     <string name="account_select_cancel" msgid="5181012062618504340">"रद्द गर्नुहोस्"</string>
     <string name="account_select_sign_out" msgid="3299651159390187933">"बाहिर निकल्नुहोस्"</string>
     <string name="account_select_title" msgid="6279711684772922649">"प्रयोग गर्न खाता चयन गर्नुहोस्"</string>
@@ -153,7 +153,7 @@
     <string name="setup_step2_instruction" msgid="9141481964870023336">"त्यसपछि, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" लाई तपाईँको सक्रिय पाठ इनपुट विधिका रूपमा चयन गर्नुहोस्।"</string>
     <string name="setup_step2_action" msgid="1660330307159824337">"इनपुट विधि स्विच गर्नुहोस्"</string>
     <string name="setup_step3_title" msgid="3154757183631490281">"बधाई छ, तपाईँले सेट पुरा गर्नुभयो!"</string>
-    <string name="setup_step3_instruction" msgid="8025981829605426000">"अब तपाईं <xliff:g id="APPLICATION_NAME">%s</xliff:g>का साथ तपाईंका सम्पूर्ण मनपर्ने अनुप्रयोगहरू टाइप गर्न सक्नुहुन्छ।"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"अब तपाईं <xliff:g id="APPLICATION_NAME">%s</xliff:g>का साथ तपाईंका सम्पूर्ण मन पर्ने अनुप्रयोगहरू टाइप गर्न सक्नुहुन्छ।"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"थप भाषाहरू कन्फिगर गर्नुहोस्"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"समाप्त भयो"</string>
     <string name="show_setup_wizard_icon" msgid="5008028590593710830">"अनुप्रयोग आइकन देखाउनुहोस्"</string>
@@ -195,7 +195,7 @@
     <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"पदावली"</string>
     <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"थप विकल्पहरू"</string>
     <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"कम विकल्पहरू"</string>
-    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"ठीक छ"</string>
+    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"ठिक छ"</string>
     <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"शब्द:"</string>
     <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"सर्टकट:"</string>
     <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"भाषा:"</string>
diff --git a/java/res/values-pa/strings.xml b/java/res/values-pa/strings.xml
index bcce742..0f972e5 100644
--- a/java/res/values-pa/strings.xml
+++ b/java/res/values-pa/strings.xml
@@ -62,7 +62,7 @@
     <string name="use_double_space_period" msgid="8781529969425082860">"ਡਬਲ-ਸਪੇਸ ਡੰਡੀ"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"ਸਪੇਸਬਾਰ ’ਤੇ ਡਬਲ ਟੈਪ ਕਰਨਾ ਇੱਕ ਡੰਡੀ ਤੋਂ ਬਾਅਦ ਇੱਕ ਸਪੇਸ ਦਾਖਲ ਕਰਦਾ ਹੈ"</string>
     <string name="auto_cap" msgid="1719746674854628252">"ਆਟੋ-ਕੈਪਿਟਲਾਈਜ਼ੇਸ਼ਨ"</string>
-    <string name="auto_cap_summary" msgid="7934452761022946874">"ਹਰੇਕ ਵਾਕ ਦਾ ਪਹਿਲਾ ਸ਼ਬਦ ਕੈਪੀਟਲਾਈਜ਼ ਕਰੋ"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"ਹਰੇਕ ਵਾਕ ਦਾ ਪਹਿਲਾ ਅੱਖਰ ਵੱਡਾ ਕਰੋ"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"ਨਿੱਜੀ ਸ਼ਬਦਕੋਸ਼"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"ਐਡ-ਆਨ ਸ਼ਬਦਕੋਸ਼"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"ਮੁੱਖ ਸ਼ਬਦਕੋਸ਼"</string>
@@ -80,12 +80,12 @@
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"ਸੁਝਾਅ ਦੇਣ ਵਿੱਚ ਪਿਛਲਾ ਸ਼ਬਦ ਵਰਤੋ"</string>
     <string name="gesture_input" msgid="826951152254563827">"ਸੰਕੇਤ ਟਾਈਪਿੰਗ ਚਾਲੂ ਕਰੋ"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"ਅੱਖਰਾਂ ਰਾਹੀਂ ਸਲਾਈਡ ਕਰਕੇ ਇੱਕ ਸ਼ਬਦ ਦਾਖਲ ਕਰੋ"</string>
-    <string name="gesture_preview_trail" msgid="3802333369335722221">"ਸੰਕੇਤ ਲੀਹ  ਦਿਖਾਓ"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"ਸੰਕੇਤ ਲੀਹ ਦਿਖਾਓ"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"ਸਕਿਰਿਆ ਫਲੋਟਿੰਗ ਪੂਰਵ-ਝਲਕ"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"ਸੰਕੇਤ ਦਿੰਦੇ ਸਮੇਂ ਸੁਝਾਇਆ ਗਿਆ ਸ਼ਬਦ ਦੇਖੋ"</string>
     <string name="gesture_space_aware" msgid="2078291600664682496">"ਵਾਕਾਂਸ਼ ਸੰਕੇਤ"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"ਸਪੇਸ ਕੁੰਜੀ ਸਰਕਾ ਕੇ ਸੰਕੇਤਾਂ ਦੇ ਦੌਰਾਨ ਸਪੇਸ ਇਨਪੁਟ ਕਰੋ"</string>
-    <string name="voice_input" msgid="3583258583521397548">"ਵੌਇਸ ਇਨਪੁਟ ਕੁੰਜੀ"</string>
+    <string name="voice_input" msgid="3583258583521397548">"ਅਵਾਜ਼ੀ ਇਨਪੁੱਟ ਕੁੰਜੀ"</string>
     <string name="voice_input_disabled_summary" msgid="6323489602945135165">"ਕੋਈ ਵੌਇਸ ਇਨਪੁੱਟ ਵਿਧੀਆਂ ਚਾਲੂ ਨਹੀਂ ਕੀਤੀਆਂ ਹਨ। ਭਾਸ਼ਾਵਾਂ ਅਤੇ ਇਨਪੁੱਟ ਸੈਟਿੰਗਾਂ ਦੀ ਜਾਂਚ ਕਰੋ।"</string>
     <string name="configure_input_method" msgid="373356270290742459">"ਇਨਪੁੱਟ ਵਿਧੀਆਂ ਦੀ ਰੂਪ-ਰੇਖਾ ਬਦਲੋ"</string>
     <string name="language_selection_title" msgid="3666971864764478269">"ਭਾਸ਼ਾਵਾਂ"</string>
diff --git a/java/res/values-pt/strings-talkback-descriptions.xml b/java/res/values-pt/strings-talkback-descriptions.xml
index fc0c6ee..c41baac 100644
--- a/java/res/values-pt/strings-talkback-descriptions.xml
+++ b/java/res/values-pt/strings-talkback-descriptions.xml
@@ -72,7 +72,7 @@
     <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Lugares"</string>
     <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Símbolos"</string>
     <string name="spoken_descrption_emoji_category_flags" msgid="5971573825866381472">"Sinalizações"</string>
-    <string name="spoken_descrption_emoji_category_eight_smiley_people" msgid="5682663819532433464">"Emoticon e pessoas"</string>
+    <string name="spoken_descrption_emoji_category_eight_smiley_people" msgid="5682663819532433464">"Emoticons e pessoas"</string>
     <string name="spoken_descrption_emoji_category_eight_animals_nature" msgid="5844950234883716704">"Animais e natureza"</string>
     <string name="spoken_descrption_emoji_category_eight_food_drink" msgid="6196944764485349650">"Comidas e bebidas"</string>
     <string name="spoken_descrption_emoji_category_eight_travel_places" msgid="3834085499381434611">"Viagens e lugares"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index a82b6b8..f633374 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -31,7 +31,7 @@
     <string name="settings_screen_appearance" msgid="7358046399111611615">"Aparência e layouts"</string>
     <string name="settings_screen_gesture" msgid="8826372746901183556">"Escrita com gestos"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Correção de texto"</string>
-    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançado"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Ativar teclado dividido"</string>
     <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronização Teclado do Google"</string>
@@ -62,14 +62,14 @@
     <string name="use_double_space_period" msgid="8781529969425082860">"Duplo espaço para ponto"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"Toque duplo na barra de espaço insere um ponto seguido de espaço"</string>
     <string name="auto_cap" msgid="1719746674854628252">"Capitalização automática"</string>
-    <string name="auto_cap_summary" msgid="7934452761022946874">"Inicia a primeira palavra de cada frase com letra maiúscula"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Iniciar a primeira palavra de cada frase com letra maiúscula"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Dicionário pessoal"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"Dicionários complementares"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"Dicionário principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Mostrar sugestões de correção"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Exibir sugestões de palavras durante a digitação"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquear palavras ofensivas"</string>
-    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Não sugere palavras potencialmente ofensivas"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Não sugerir palavras potencialmente ofensivas"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Correção automática"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"A barra de espaço e a pontuação corrigem automaticamente palavras com erro de digitação"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Desativado"</string>
@@ -77,7 +77,7 @@
     <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Agressivo"</string>
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Muito agressivo"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"Sugerir palavra seguinte"</string>
-    <string name="bigram_prediction_summary" msgid="3896362682751109677">"Usa a palavra anterior ao fazer sugestões"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"Usar a palavra anterior ao fazer sugestões"</string>
     <string name="gesture_input" msgid="826951152254563827">"Ativar a escrita com gestos"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"Insere uma palavra deslizando os dedos pelas letras"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"Mostrar percurso do gesto"</string>
@@ -121,7 +121,7 @@
     <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string>
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
-    <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
+    <string name="subtype_emoji" msgid="7483586578074549196">"Emojis"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Tema do teclado"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos personalizados"</string>
     <string name="add_style" msgid="6163126614514489951">"Adic. estilo"</string>
@@ -137,8 +137,8 @@
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duração da vibração ao tocar"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume ao tocar na tela"</string>
     <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Atraso ao pressionar teclas"</string>
-    <string name="prefs_enable_emoji_alt_physical_key" msgid="5963640002335470112">"Emoticons para teclado físico"</string>
-    <string name="prefs_enable_emoji_alt_physical_key_summary" msgid="5259484820941627827">"Tecla Alt física mostra a paleta de emoticons"</string>
+    <string name="prefs_enable_emoji_alt_physical_key" msgid="5963640002335470112">"Emojis para teclado físico"</string>
+    <string name="prefs_enable_emoji_alt_physical_key_summary" msgid="5259484820941627827">"Exibe o teclado de emojis ao pressionar a tecla Alt"</string>
     <string name="button_default" msgid="3988017840431881491">"Padrão"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Bem-vindo ao <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"com entrada por gestos"</string>
diff --git a/java/res/values-ru/strings-emoji-descriptions.xml b/java/res/values-ru/strings-emoji-descriptions.xml
index a133412..1c6f4e0 100644
--- a/java/res/values-ru/strings-emoji-descriptions.xml
+++ b/java/res/values-ru/strings-emoji-descriptions.xml
@@ -249,7 +249,7 @@
     <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Квадратный значок идентификатора."</string>
     <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Квадратный значок Новый."</string>
     <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Квадратный значок Нехорошо."</string>
-    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Квадратный значок О\'кей."</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Квадратный значок Окей."</string>
     <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Квадратный значок СОС."</string>
     <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Квадратный значок обновления с восклицательным знаком."</string>
     <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Квадратный значок Против."</string>
@@ -651,7 +651,7 @@
     <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Белая рука с указательным пальцем вправо с тыльной стороны."</string>
     <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Кулак."</string>
     <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Машущая раскрытая ладонь."</string>
-    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Пальцы, сложенные знаком О\'кей."</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Пальцы, сложенные знаком Окей."</string>
     <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Большой палец вверх."</string>
     <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Большой палец вниз."</string>
     <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Аплодисменты."</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index 2415299..40ab5b5 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -58,7 +58,7 @@
     <string name="use_contacts_dict" msgid="4435317977804180815">"Подсказывать имена"</string>
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Подсказывать исправления на основе имен из списка контактов"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Пользовательские словари"</string>
-    <string name="enable_metrics_logging" msgid="5506372337118822837">"Помочь улучшить <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="enable_metrics_logging" msgid="5506372337118822837">"Помочь улучшить приложение <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"Точки автоматически"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"Вводить точку с пробелом двойным нажатием пробела."</string>
     <string name="auto_cap" msgid="1719746674854628252">"Заглавные автоматически"</string>
@@ -72,7 +72,7 @@
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Не предлагать слова, которые могут быть сочтены оскорбительными"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Автоисправление"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Автоматическое исправление опечаток при вводе знака препинания или пробела"</string>
-    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Откл."</string>
+    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Отключено"</string>
     <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Умеренное"</string>
     <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Активно"</string>
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Очень активно"</string>
diff --git a/java/res/values-sq/strings.xml b/java/res/values-sq/strings.xml
index 5889c7e..7fc2837 100644
--- a/java/res/values-sq/strings.xml
+++ b/java/res/values-sq/strings.xml
@@ -204,7 +204,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Redakto fjalën"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Redakto"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Fshi"</string>
-    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Nuk ke asnjë fjalë në fjalorin e përdoruesit. Për të shtuar një fjalë, trokit te butoni Shto (+)."</string>
+    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Nuk ke asnjë fjalë në fjalorin e përdoruesit. Për të shtuar një fjalë, trokit te butoni \"Shto (+)\"."</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"Për të gjitha gjuhët"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"Gjuhë të tjera…"</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"Fshi"</string>
diff --git a/java/res/values-sr/strings-talkback-descriptions.xml b/java/res/values-sr/strings-talkback-descriptions.xml
index ae18556..e1728bf 100644
--- a/java/res/values-sr/strings-talkback-descriptions.xml
+++ b/java/res/values-sr/strings-talkback-descriptions.xml
@@ -46,7 +46,7 @@
     <string name="spoken_description_dot" msgid="5644176501632325560">"Тачка"</string>
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"Пребаци језик"</string>
     <string name="spoken_description_action_next" msgid="431761808119616962">"Претходно"</string>
-    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Следеће"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Назад"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift је омогућен"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock је омогућен"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим симбола"</string>
diff --git a/java/res/values-sw/strings-config-important-notice.xml b/java/res/values-sw/strings-config-important-notice.xml
index 7b10085..efc283d 100644
--- a/java/res/values-sw/strings-config-important-notice.xml
+++ b/java/res/values-sw/strings-config-important-notice.xml
@@ -20,5 +20,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"Jifunze kutoka kwenye mawasiliano yako na data iliyocharazwa ili kuboresha mapendekezo"</string>
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"Tumia mawasiliano yako na data unayocharaza, kujifunza ili kuboresha mapendekezo"</string>
 </resources>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index a3268d5..16cfa80 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -52,9 +52,9 @@
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Onyesha wakati lugha ingizo mbalimbali zinapowezeshwa"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Kuchelewesha kutupa kitufe ibukizi"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Hakuna kuchelewa"</string>
-    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Chaguo-msingi"</string>
+    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Chaguomsingi"</string>
     <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"Milisekunde <xliff:g id="MILLISECONDS">%s</xliff:g>"</string>
-    <string name="settings_system_default" msgid="6268225104743331821">"Chaguo-msingi la mfumo"</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"Chaguomsingi la mfumo"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"Pendekeza majini ya Anwani"</string>
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Tumia majina kutoka kwa Anwani kama mapendekezo na marekebisho"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Mapendekezo yaliyobadilishwa kukufaa"</string>
@@ -136,10 +136,10 @@
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Mfumo sawa wa maingizo tayari upo: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Bonyeza kitufe cha muda wa kutetema"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Bonyeza kitufe cha kiwango cha sauti"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ucheleweshaji wa kubofya kitufe na kushikilia"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ucheleweshaji unapobofya kitufe na kushikilia"</string>
     <string name="prefs_enable_emoji_alt_physical_key" msgid="5963640002335470112">"Emoji za kibodi halisi"</string>
     <string name="prefs_enable_emoji_alt_physical_key_summary" msgid="5259484820941627827">"Kitufe halisi cha Alt huonyesha kibao cha emoji"</string>
-    <string name="button_default" msgid="3988017840431881491">"Chaguo-msingi"</string>
+    <string name="button_default" msgid="3988017840431881491">"Chaguomsingi"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Karibu kwenye <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"kwa Kuandika kwa ishara"</string>
     <string name="setup_start_action" msgid="8936036460897347708">"Anza kutumia"</string>
@@ -194,7 +194,7 @@
     <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Ongeza kwenye kamusi"</string>
     <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"Fungu la maneno"</string>
     <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"Hiari zingine"</string>
-    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"Hiari chache"</string>
+    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"Chaguo chache"</string>
     <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"Sawa"</string>
     <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"Neno:"</string>
     <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Njia ya mkato:"</string>
diff --git a/java/res/values-ta/strings.xml b/java/res/values-ta/strings.xml
index 9fee3e5..bbb7b62 100644
--- a/java/res/values-ta/strings.xml
+++ b/java/res/values-ta/strings.xml
@@ -68,8 +68,8 @@
     <string name="main_dictionary" msgid="4798763781818361168">"முதன்மை அகராதி"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"திருத்துதல் விருப்பங்களைக் காட்டு"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"உள்ளிடும்போது பரிந்துரைக்கப்பட்ட வார்த்தைகளைக் காட்டும்"</string>
-    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"வன்மொழி சொற்களைத் தடு"</string>
-    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"வன்மொழியாக இருக்கும் சாத்தியமுள்ள சொற்களைப் பரிந்துரைக்க வேண்டாம்"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"புண்படுத்தும் சொற்களைத் தடு"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"மனதைப் புண்படுத்தக் கூடிய சொற்களைப் பரிந்துரைக்க வேண்டாம்"</string>
     <string name="auto_correction" msgid="7630720885194996950">"தன்னியக்க திருத்தம்"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"ஸ்பேஸ்பாரும், நிறுத்தற்குறிகளும் தவறாக உள்ளிடப்பட்ட வார்த்தைகளை தானாக திருத்தும்"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"ஆஃப்"</string>
diff --git a/java/res/values-te/strings.xml b/java/res/values-te/strings.xml
index 2b15564..9233af8 100644
--- a/java/res/values-te/strings.xml
+++ b/java/res/values-te/strings.xml
@@ -71,12 +71,12 @@
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"అభ్యంతరకరమైన పదాలను బ్లాక్ చేయి"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"సంభావ్యంగా అభ్యంతరకరమైన పదాలను సూచించవద్దు"</string>
     <string name="auto_correction" msgid="7630720885194996950">"స్వీయ-సవరణ"</string>
-    <string name="auto_correction_summary" msgid="5625751551134658006">"స్పేస్ బార్ మరియు విరామ చిహ్నాలు తప్పుగా టైప్ చేసిన పదాలను స్వయంచాలకంగా సరి చేస్తాయి"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"స్పేస్ బార్ మరియు విరామ చిహ్నాలు తప్పుగా టైప్ చేసిన పదాలను ఆటోమేటిక్‌గా సరి చేస్తాయి"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"ఆఫ్‌ చేయి"</string>
     <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"మధ్యస్థం"</string>
     <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"తీవ్రం"</string>
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"చాలా తీవ్రం"</string>
-    <string name="bigram_prediction" msgid="1084449187723948550">"తర్వాత-పదం సూచనలు"</string>
+    <string name="bigram_prediction" msgid="1084449187723948550">"తర్వాతి-పదం సూచనలు"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"సూచనలను రూపొందించడంలో మునుపటి పదాన్ని ఉపయోగించు"</string>
     <string name="gesture_input" msgid="826951152254563827">"సంజ్ఞ టైపింగ్‌ను ప్రారంభించండి"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"అక్షరాల గుండా స్లైడ్ చేయడం ద్వారా పదాన్ని ఇన్‌పుట్ చేయండి"</string>
@@ -156,8 +156,8 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ఇప్పుడు మీరు <xliff:g id="APPLICATION_NAME">%s</xliff:g>తో మీకు ఇష్టమైన అన్ని అనువర్తనాల్లో టైప్ చేయవచ్చు."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"అదనపు భాషలను కాన్ఫిగర్ చేయండి"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"పూర్తయింది"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"అనువర్తన చిహ్నాన్ని చూపు"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"లాంచర్‌లో అనువర్తన చిహ్నాన్ని ప్రదర్శించు"</string>
+    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"యాప్‌ చిహ్నాన్ని చూపు"</string>
+    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"లాంచర్‌లో యాప్‌ చిహ్నాన్ని ప్రదర్శించు"</string>
     <string name="app_name" msgid="6320102637491234792">"నిఘంటువు ప్రదాత"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"నిఘంటువు ప్రదాత"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"నిఘంటువు సేవ"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index 0566591..2b4ca3e 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -68,7 +68,7 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Pangunahing diksyonaryo"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Ipakita ang mga suhestiyon sa pagwawasto"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Ipakita ang mga iminumungkahing salita habang nagta-type"</string>
-    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"I-block ang nakakapanakit na salita"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"I-block ang masakit na salita"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Huwag magmungkahi ng mga maaaring nakakapanakit na salita"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Auto na pagwawasto"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Awtomatikong tinatama ng spacebar at bantas ang maling na-type"</string>
@@ -85,7 +85,7 @@
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Tingnan ang iminungkahing salita habang gumagalaw"</string>
     <string name="gesture_space_aware" msgid="2078291600664682496">"Phrase gesture"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Maglagay ng espasyo sa pamamagitan ng pag-glide sa space key"</string>
-    <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
+    <string name="voice_input" msgid="3583258583521397548">"Key sa voice input"</string>
     <string name="voice_input_disabled_summary" msgid="6323489602945135165">"Walang naka-enable na paraan ng pag-input gamit ang boses. Tingnan ang Mga setting ng wika at input."</string>
     <string name="configure_input_method" msgid="373356270290742459">"I-configure ang mga pamamaraan ng pag-input"</string>
     <string name="language_selection_title" msgid="3666971864764478269">"Mga Wika"</string>
@@ -204,7 +204,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"I-edit ang salita"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"I-edit"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"I-delete"</string>
-    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Wala kang anumang mga salita sa diksyonaryo ng user. Upang magdagdag ng salita, i-tap ang button na Magdagdag (+)."</string>
+    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"Wala kang anumang salita sa diksyonaryo ng user. Para magdagdag ng salita, i-tap ang button na Magdagdag (+)."</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"Para sa lahat ng wika"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"Higit pang mga wika..."</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"I-delete"</string>
diff --git a/java/res/values-uz/strings-action-keys.xml b/java/res/values-uz/strings-action-keys.xml
index c395901..e6cb07c 100644
--- a/java/res/values-uz/strings-action-keys.xml
+++ b/java/res/values-uz/strings-action-keys.xml
@@ -22,7 +22,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="label_go_key" msgid="4033615332628671065">"OK"</string>
     <string name="label_next_key" msgid="5586407279258592635">"Keyingisi"</string>
-    <string name="label_previous_key" msgid="1421141755779895275">"Avvalgi"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"Orqaga"</string>
     <string name="label_done_key" msgid="7564866296502630852">"Tayyor"</string>
     <string name="label_send_key" msgid="482252074224462163">"Yuborish"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Qidiruv"</string>
diff --git a/java/res/values-uz/strings-talkback-descriptions.xml b/java/res/values-uz/strings-talkback-descriptions.xml
index d6eb3c8..88434b7 100644
--- a/java/res/values-uz/strings-talkback-descriptions.xml
+++ b/java/res/values-uz/strings-talkback-descriptions.xml
@@ -44,9 +44,9 @@
     <string name="spoken_description_return" msgid="3183692287397645708">"Kiritish"</string>
     <string name="spoken_description_search" msgid="5099937658231911288">"Qidiruv"</string>
     <string name="spoken_description_dot" msgid="5644176501632325560">"Qora nuqta"</string>
-    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Tilni o‘zgartirish"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Tilni almashtirish"</string>
     <string name="spoken_description_action_next" msgid="431761808119616962">"Keyingisi"</string>
-    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Avvalgi"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Orqaga"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Yuqori registr yoqildi"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock yoqildi"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Belgilar rejimi"</string>
@@ -65,7 +65,7 @@
     <string name="keyboard_mode_text" msgid="9138789594969187494">"matn kiritish"</string>
     <string name="keyboard_mode_time" msgid="8558297845514402675">"vaqt"</string>
     <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
-    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"So‘nggi ishlatilganlar"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Oxirgilar"</string>
     <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Odamlar"</string>
     <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Narsa-buyumlar"</string>
     <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Tabiat"</string>
diff --git a/java/res/values-uz/strings.xml b/java/res/values-uz/strings.xml
index fea9975..e29b9fb 100644
--- a/java/res/values-uz/strings.xml
+++ b/java/res/values-uz/strings.xml
@@ -31,7 +31,7 @@
     <string name="settings_screen_appearance" msgid="7358046399111611615">"Ko‘rinish va sxema"</string>
     <string name="settings_screen_gesture" msgid="8826372746901183556">"Qo‘l uzmasdan yozish"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Matnni tuzatish"</string>
-    <string name="settings_screen_advanced" msgid="7472408607625972994">"Qo‘shimcha sozlamalar"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Kengaytirilgan sozlamalar"</string>
     <string name="settings_screen_theme" msgid="2137262503543943871">"Mavzu"</string>
     <string name="enable_split_keyboard" msgid="4177264923999493614">"Ikkiga ajratiladigan klaviaturani yoqish"</string>
     <string name="cloud_sync_title" msgid="8579271074443847055">"Klaviaturani sinxronlash"</string>
@@ -47,8 +47,8 @@
     <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Ushbu imkoniyatni yoqish uchun, iltimos, Google hisobingizni qo‘shing"</string>
     <string name="cloud_sync_summary_disabled_work_profile" msgid="1381770407303129164">"“Biznes uchun Google Apps” hisobi mavjud qurilmalarda sinxronlab bo‘lmaydi"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Boshqa usullarga o‘tish"</string>
-    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tilni o‘zgartirish tugmasi matn kiritish usulini ham o‘zgartiradi"</string>
-    <string name="show_language_switch_key" msgid="5915478828318774384">"Tilni o‘zgartirish tugmasi"</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tilni almashtirish tugmasi matn kiritish usulini ham o‘zgartiradi"</string>
+    <string name="show_language_switch_key" msgid="5915478828318774384">"Tilni almashtirish tugmasi"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Bir nechta matn kiritish tili mavjud bo‘lganda ko‘rsatilsin"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Yopilish vaqti"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Kechikishsiz"</string>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index aa39f8c..a9785aa 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -25,7 +25,7 @@
     <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"Trình kiểm tra chính tả sử dụng các mục nhập từ danh bạ của bạn"</string>
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Rung khi nhấn phím"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Âm thanh khi nhấn phím"</string>
-    <string name="popup_on_keypress" msgid="123894815723512944">"Bật lên khi nhấn phím"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"Phông chữ lớn hơn bật lên khi nhấn phím"</string>
     <string name="settings_screen_preferences" msgid="2696713156722014624">"Tùy chọn"</string>
     <string name="settings_screen_accounts" msgid="2786418968536696670">"Tài khoản và bảo mật"</string>
     <string name="settings_screen_appearance" msgid="7358046399111611615">"Giao diện và bố cục"</string>
@@ -85,7 +85,7 @@
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Xem từ được đề xuất trong khi dùng cử chỉ"</string>
     <string name="gesture_space_aware" msgid="2078291600664682496">"Cử chỉ nhập cụm từ"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Nhập dấu cách khi thực hiện cử chỉ bằng cách trượt tới phím cách"</string>
-    <string name="voice_input" msgid="3583258583521397548">"Khóa nhập giọng nói"</string>
+    <string name="voice_input" msgid="3583258583521397548">"Phím nhập liệu bằng giọng nói"</string>
     <string name="voice_input_disabled_summary" msgid="6323489602945135165">"Không có phương thức nhập bằng giọng nói nào được bật. Kiểm tra cài đặt Ngôn ngữ và phương thức nhập."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Định cấu hình phương thức nhập"</string>
     <string name="language_selection_title" msgid="3666971864764478269">"Ngôn ngữ"</string>
diff --git a/java/res/values-zh-rHK/strings-talkback-descriptions.xml b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
index c7a1b25..3930dd3 100644
--- a/java/res/values-zh-rHK/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
@@ -20,7 +20,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="spoken_use_headphones" msgid="4313642710742229868">"插上耳機即可聽到系統朗讀密碼鍵。"</string>
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"插上耳機即可聽到系統讀出密碼鍵。"</string>
     <string name="spoken_current_text_is" msgid="4240549866156675799">"目前文字為 %s"</string>
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"未輸入文字"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"按「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可將「<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>」修正為「<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>」"</string>
diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml
index 29b6812..f5b7c94 100644
--- a/java/res/values-zh-rHK/strings.xml
+++ b/java/res/values-zh-rHK/strings.xml
@@ -77,9 +77,9 @@
     <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"加強模式"</string>
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"極度加強模式"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"建議下一個字詞"</string>
-    <string name="bigram_prediction_summary" msgid="3896362682751109677">"根據前一個字詞提出建議"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"根據上一個字詞提供建議"</string>
     <string name="gesture_input" msgid="826951152254563827">"啟用手勢輸入功能"</string>
-    <string name="gesture_input_summary" msgid="9180350639305731231">"透過滑動手指寫出字母來輸入字詞"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"透過在字母上滑動輸入字詞"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"顯示觸控蹤跡"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"動態浮動預覽"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"在啟用手勢輸入時顯示建議的字詞"</string>
@@ -204,7 +204,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"編輯字詞"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"編輯"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"刪除"</string>
-    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"用戶字典中沒有任何字詞。如要新增字詞，請輕按「新增」(+) 按鈕。"</string>
+    <string name="user_dict_settings_empty_text" msgid="6889278304342592383">"您的用戶字典中沒有任何字詞。如要新增字詞，請輕按 [新增] (+) 按鈕。"</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"所有語言"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"更多語言..."</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"刪除"</string>
diff --git a/java/res/values-zh-rTW/strings-config-important-notice.xml b/java/res/values-zh-rTW/strings-config-important-notice.xml
index 326d6ce..4c94b06 100644
--- a/java/res/values-zh-rTW/strings-config-important-notice.xml
+++ b/java/res/values-zh-rTW/strings-config-important-notice.xml
@@ -20,5 +20,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"根據你的通訊紀錄和以往輸入的資料改善建議項目"</string>
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"根據你的通訊記錄和以往輸入的資料改善建議項目"</string>
 </resources>
diff --git a/java/shared.keystore b/java/shared.keystore
new file mode 100644
index 0000000..9c2f1bd
--- /dev/null
+++ b/java/shared.keystore
Binary files differ
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
index 442ab3e..31e142e 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
@@ -21,7 +21,7 @@
 import android.os.Build;
 import android.os.SystemClock;
 import android.provider.Settings;
-import android.support.v4.view.accessibility.AccessibilityEventCompat;
+import androidx.core.view.accessibility.AccessibilityEventCompat;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.MotionEvent;
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
index 237117d..f7a1163 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
@@ -18,9 +18,9 @@
 
 import android.content.Context;
 import android.os.SystemClock;
-import android.support.v4.view.AccessibilityDelegateCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import androidx.core.view.AccessibilityDelegateCompat;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
 import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
index 2de71ce..a3511c6 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
@@ -18,11 +18,11 @@
 
 import android.graphics.Rect;
 import android.os.Bundle;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityEventCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
-import android.support.v4.view.accessibility.AccessibilityRecordCompat;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.accessibility.AccessibilityEventCompat;
+import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
+import androidx.core.view.accessibility.AccessibilityNodeProviderCompat;
+import androidx.core.view.accessibility.AccessibilityRecordCompat;
 import android.util.Log;
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
diff --git a/java-overridable/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java b/java/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java
rename to java/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java
diff --git a/java/src/com/android/inputmethod/compat/UserManagerCompatUtils.java b/java/src/com/android/inputmethod/compat/UserManagerCompatUtils.java
index 5dee316..a0ca2c9 100644
--- a/java/src/com/android/inputmethod/compat/UserManagerCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/UserManagerCompatUtils.java
@@ -19,7 +19,7 @@
 import android.content.Context;
 import android.os.Build;
 import android.os.UserManager;
-import android.support.annotation.IntDef;
+import androidx.annotation.IntDef;
 
 import java.lang.annotation.Retention;
 import java.lang.reflect.Method;
diff --git a/java/src/com/android/inputmethod/compat/ViewCompatUtils.java b/java/src/com/android/inputmethod/compat/ViewCompatUtils.java
index 16260ab..a584625 100644
--- a/java/src/com/android/inputmethod/compat/ViewCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/ViewCompatUtils.java
@@ -20,7 +20,7 @@
 
 import java.lang.reflect.Method;
 
-// TODO: Use {@link android.support.v4.view.ViewCompat} instead of this utility class.
+// TODO: Use {@link androidx.core.view.ViewCompat} instead of this utility class.
 // Currently {@link #getPaddingEnd(View)} and {@link #setPaddingRelative(View,int,int,int,int)}
 // are missing from android-support-v4 static library in KitKat SDK.
 public final class ViewCompatUtils {
diff --git a/java-overridable/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java
rename to java/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java
diff --git a/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java b/java/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java
rename to java/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
index 582e091..797541a 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
@@ -17,7 +17,7 @@
 package com.android.inputmethod.keyboard.emoji;
 
 import android.content.res.Resources;
-import android.support.v4.view.ViewPager;
+import androidx.viewpager.widget.ViewPager;
 import android.view.View;
 import android.widget.LinearLayout;
 
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java
index 68056e0..18b9c7e 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.keyboard.emoji;
 
-import android.support.v4.view.PagerAdapter;
+import androidx.viewpager.widget.PagerAdapter;
 import android.util.Log;
 import android.util.SparseArray;
 import android.view.LayoutInflater;
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
index a3b869d..9ba8d2b 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
@@ -23,7 +23,7 @@
 import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.preference.PreferenceManager;
-import android.support.v4.view.ViewPager;
+import androidx.viewpager.widget.ViewPager;
 import android.util.AttributeSet;
 import android.util.Pair;
 import android.util.TypedValue;
diff --git a/java-overridable/src/com/android/inputmethod/latin/DictionaryFacilitatorProvider.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorProvider.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/DictionaryFacilitatorProvider.java
rename to java/src/com/android/inputmethod/latin/DictionaryFacilitatorProvider.java
diff --git a/java/src/com/android/inputmethod/latin/PersonalDictionaryLookup.java b/java/src/com/android/inputmethod/latin/PersonalDictionaryLookup.java
deleted file mode 100644
index eed4ec1..0000000
--- a/java/src/com/android/inputmethod/latin/PersonalDictionaryLookup.java
+++ /dev/null
@@ -1,651 +0,0 @@
-/*
- * Copyright (C) 2015 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.latin;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.UserDictionary;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.common.CollectionUtils;
-import com.android.inputmethod.latin.common.LocaleUtils;
-import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.utils.ExecutorUtils;
-
-import java.io.Closeable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-/**
- * This class provides the ability to look into the system-wide "Personal dictionary". It loads the
- * data once when created and reloads it when notified of changes to {@link UserDictionary}
- *
- * It can be used directly to validate words or expand shortcuts, and it can be used by instances
- * of {@link PersonalLanguageModelHelper} that create language model files for a specific input
- * locale.
- *
- * Note, that the initial dictionary loading happens asynchronously so it is possible (hopefully
- * rarely) that {@link #isValidWord} or {@link #expandShortcut} is called before the initial load
- * has started.
- *
- * The caller should explicitly call {@link #close} when the object is no longer needed, in order
- * to release any resources and references to this object.  A service should create this object in
- * {@link android.app.Service#onCreate} and close it in {@link android.app.Service#onDestroy}.
- */
-public class PersonalDictionaryLookup implements Closeable {
-
-    /**
-     * To avoid loading too many dictionary entries in memory, we cap them at this number.  If
-     * that number is exceeded, the lowest-frequency items will be dropped.  Note, there is no
-     * explicit cap on the number of locales in every entry.
-     */
-    private static final int MAX_NUM_ENTRIES = 1000;
-
-    /**
-     * The delay (in milliseconds) to impose on reloads.  Previously scheduled reloads will be
-     * cancelled if a new reload is scheduled before the delay expires.  Thus, only the last
-     * reload in the series of frequent reloads will execute.
-     *
-     * Note, this value should be low enough to allow the "Add to dictionary" feature in the
-     * TextView correction (red underline) drop-down menu to work properly in the following case:
-     *
-     *   1. User types OOV (out-of-vocabulary) word.
-     *   2. The OOV is red-underlined.
-     *   3. User selects "Add to dictionary".  The red underline disappears while the OOV is
-     *      in a composing span.
-     *   4. The user taps space.  The red underline should NOT reappear.  If this value is very
-     *      high and the user performs the space tap fast enough, the red underline may reappear.
-     */
-    @UsedForTesting
-    static final int RELOAD_DELAY_MS = 200;
-
-    @UsedForTesting
-    static final Locale ANY_LOCALE = new Locale("");
-
-    private final String mTag;
-    private final ContentResolver mResolver;
-    private final String mServiceName;
-
-    /**
-     * Interface to implement for classes interested in getting notified of updates.
-     */
-    public static interface PersonalDictionaryListener {
-        public void onUpdate();
-    }
-
-    private final Set<PersonalDictionaryListener> mListeners = new HashSet<>();
-
-    public void addListener(@Nonnull final PersonalDictionaryListener listener) {
-        mListeners.add(listener);
-    }
-
-    public void removeListener(@Nonnull final PersonalDictionaryListener listener) {
-        mListeners.remove(listener);
-    }
-
-    /**
-     * Broadcast the update to all the Locale-specific language models.
-     */
-    @UsedForTesting
-    void notifyListeners() {
-        for (PersonalDictionaryListener listener : mListeners) {
-            listener.onUpdate();
-        }
-    }
-
-    /**
-     *  Content observer for changes to the personal dictionary. It has the following properties:
-     *    1. It spawns off a reload in another thread, after some delay.
-     *    2. It cancels previously scheduled reloads, and only executes the latest.
-     *    3. It may be called multiple times quickly in succession (and is in fact called so
-     *       when the dictionary is edited through its settings UI, when sometimes multiple
-     *       notifications are sent for the edited entry, but also for the entire dictionary).
-     */
-    private class PersonalDictionaryContentObserver extends ContentObserver implements Runnable {
-        public PersonalDictionaryContentObserver() {
-            super(null);
-        }
-
-        @Override
-        public boolean deliverSelfNotifications() {
-            return true;
-        }
-
-        // Support pre-API16 platforms.
-        @Override
-        public void onChange(boolean selfChange) {
-            onChange(selfChange, null);
-        }
-
-        @Override
-        public void onChange(boolean selfChange, Uri uri) {
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "onChange() : URI = " + uri);
-            }
-            // Cancel (but don't interrupt) any pending reloads (except the initial load).
-            if (mReloadFuture != null && !mReloadFuture.isCancelled() &&
-                    !mReloadFuture.isDone()) {
-                // Note, that if already cancelled or done, this will do nothing.
-                boolean isCancelled = mReloadFuture.cancel(false);
-                if (DebugFlags.DEBUG_ENABLED) {
-                    if (isCancelled) {
-                        Log.d(mTag, "onChange() : Canceled previous reload request");
-                    } else {
-                        Log.d(mTag, "onChange() : Failed to cancel previous reload request");
-                    }
-                }
-            }
-
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "onChange() : Scheduling reload in " + RELOAD_DELAY_MS + " ms");
-            }
-
-            // Schedule a new reload after RELOAD_DELAY_MS.
-            mReloadFuture = ExecutorUtils.getBackgroundExecutor(mServiceName)
-                    .schedule(this, RELOAD_DELAY_MS, TimeUnit.MILLISECONDS);
-        }
-
-        @Override
-        public void run() {
-            loadPersonalDictionary();
-        }
-    }
-
-    private final PersonalDictionaryContentObserver mPersonalDictionaryContentObserver =
-            new PersonalDictionaryContentObserver();
-
-    /**
-     * Indicates that a load is in progress, so no need for another.
-     */
-    private AtomicBoolean mIsLoading = new AtomicBoolean(false);
-
-    /**
-     * Indicates that this lookup object has been close()d.
-     */
-    private AtomicBoolean mIsClosed = new AtomicBoolean(false);
-
-    /**
-     * We store a map from a dictionary word to the set of locales & raw string(as it appears)
-     * We then iterate over the set of locales to find a match using LocaleUtils.
-     */
-    private volatile HashMap<String, HashMap<Locale, String>> mDictWords;
-
-    /**
-     * We store a map from a shortcut to a word for each locale.
-     * Shortcuts that apply to any locale are keyed by {@link #ANY_LOCALE}.
-     */
-    private volatile HashMap<Locale, HashMap<String, String>> mShortcutsPerLocale;
-
-    /**
-     *  The last-scheduled reload future.  Saved in order to cancel a pending reload if a new one
-     * is coming.
-     */
-    private volatile ScheduledFuture<?> mReloadFuture;
-
-    private volatile List<DictionaryStats> mDictionaryStats;
-
-    /**
-     * @param context the context from which to obtain content resolver
-     */
-    public PersonalDictionaryLookup(
-            @Nonnull final Context context,
-            @Nonnull final String serviceName) {
-        mTag = serviceName + ".Personal";
-
-        Log.i(mTag, "create()");
-
-        mServiceName = serviceName;
-        mDictionaryStats = new ArrayList<DictionaryStats>();
-        mDictionaryStats.add(new DictionaryStats(ANY_LOCALE, Dictionary.TYPE_USER, 0));
-        mDictionaryStats.add(new DictionaryStats(ANY_LOCALE, Dictionary.TYPE_USER_SHORTCUT, 0));
-
-        // Obtain a content resolver.
-        mResolver = context.getContentResolver();
-    }
-
-    public List<DictionaryStats> getDictionaryStats() {
-        return mDictionaryStats;
-    }
-
-    public void open() {
-        Log.i(mTag, "open()");
-
-        // Schedule the initial load to run immediately.  It's possible that the first call to
-        // isValidWord occurs before the dictionary has actually loaded, so it should not
-        // assume that the dictionary has been loaded.
-        loadPersonalDictionary();
-
-        // Register the observer to be notified on changes to the personal dictionary and all
-        // individual items.
-        //
-        // If the user is interacting with the Personal Dictionary settings UI, or with the
-        // "Add to dictionary" drop-down option, duplicate notifications will be sent for the same
-        // edit: if a new entry is added, there is a notification for the entry itself, and
-        // separately for the entire dictionary. However, when used programmatically,
-        // only notifications for the specific edits are sent. Thus, the observer is registered to
-        // receive every possible notification, and instead has throttling logic to avoid doing too
-        // many reloads.
-        mResolver.registerContentObserver(
-                UserDictionary.Words.CONTENT_URI,
-                true /* notifyForDescendents */,
-                mPersonalDictionaryContentObserver);
-    }
-
-    /**
-     * To be called by the garbage collector in the off chance that the service did not clean up
-     * properly.  Do not rely on this getting called, and make sure close() is called explicitly.
-     */
-    @Override
-    public void finalize() throws Throwable {
-        try {
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "finalize()");
-            }
-            close();
-        } finally {
-            super.finalize();
-        }
-    }
-
-    /**
-     * Cleans up PersonalDictionaryLookup: shuts down any extra threads and unregisters the observer.
-     *
-     * It is safe, but not advised to call this multiple times, and isValidWord would continue to
-     * work, but no data will be reloaded any longer.
-     */
-    @Override
-    public void close() {
-        if (DebugFlags.DEBUG_ENABLED) {
-            Log.d(mTag, "close() : Unregistering content observer");
-        }
-        if (mIsClosed.compareAndSet(false, true)) {
-            // Unregister the content observer.
-            mResolver.unregisterContentObserver(mPersonalDictionaryContentObserver);
-        }
-    }
-
-    /**
-     * Returns true if the initial load has been performed.
-     *
-     * @return true if the initial load is successful
-     */
-    public boolean isLoaded() {
-        return mDictWords != null && mShortcutsPerLocale != null;
-    }
-
-    /**
-     * Returns the set of words defined for the given locale and more general locales.
-     *
-     * For example, input locale en_US uses data for en_US, en, and the global dictionary.
-     *
-     * Note that this method returns expanded words, not shortcuts. Shortcuts are handled
-     * by {@link #getShortcutsForLocale}.
-     *
-     * @param inputLocale the locale to restrict for
-     * @return set of words that apply to the given locale.
-     */
-    public Set<String> getWordsForLocale(@Nonnull final Locale inputLocale) {
-        final HashMap<String, HashMap<Locale, String>> dictWords = mDictWords;
-        if (CollectionUtils.isNullOrEmpty(dictWords)) {
-            return Collections.emptySet();
-        }
-
-        final Set<String> words = new HashSet<>();
-        final String inputLocaleString = inputLocale.toString();
-        for (String word : dictWords.keySet()) {
-            HashMap<Locale, String> localeStringMap = dictWords.get(word);
-                if (!CollectionUtils.isNullOrEmpty(localeStringMap)) {
-                    for (Locale wordLocale : localeStringMap.keySet()) {
-                        final String wordLocaleString = wordLocale.toString();
-                        final int match = LocaleUtils.getMatchLevel(wordLocaleString, inputLocaleString);
-                        if (LocaleUtils.isMatch(match)) {
-                            words.add(localeStringMap.get(wordLocale));
-                        }
-                    }
-            }
-        }
-        return words;
-    }
-
-    /**
-     * Returns the set of shortcuts defined for the given locale and more general locales.
-     *
-     * For example, input locale en_US uses data for en_US, en, and the global dictionary.
-     *
-     * Note that this method returns shortcut keys, not expanded words. Words are handled
-     * by {@link #getWordsForLocale}.
-     *
-     * @param inputLocale the locale to restrict for
-     * @return set of shortcuts that apply to the given locale.
-     */
-    public Set<String> getShortcutsForLocale(@Nonnull final Locale inputLocale) {
-        final Map<Locale, HashMap<String, String>> shortcutsPerLocale = mShortcutsPerLocale;
-        if (CollectionUtils.isNullOrEmpty(shortcutsPerLocale)) {
-            return Collections.emptySet();
-        }
-
-        final Set<String> shortcuts = new HashSet<>();
-        if (!TextUtils.isEmpty(inputLocale.getCountry())) {
-            // First look for the country-specific shortcut: en_US, en_UK, fr_FR, etc.
-            final Map<String, String> countryShortcuts = shortcutsPerLocale.get(inputLocale);
-            if (!CollectionUtils.isNullOrEmpty(countryShortcuts)) {
-                shortcuts.addAll(countryShortcuts.keySet());
-            }
-        }
-
-        // Next look for the language-specific shortcut: en, fr, etc.
-        final Locale languageOnlyLocale =
-                LocaleUtils.constructLocaleFromString(inputLocale.getLanguage());
-        final Map<String, String> languageShortcuts = shortcutsPerLocale.get(languageOnlyLocale);
-        if (!CollectionUtils.isNullOrEmpty(languageShortcuts)) {
-            shortcuts.addAll(languageShortcuts.keySet());
-        }
-
-        // If all else fails, look for a global shortcut.
-        final Map<String, String> globalShortcuts = shortcutsPerLocale.get(ANY_LOCALE);
-        if (!CollectionUtils.isNullOrEmpty(globalShortcuts)) {
-            shortcuts.addAll(globalShortcuts.keySet());
-        }
-
-        return shortcuts;
-    }
-
-    /**
-     * Determines if the given word is a valid word in the given locale based on the dictionary.
-     * It tries hard to find a match: for example, casing is ignored and if the word is present in a
-     * more general locale (e.g. en or all locales), and isValidWord is asking for a more specific
-     * locale (e.g. en_US), it will be considered a match.
-     *
-     * @param word the word to match
-     * @param inputLocale the locale in which to match the word
-     * @return true iff the word has been matched for this locale in the dictionary.
-     */
-    public boolean isValidWord(@Nonnull final String word, @Nonnull final Locale inputLocale) {
-        if (!isLoaded()) {
-            // This is a corner case in the event the initial load of the dictionary has not
-            // completed. In that case, we assume the word is not a valid word in the dictionary.
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "isValidWord() : Initial load not complete");
-            }
-            return false;
-        }
-
-        if (DebugFlags.DEBUG_ENABLED) {
-            Log.d(mTag, "isValidWord() : Word [" + word + "] in Locale [" + inputLocale + "]");
-        }
-        // Atomically obtain the current copy of mDictWords;
-        final HashMap<String, HashMap<Locale, String>> dictWords = mDictWords;
-        // Lowercase the word using the given locale. Note, that dictionary
-        // words are lowercased using their locale, and theoretically the
-        // lowercasing between two matching locales may differ. For simplicity
-        // we ignore that possibility.
-        final String lowercased = word.toLowerCase(inputLocale);
-        final HashMap<Locale, String> dictLocales = dictWords.get(lowercased);
-
-        if (CollectionUtils.isNullOrEmpty(dictLocales)) {
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "isValidWord() : No entry for word [" + word + "]");
-            }
-            return false;
-        } else {
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "isValidWord() : Found entry for word [" + word + "]");
-            }
-            // Iterate over the locales this word is in.
-            for (final Locale dictLocale : dictLocales.keySet()) {
-                final int matchLevel = LocaleUtils.getMatchLevel(dictLocale.toString(),
-                        inputLocale.toString());
-                if (DebugFlags.DEBUG_ENABLED) {
-                    Log.d(mTag, "isValidWord() : MatchLevel for DictLocale [" + dictLocale
-                            + "] and InputLocale [" + inputLocale + "] is " + matchLevel);
-                }
-                if (LocaleUtils.isMatch(matchLevel)) {
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "isValidWord() : MatchLevel " + matchLevel + " IS a match");
-                    }
-                    return true;
-                }
-                if (DebugFlags.DEBUG_ENABLED) {
-                    Log.d(mTag, "isValidWord() : MatchLevel " + matchLevel + " is NOT a match");
-                }
-            }
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "isValidWord() : False, since none of the locales matched");
-            }
-            return false;
-        }
-    }
-
-    /**
-     * Expands the given shortcut for the given locale.
-     *
-     * @param shortcut the shortcut to expand
-     * @param inputLocale the locale in which to expand the shortcut
-     * @return expanded shortcut iff the word is a shortcut in the dictionary.
-     */
-    @Nullable public String expandShortcut(
-            @Nonnull final String shortcut, @Nonnull final Locale inputLocale) {
-        if (DebugFlags.DEBUG_ENABLED) {
-            Log.d(mTag, "expandShortcut() : Shortcut [" + shortcut + "] for [" + inputLocale + "]");
-        }
-
-        // Atomically obtain the current copy of mShortcuts;
-        final HashMap<Locale, HashMap<String, String>> shortcutsPerLocale = mShortcutsPerLocale;
-
-        // Exit as early as possible. Most users don't use shortcuts.
-        if (CollectionUtils.isNullOrEmpty(shortcutsPerLocale)) {
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "expandShortcut() : User has no shortcuts");
-            }
-            return null;
-        }
-
-        if (!TextUtils.isEmpty(inputLocale.getCountry())) {
-            // First look for the country-specific shortcut: en_US, en_UK, fr_FR, etc.
-            final String expansionForCountry = expandShortcut(
-                    shortcutsPerLocale, shortcut, inputLocale);
-            if (!TextUtils.isEmpty(expansionForCountry)) {
-                if (DebugFlags.DEBUG_ENABLED) {
-                    Log.d(mTag, "expandShortcut() : Country expansion is ["
-                            + expansionForCountry + "]");
-                }
-                return expansionForCountry;
-            }
-        }
-
-        // Next look for the language-specific shortcut: en, fr, etc.
-        final Locale languageOnlyLocale =
-                LocaleUtils.constructLocaleFromString(inputLocale.getLanguage());
-        final String expansionForLanguage = expandShortcut(
-                shortcutsPerLocale, shortcut, languageOnlyLocale);
-        if (!TextUtils.isEmpty(expansionForLanguage)) {
-            if (DebugFlags.DEBUG_ENABLED) {
-                Log.d(mTag, "expandShortcut() : Language expansion is ["
-                        + expansionForLanguage + "]");
-            }
-            return expansionForLanguage;
-        }
-
-        // If all else fails, look for a global shortcut.
-        final String expansionForGlobal = expandShortcut(shortcutsPerLocale, shortcut, ANY_LOCALE);
-        if (!TextUtils.isEmpty(expansionForGlobal) && DebugFlags.DEBUG_ENABLED) {
-            Log.d(mTag, "expandShortcut() : Global expansion is [" + expansionForGlobal + "]");
-        }
-        return expansionForGlobal;
-    }
-
-    @Nullable private String expandShortcut(
-            @Nullable final HashMap<Locale, HashMap<String, String>> shortcutsPerLocale,
-            @Nonnull final String shortcut,
-            @Nonnull final Locale locale) {
-        if (CollectionUtils.isNullOrEmpty(shortcutsPerLocale)) {
-            return null;
-        }
-        final HashMap<String, String> localeShortcuts = shortcutsPerLocale.get(locale);
-        if (CollectionUtils.isNullOrEmpty(localeShortcuts)) {
-            return null;
-        }
-        return localeShortcuts.get(shortcut);
-    }
-
-    /**
-     * Loads the personal dictionary in the current thread.
-     *
-     * Only one reload can happen at a time. If already running, will exit quickly.
-     */
-    private void loadPersonalDictionary() {
-        // Bail out if already in the process of loading.
-        if (!mIsLoading.compareAndSet(false, true)) {
-            Log.i(mTag, "loadPersonalDictionary() : Already Loading (exit)");
-            return;
-        }
-        Log.i(mTag, "loadPersonalDictionary() : Start Loading");
-        HashMap<String, HashMap<Locale, String>> dictWords = new HashMap<>();
-        HashMap<Locale, HashMap<String, String>> shortcutsPerLocale = new HashMap<>();
-        // Load the dictionary.  Items are returned in the default sort order (by frequency).
-        Cursor cursor = mResolver.query(UserDictionary.Words.CONTENT_URI,
-                null, null, null, UserDictionary.Words.DEFAULT_SORT_ORDER);
-        if (null == cursor || cursor.getCount() < 1) {
-            Log.i(mTag, "loadPersonalDictionary() : Empty");
-        } else {
-            // Iterate over the entries in the personal dictionary.  Note, that iteration is in
-            // descending frequency by default.
-            while (dictWords.size() < MAX_NUM_ENTRIES && cursor.moveToNext()) {
-                // If there is no column for locale, skip this entry. An empty
-                // locale on the other hand will not be skipped.
-                final int dictLocaleIndex = cursor.getColumnIndex(UserDictionary.Words.LOCALE);
-                if (dictLocaleIndex < 0) {
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "loadPersonalDictionary() : Entry without LOCALE, skipping");
-                    }
-                    continue;
-                }
-                // If there is no column for word, skip this entry.
-                final int dictWordIndex = cursor.getColumnIndex(UserDictionary.Words.WORD);
-                if (dictWordIndex < 0) {
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "loadPersonalDictionary() : Entry without WORD, skipping");
-                    }
-                    continue;
-                }
-                // If the word is null, skip this entry.
-                final String rawDictWord = cursor.getString(dictWordIndex);
-                if (null == rawDictWord) {
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "loadPersonalDictionary() : Null word");
-                    }
-                    continue;
-                }
-                // If the locale is null, that's interpreted to mean all locales. Note, the special
-                // zz locale for an Alphabet (QWERTY) layout will not match any actual language.
-                String localeString = cursor.getString(dictLocaleIndex);
-                if (null == localeString) {
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "loadPersonalDictionary() : Null locale for word [" +
-                                rawDictWord + "], assuming all locales");
-                    }
-                    // For purposes of LocaleUtils, an empty locale matches everything.
-                    localeString = "";
-                }
-                final Locale dictLocale = LocaleUtils.constructLocaleFromString(localeString);
-                // Lowercase the word before storing it.
-                final String dictWord = rawDictWord.toLowerCase(dictLocale);
-                if (DebugFlags.DEBUG_ENABLED) {
-                    Log.d(mTag, "loadPersonalDictionary() : Adding word [" + dictWord
-                            + "] for locale " + dictLocale + "with value" + rawDictWord);
-                }
-                // Check if there is an existing entry for this word.
-                HashMap<Locale, String> dictLocales = dictWords.get(dictWord);
-                if (CollectionUtils.isNullOrEmpty(dictLocales)) {
-                    // If there is no entry for this word, create one.
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "loadPersonalDictionary() : Word [" + dictWord +
-                                "] not seen for other locales, creating new entry");
-                    }
-                    dictLocales = new HashMap<>();
-                    dictWords.put(dictWord, dictLocales);
-                }
-                // Append the locale to the list of locales this word is in.
-                dictLocales.put(dictLocale, rawDictWord);
-
-                // If there is no column for a shortcut, we're done.
-                final int shortcutIndex = cursor.getColumnIndex(UserDictionary.Words.SHORTCUT);
-                if (shortcutIndex < 0) {
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "loadPersonalDictionary() : Entry without SHORTCUT, done");
-                    }
-                    continue;
-                }
-                // If the shortcut is null, we're done.
-                final String shortcut = cursor.getString(shortcutIndex);
-                if (shortcut == null) {
-                    if (DebugFlags.DEBUG_ENABLED) {
-                        Log.d(mTag, "loadPersonalDictionary() : Null shortcut");
-                    }
-                    continue;
-                }
-                // Else, save the shortcut.
-                HashMap<String, String> localeShortcuts = shortcutsPerLocale.get(dictLocale);
-                if (localeShortcuts == null) {
-                    localeShortcuts = new HashMap<>();
-                    shortcutsPerLocale.put(dictLocale, localeShortcuts);
-                }
-                // Map to the raw input, which might be capitalized.
-                // This lets the user create a shortcut from "gm" to "General Motors".
-                localeShortcuts.put(shortcut, rawDictWord);
-            }
-        }
-
-        List<DictionaryStats> stats = new ArrayList<>();
-        stats.add(new DictionaryStats(ANY_LOCALE, Dictionary.TYPE_USER, dictWords.size()));
-        int numShortcuts = 0;
-        for (HashMap<String, String> shortcuts : shortcutsPerLocale.values()) {
-            numShortcuts += shortcuts.size();
-        }
-        stats.add(new DictionaryStats(ANY_LOCALE, Dictionary.TYPE_USER_SHORTCUT, numShortcuts));
-        mDictionaryStats = stats;
-
-        // Atomically replace the copy of mDictWords and mShortcuts.
-        mDictWords = dictWords;
-        mShortcutsPerLocale = shortcutsPerLocale;
-
-        // Allow other calls to loadPersonalDictionary to execute now.
-        mIsLoading.set(false);
-
-        Log.i(mTag, "loadPersonalDictionary() : Loaded " + mDictWords.size()
-                + " words and " + numShortcuts + " shortcuts");
-
-        notifyListeners();
-    }
-}
diff --git a/java-overridable/src/com/android/inputmethod/latin/about/AboutPreferences.java b/java/src/com/android/inputmethod/latin/about/AboutPreferences.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/about/AboutPreferences.java
rename to java/src/com/android/inputmethod/latin/about/AboutPreferences.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java b/java/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
similarity index 97%
rename from java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
rename to java/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
index 60d420f..3c39c9a 100644
--- a/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
+++ b/java/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.latin.accounts;
 
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 
 import javax.annotation.Nullable;
 
diff --git a/java-overridable/src/com/android/inputmethod/latin/accounts/LoginAccountUtils.java b/java/src/com/android/inputmethod/latin/accounts/LoginAccountUtils.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/accounts/LoginAccountUtils.java
rename to java/src/com/android/inputmethod/latin/accounts/LoginAccountUtils.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/define/DebugFlags.java b/java/src/com/android/inputmethod/latin/define/DebugFlags.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/define/DebugFlags.java
rename to java/src/com/android/inputmethod/latin/define/DebugFlags.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java b/java/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java
rename to java/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/define/JniLibName.java b/java/src/com/android/inputmethod/latin/define/JniLibName.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/define/JniLibName.java
rename to java/src/com/android/inputmethod/latin/define/JniLibName.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/define/ProductionFlags.java b/java/src/com/android/inputmethod/latin/define/ProductionFlags.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/define/ProductionFlags.java
rename to java/src/com/android/inputmethod/latin/define/ProductionFlags.java
diff --git a/java/src/com/android/inputmethod/latin/permissions/PermissionsActivity.java b/java/src/com/android/inputmethod/latin/permissions/PermissionsActivity.java
index bdd63fa..36d8ed9 100644
--- a/java/src/com/android/inputmethod/latin/permissions/PermissionsActivity.java
+++ b/java/src/com/android/inputmethod/latin/permissions/PermissionsActivity.java
@@ -21,8 +21,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
 
 /**
  * An activity to help request permissions. It's used when no other activity is available, e.g. in
diff --git a/java/src/com/android/inputmethod/latin/permissions/PermissionsUtil.java b/java/src/com/android/inputmethod/latin/permissions/PermissionsUtil.java
index 747f64f..9a618a7 100644
--- a/java/src/com/android/inputmethod/latin/permissions/PermissionsUtil.java
+++ b/java/src/com/android/inputmethod/latin/permissions/PermissionsUtil.java
@@ -20,9 +20,9 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/java-overridable/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java b/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
rename to java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
diff --git a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
index 46fcc71..56e8f16 100644
--- a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
@@ -26,7 +26,7 @@
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceGroup;
-import android.support.v4.view.ViewCompat;
+import androidx.core.view.ViewCompat;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
index a7d157a..ac16577 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
@@ -25,7 +25,7 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.preference.PreferenceActivity;
-import android.support.v4.app.ActivityCompat;
+import androidx.core.app.ActivityCompat;
 import android.view.MenuItem;
 
 public final class SettingsActivity extends PreferenceActivity
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java b/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java
index 73d25f6..789694f 100644
--- a/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java
+++ b/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java
@@ -21,7 +21,7 @@
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Path;
-import android.support.v4.view.ViewCompat;
+import androidx.core.view.ViewCompat;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupStepIndicatorView.java b/java/src/com/android/inputmethod/latin/setup/SetupStepIndicatorView.java
index 6734e61..9a39cea 100644
--- a/java/src/com/android/inputmethod/latin/setup/SetupStepIndicatorView.java
+++ b/java/src/com/android/inputmethod/latin/setup/SetupStepIndicatorView.java
@@ -20,7 +20,7 @@
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Path;
-import android.support.v4.view.ViewCompat;
+import androidx.core.view.ViewCompat;
 import android.util.AttributeSet;
 import android.view.View;
 
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java b/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java
index 356d9d0..5f99f90 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java
@@ -24,7 +24,7 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.preference.PreferenceActivity;
-import android.support.v4.app.ActivityCompat;
+import androidx.core.app.ActivityCompat;
 
 /**
  * Spell checker preference screen.
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
index c1d1fad..840a4aa 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -21,7 +21,7 @@
 import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.graphics.drawable.Drawable;
-import android.support.v4.view.ViewCompat;
+import androidx.core.view.ViewCompat;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.TypedValue;
diff --git a/java-overridable/src/com/android/inputmethod/latin/touchinputconsumer/GestureConsumer.java b/java/src/com/android/inputmethod/latin/touchinputconsumer/GestureConsumer.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/touchinputconsumer/GestureConsumer.java
rename to java/src/com/android/inputmethod/latin/touchinputconsumer/GestureConsumer.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/DictionaryHeaderUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryHeaderUtils.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/utils/DictionaryHeaderUtils.java
rename to java/src/com/android/inputmethod/latin/utils/DictionaryHeaderUtils.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/FeedbackUtils.java b/java/src/com/android/inputmethod/latin/utils/FeedbackUtils.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/utils/FeedbackUtils.java
rename to java/src/com/android/inputmethod/latin/utils/FeedbackUtils.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/FileTransforms.java b/java/src/com/android/inputmethod/latin/utils/FileTransforms.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/utils/FileTransforms.java
rename to java/src/com/android/inputmethod/latin/utils/FileTransforms.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/ManagedProfileUtils.java b/java/src/com/android/inputmethod/latin/utils/ManagedProfileUtils.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/utils/ManagedProfileUtils.java
rename to java/src/com/android/inputmethod/latin/utils/ManagedProfileUtils.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java b/java/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java
rename to java/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java b/java/src/com/android/inputmethod/latin/utils/StatsUtils.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java
rename to java/src/com/android/inputmethod/latin/utils/StatsUtils.java
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java b/java/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java
similarity index 100%
rename from java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java
rename to java/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java
diff --git a/java/src/com/android/inputmethodcommon/InputMethodSettingsActivity.java b/java/src/com/android/inputmethodcommon/InputMethodSettingsActivity.java
new file mode 100644
index 0000000..6e868c9
--- /dev/null
+++ b/java/src/com/android/inputmethodcommon/InputMethodSettingsActivity.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2011 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.inputmethodcommon;
+
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+
+/**
+ * This is a helper class for an IME's settings preference activity. It's recommended for every
+ * IME to have its own settings preference activity which inherits this class.
+ */
+public abstract class InputMethodSettingsActivity extends PreferenceActivity
+        implements InputMethodSettingsInterface {
+    private final InputMethodSettingsImpl mSettings = new InputMethodSettingsImpl();
+    @SuppressWarnings("deprecation")
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setPreferenceScreen(getPreferenceManager().createPreferenceScreen(this));
+        mSettings.init(this, getPreferenceScreen());
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setInputMethodSettingsCategoryTitle(int resId) {
+        mSettings.setInputMethodSettingsCategoryTitle(resId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setInputMethodSettingsCategoryTitle(CharSequence title) {
+        mSettings.setInputMethodSettingsCategoryTitle(title);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerTitle(int resId) {
+        mSettings.setSubtypeEnablerTitle(resId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerTitle(CharSequence title) {
+        mSettings.setSubtypeEnablerTitle(title);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerIcon(int resId) {
+        mSettings.setSubtypeEnablerIcon(resId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerIcon(Drawable drawable) {
+        mSettings.setSubtypeEnablerIcon(drawable);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onResume() {
+        super.onResume();
+        mSettings.updateSubtypeEnabler();
+    }
+}
diff --git a/java/src/com/android/inputmethodcommon/InputMethodSettingsFragment.java b/java/src/com/android/inputmethodcommon/InputMethodSettingsFragment.java
new file mode 100644
index 0000000..49f0b87
--- /dev/null
+++ b/java/src/com/android/inputmethodcommon/InputMethodSettingsFragment.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2011 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.inputmethodcommon;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.preference.PreferenceFragment;
+
+/**
+ * This is a helper class for an IME's settings preference fragment. It's recommended for every
+ * IME to have its own settings preference fragment which inherits this class.
+ */
+public abstract class InputMethodSettingsFragment extends PreferenceFragment
+        implements InputMethodSettingsInterface {
+    private final InputMethodSettingsImpl mSettings = new InputMethodSettingsImpl();
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        final Context context = getActivity();
+        setPreferenceScreen(getPreferenceManager().createPreferenceScreen(context));
+        mSettings.init(context, getPreferenceScreen());
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setInputMethodSettingsCategoryTitle(int resId) {
+        mSettings.setInputMethodSettingsCategoryTitle(resId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setInputMethodSettingsCategoryTitle(CharSequence title) {
+        mSettings.setInputMethodSettingsCategoryTitle(title);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerTitle(int resId) {
+        mSettings.setSubtypeEnablerTitle(resId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerTitle(CharSequence title) {
+        mSettings.setSubtypeEnablerTitle(title);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerIcon(int resId) {
+        mSettings.setSubtypeEnablerIcon(resId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerIcon(Drawable drawable) {
+        mSettings.setSubtypeEnablerIcon(drawable);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onResume() {
+        super.onResume();
+        mSettings.updateSubtypeEnabler();
+    }
+}
diff --git a/java/src/com/android/inputmethodcommon/InputMethodSettingsImpl.java b/java/src/com/android/inputmethodcommon/InputMethodSettingsImpl.java
new file mode 100644
index 0000000..cfa1a65
--- /dev/null
+++ b/java/src/com/android/inputmethodcommon/InputMethodSettingsImpl.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2011 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.inputmethodcommon;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;
+import android.preference.PreferenceScreen;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.view.inputmethod.InputMethodInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.view.inputmethod.InputMethodSubtype;
+
+import java.util.List;
+
+/* package private */ class InputMethodSettingsImpl implements InputMethodSettingsInterface {
+    private Preference mSubtypeEnablerPreference;
+    private int mInputMethodSettingsCategoryTitleRes;
+    private CharSequence mInputMethodSettingsCategoryTitle;
+    private int mSubtypeEnablerTitleRes;
+    private CharSequence mSubtypeEnablerTitle;
+    private int mSubtypeEnablerIconRes;
+    private Drawable mSubtypeEnablerIcon;
+    private InputMethodManager mImm;
+    private InputMethodInfo mImi;
+
+    /**
+     * Initialize internal states of this object.
+     * @param context the context for this application.
+     * @param prefScreen a PreferenceScreen of PreferenceActivity or PreferenceFragment.
+     * @return true if this application is an IME and has two or more subtypes, false otherwise.
+     */
+    public boolean init(final Context context, final PreferenceScreen prefScreen) {
+        mImm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
+        mImi = getMyImi(context, mImm);
+        if (mImi == null || mImi.getSubtypeCount() <= 1) {
+            return false;
+        }
+        final Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SUBTYPE_SETTINGS);
+        intent.putExtra(Settings.EXTRA_INPUT_METHOD_ID, mImi.getId());
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
+                | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        mSubtypeEnablerPreference = new Preference(context);
+        mSubtypeEnablerPreference.setIntent(intent);
+        prefScreen.addPreference(mSubtypeEnablerPreference);
+        updateSubtypeEnabler();
+        return true;
+    }
+
+    private static InputMethodInfo getMyImi(Context context, InputMethodManager imm) {
+        final List<InputMethodInfo> imis = imm.getInputMethodList();
+        for (int i = 0; i < imis.size(); ++i) {
+            final InputMethodInfo imi = imis.get(i);
+            if (imis.get(i).getPackageName().equals(context.getPackageName())) {
+                return imi;
+            }
+        }
+        return null;
+    }
+
+    private static String getEnabledSubtypesLabel(
+            Context context, InputMethodManager imm, InputMethodInfo imi) {
+        if (context == null || imm == null || imi == null) return null;
+        final List<InputMethodSubtype> subtypes = imm.getEnabledInputMethodSubtypeList(imi, true);
+        final StringBuilder sb = new StringBuilder();
+        final int N = subtypes.size();
+        for (int i = 0; i < N; ++i) {
+            final InputMethodSubtype subtype = subtypes.get(i);
+            if (sb.length() > 0) {
+                sb.append(", ");
+            }
+            sb.append(subtype.getDisplayName(context, imi.getPackageName(),
+                    imi.getServiceInfo().applicationInfo));
+        }
+        return sb.toString();
+    }
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setInputMethodSettingsCategoryTitle(int resId) {
+        mInputMethodSettingsCategoryTitleRes = resId;
+        updateSubtypeEnabler();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setInputMethodSettingsCategoryTitle(CharSequence title) {
+        mInputMethodSettingsCategoryTitleRes = 0;
+        mInputMethodSettingsCategoryTitle = title;
+        updateSubtypeEnabler();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerTitle(int resId) {
+        mSubtypeEnablerTitleRes = resId;
+        updateSubtypeEnabler();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerTitle(CharSequence title) {
+        mSubtypeEnablerTitleRes = 0;
+        mSubtypeEnablerTitle = title;
+        updateSubtypeEnabler();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerIcon(int resId) {
+        mSubtypeEnablerIconRes = resId;
+        updateSubtypeEnabler();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void setSubtypeEnablerIcon(Drawable drawable) {
+        mSubtypeEnablerIconRes = 0;
+        mSubtypeEnablerIcon = drawable;
+        updateSubtypeEnabler();
+    }
+
+    public void updateSubtypeEnabler() {
+        final Preference pref = mSubtypeEnablerPreference;
+        if (pref == null) {
+            return;
+        }
+        final Context context = pref.getContext();
+        final CharSequence title;
+        if (mSubtypeEnablerTitleRes != 0) {
+            title = context.getString(mSubtypeEnablerTitleRes);
+        } else {
+            title = mSubtypeEnablerTitle;
+        }
+        pref.setTitle(title);
+        final Intent intent = pref.getIntent();
+        if (intent != null) {
+            intent.putExtra(Intent.EXTRA_TITLE, title);
+        }
+        final String summary = getEnabledSubtypesLabel(context, mImm, mImi);
+        if (!TextUtils.isEmpty(summary)) {
+            pref.setSummary(summary);
+        }
+        if (mSubtypeEnablerIconRes != 0) {
+            pref.setIcon(mSubtypeEnablerIconRes);
+        } else {
+            pref.setIcon(mSubtypeEnablerIcon);
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethodcommon/InputMethodSettingsInterface.java b/java/src/com/android/inputmethodcommon/InputMethodSettingsInterface.java
new file mode 100644
index 0000000..6e97fae
--- /dev/null
+++ b/java/src/com/android/inputmethodcommon/InputMethodSettingsInterface.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2011 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.inputmethodcommon;
+
+import android.graphics.drawable.Drawable;
+
+/**
+ * InputMethodSettingsInterface is the interface for adding IME related preferences to
+ * PreferenceActivity or PreferenceFragment.
+ */
+public interface InputMethodSettingsInterface {
+    /**
+     * Sets the title for the input method settings category with a resource ID.
+     * @param resId The resource ID of the title.
+     */
+    public void setInputMethodSettingsCategoryTitle(int resId);
+
+    /**
+     * Sets the title for the input method settings category with a CharSequence.
+     * @param title The title for this preference.
+     */
+    public void setInputMethodSettingsCategoryTitle(CharSequence title);
+
+    /**
+     * Sets the title for the input method enabler preference for launching subtype enabler with a
+     * resource ID.
+     * @param resId The resource ID of the title.
+     */
+    public void setSubtypeEnablerTitle(int resId);
+
+    /**
+     * Sets the title for the input method enabler preference for launching subtype enabler with a
+     * CharSequence.
+     * @param title The title for this preference.
+     */
+    public void setSubtypeEnablerTitle(CharSequence title);
+
+    /**
+     * Sets the icon for the preference for launching subtype enabler with a resource ID.
+     * @param resId The resource id of an optional icon for the preference.
+     */
+    public void setSubtypeEnablerIcon(int resId);
+
+    /**
+     * Sets the icon for the Preference for launching subtype enabler with a Drawable.
+     * @param drawable The drawable of an optional icon for the preference.
+     */
+    public void setSubtypeEnablerIcon(Drawable drawable);
+}
diff --git a/native/jni/Android.mk b/native/jni/Android.mk
index 5384648..b9fc414 100644
--- a/native/jni/Android.mk
+++ b/native/jni/Android.mk
@@ -29,7 +29,7 @@
 
 LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wformat=2 -Wcast-qual -Wcast-align \
     -Wwrite-strings -Wfloat-equal -Wpointer-arith -Winit-self -Wredundant-decls \
-    -Woverloaded-virtual -Wsign-promo -Wno-system-headers
+    -Woverloaded-virtual -Wsign-promo -Wno-system-headers -Wno-format-nonliteral
 
 # To suppress compiler warnings for unused variables/functions used for debug features etc.
 LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function
@@ -95,9 +95,6 @@
 #################### Clean up the tmp vars
 include $(LOCAL_PATH)/CleanupNativeFileList.mk
 
-#################### Unit test on host environment
-include $(LOCAL_PATH)/HostUnitTests.mk
-
 #################### Unit test on target environment
 include $(LOCAL_PATH)/TargetUnitTests.mk
 //LOCAL_CFLAGS += -Wall -Werror
diff --git a/native/jni/HostUnitTests.mk b/native/jni/HostUnitTests.mk
deleted file mode 100644
index 94cd764..0000000
--- a/native/jni/HostUnitTests.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright (C) 2014 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.
-
-# Host build is never supported in unbundled (NDK/tapas) build
-ifeq (,$(TARGET_BUILD_APPS))
-
-# HACK: Temporarily disable host tool build on Mac until the build system is ready for C++11.
-LATINIME_HOST_OSNAME := $(shell uname -s)
-ifneq ($(LATINIME_HOST_OSNAME), Darwin) # TODO: Remove this
-
-LOCAL_PATH := $(call my-dir)
-
-######################################
-include $(CLEAR_VARS)
-
-include $(LOCAL_PATH)/NativeFileList.mk
-
-#################### Host library for unit test
-LATIN_IME_SRC_DIR := src
-LOCAL_ADDRESS_SANITIZER := true
-LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function -Wall -Werror
-LOCAL_CXX_STL := libc++
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)
-LOCAL_MODULE := liblatinime_host_static_for_unittests
-LOCAL_MODULE_TAGS := optional
-LOCAL_SRC_FILES := $(addprefix $(LATIN_IME_SRC_DIR)/, $(LATIN_IME_CORE_SRC_FILES))
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-#################### Host native tests
-include $(CLEAR_VARS)
-LATIN_IME_TEST_SRC_DIR := tests
-LOCAL_ADDRESS_SANITIZER := true
-LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function
-LOCAL_CFLAGS += -Wall -Werror
-LOCAL_CXX_STL := libc++
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)
-LOCAL_MODULE := liblatinime_host_unittests
-LOCAL_MODULE_TAGS := tests
-LOCAL_SRC_FILES := $(addprefix $(LATIN_IME_TEST_SRC_DIR)/, $(LATIN_IME_CORE_TEST_FILES))
-LOCAL_STATIC_LIBRARIES += liblatinime_host_static_for_unittests
-include $(BUILD_HOST_NATIVE_TEST)
-
-include $(LOCAL_PATH)/CleanupNativeFileList.mk
-
-endif # Darwin - TODO: Remove this
-
-endif # TARGET_BUILD_APPS
-
-#################### Clean up the tmp vars
-LATINIME_HOST_OSNAME :=
-LATIN_IME_SRC_DIR :=
-LATIN_IME_TEST_SRC_DIR :=
diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h
index 10b930e..1531b6c 100644
--- a/native/jni/src/defines.h
+++ b/native/jni/src/defines.h
@@ -17,6 +17,8 @@
 #ifndef LATINIME_DEFINES_H
 #define LATINIME_DEFINES_H
 
+#include <cstdint>
+
 #ifdef __GNUC__
 #define AK_FORCE_INLINE __attribute__((always_inline)) __inline__
 #else // __GNUC__
@@ -51,7 +53,7 @@
     int si = 0;
     int di = 0;
     while (si < sourceSize && di < destLimit && 0 != source[si]) {
-        const int codePoint = source[si++];
+        const uint32_t codePoint = static_cast<uint32_t>(source[si++]);
         if (codePoint < 0x7F) { // One byte
             dest[di++] = codePoint;
         } else if (codePoint < 0x7FF) { // Two bytes
diff --git a/tests/Android.mk b/tests/Android.mk
index 7c0bb4f..23b0a93 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -19,6 +19,10 @@
 LOCAL_MODULE_TAGS := tests
 LOCAL_CERTIFICATE := shared
 
+LOCAL_FULL_LIBS_MANIFEST_FILES := \
+    $(LOCAL_PATH)/AndroidManifest.xml \
+    $(LOCAL_PATH)/AndroidManifest_SdkVersion.xml
+
 # Do not compress dictionary files to mmap dict data runtime
 LOCAL_AAPT_FLAGS += -0 .dict
 # Do not compress test data file
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index c7a9e13..cf778c1 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -15,9 +15,8 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.inputmethod.latin.tests">
-
-    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
+    package="com.android.inputmethod.latin.tests"
+    android:versionCode="28">
 
     <uses-permission android:name="android.permission.READ_CONTACTS" />
 
diff --git a/tests/AndroidManifest_SdkVersion.xml b/tests/AndroidManifest_SdkVersion.xml
new file mode 100644
index 0000000..5d3268c
--- /dev/null
+++ b/tests/AndroidManifest_SdkVersion.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.inputmethod.latin.tests">
+    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
+</manifest>
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
new file mode 100644
index 0000000..d560cb9
--- /dev/null
+++ b/tests/AndroidTest.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+<configuration description="Runs Tests for LatinIME.">
+    <!--
+        To run this test with atest, run the following commands:
+
+            tapas adb LatinIME LatinIMETests arm64 userdebug && \
+            DISABLE_PROGUARD=true make -j LatinIME && \
+            adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
+            atest LatinIMETests
+
+        currently tradefed does not look up files under $OUT/system/
+        hence we cannot rely on "test-file-name" to install LatinIME.apk
+    -->
+
+    <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
+        <option name="cleanup-apks" value="true" />
+        <option name="test-file-name" value="LatinIMETests.apk" />
+    </target_preparer>
+
+    <option name="test-tag" value="LatinIMETests" />
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+        <option name="package" value="com.android.inputmethod.latin.tests" />
+        <option name="runner" value="android.support.test.runner.AndroidJUnitRunner" />
+        <option name="hidden-api-checks" value="false"/>
+    </test>
+</configuration>
diff --git a/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java b/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java
index 67e7646..05c15ec 100644
--- a/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java
+++ b/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java
@@ -16,18 +16,29 @@
 
 package com.android.inputmethod.compat;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import android.graphics.Typeface;
 import android.os.Build;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.text.SpannableString;
 import android.text.Spanned;
 import android.text.style.StyleSpan;
 
 import java.util.Locale;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class LocaleSpanCompatUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class LocaleSpanCompatUtilsTests {
+    @Test
     public void testInstantiatable() {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
             // LocaleSpan isn't yet available.
@@ -61,6 +72,7 @@
         assertEquals(expectedCount, spans.length);
     }
 
+    @Test
     public void testUpdateLocaleSpan() {
         if (!LocaleSpanCompatUtils.isLocaleSpanAvailable()) {
             return;
diff --git a/tests/src/com/android/inputmethod/compat/SuggestionSpanUtilsTest.java b/tests/src/com/android/inputmethod/compat/SuggestionSpanUtilsTest.java
index 2d6d28f..820648d 100644
--- a/tests/src/com/android/inputmethod/compat/SuggestionSpanUtilsTest.java
+++ b/tests/src/com/android/inputmethod/compat/SuggestionSpanUtilsTest.java
@@ -16,10 +16,15 @@
 
 package com.android.inputmethod.compat;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import android.annotation.TargetApi;
+import android.content.Context;
 import android.os.Build;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.text.Spanned;
 import android.text.TextUtils;
 import android.text.style.SuggestionSpan;
@@ -33,8 +38,16 @@
 
 import javax.annotation.Nullable;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class SuggestionSpanUtilsTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SuggestionSpanUtilsTest {
+
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
 
     /**
      * Helper method to create a dummy {@link SuggestedWordInfo}.
@@ -91,6 +104,7 @@
     }
 
     @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
+    @Test
     public void testGetTextWithAutoCorrectionIndicatorUnderline() {
         final String ORIGINAL_TEXT = "Hey!";
         final Locale NONNULL_LOCALE = new Locale("en", "GB");
@@ -107,6 +121,7 @@
     }
 
     @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
+    @Test
     public void testGetTextWithAutoCorrectionIndicatorUnderlineRootLocale() {
         final String ORIGINAL_TEXT = "Hey!";
         final CharSequence text = SuggestionSpanUtils.getTextWithAutoCorrectionIndicatorUnderline(
@@ -121,6 +136,7 @@
                 new String[]{}, Locale.ROOT, text);
     }
 
+    @Test
     public void testGetTextWithSuggestionSpan() {
         final SuggestedWordInfo prediction1 =
                 createWordInfo("Quality", SuggestedWordInfo.KIND_PREDICTION);
@@ -218,6 +234,7 @@
         }
     }
 
+    @Test
     public void testFindFirstLocaleFromSuggestionSpans() {
         final String[] suggestions = new String[] {"Quality", "Speed", "Price"};
         final SuggestionSpan nullLocaleSpan = new SuggestionSpan((Locale)null, suggestions, 0);
diff --git a/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java b/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java
index c399cce..ec7c2ab 100644
--- a/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java
+++ b/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java
@@ -16,10 +16,12 @@
 
 package com.android.inputmethod.compat;
 
+import static org.junit.Assert.assertTrue;
+
 import android.graphics.Typeface;
 import android.os.Parcel;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.text.SpannableString;
 import android.text.Spanned;
 import android.text.TextUtils;
@@ -29,8 +31,13 @@
 
 import java.util.Arrays;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class TextInfoCompatUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class TextInfoCompatUtilsTests {
     final private static String TEST_TEXT = "0123456789";
     final private static int TEST_COOKIE = 0x1234;
     final private static int TEST_SEQUENCE_NUMBER = 0x4321;
@@ -45,6 +52,7 @@
     final private static int TEST_URL_SPAN_END = 7;
     final private static int TEST_URL_SPAN_FLAGS = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
 
+    @Test
     public void testGetCharSequence() {
         final SpannableString text = new SpannableString(TEST_TEXT);
         text.setSpan(TEST_STYLE_SPAN, TEST_STYLE_SPAN_START, TEST_STYLE_SPAN_END,
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutTest.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutTest.java
index 1e1f82f..d620a77 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutTest.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutTest.java
@@ -18,15 +18,17 @@
 
 import static org.junit.Assert.assertEquals;
 
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import java.util.ArrayList;
 
 import org.junit.Test;
+import org.junit.runner.RunWith;
 
 @SmallTest
+@RunWith(AndroidJUnit4.class)
 public class KeyboardLayoutTest {
-
     @Test
     public void testNewKeyboardLayout() {
         KeyboardLayout keyboardLayout = KeyboardLayout
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
index 33e88c1..5942773 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
@@ -16,22 +16,34 @@
 
 package com.android.inputmethod.keyboard;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_ICS;
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_KLP;
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_LXX_DARK;
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_LXX_LIGHT;
 
+import android.content.Context;
 import android.content.SharedPreferences;
 import android.os.Build;
 import android.os.Build.VERSION_CODES;
 import android.preference.PreferenceManager;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import java.util.Arrays;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class KeyboardThemeTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class KeyboardThemeTests {
     private SharedPreferences mPrefs;
 
     private static final int THEME_ID_NULL = -1;
@@ -39,9 +51,12 @@
     private static final int THEME_ID_ILLEGAL = -3;
     private static final String ILLEGAL_THEME_ID_STRING = "ThisCausesNumberFormatExecption";
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+
+    @Before
+    public void setUp() throws Exception {
         mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
     }
 
@@ -110,6 +125,7 @@
         assertKeyboardThemePreference(sdkVersion, THEME_ID_ILLEGAL, defaultThemeId);
     }
 
+    @Test
     public void testKeyboardThemePreferenceOnKlp() {
         assertKeyboardThemePreferenceOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH);
         assertKeyboardThemePreferenceOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
@@ -130,6 +146,7 @@
         assertKeyboardThemePreference(sdkVersion, THEME_ID_ILLEGAL, defaultThemeId);
     }
 
+    @Test
     public void testKeyboardThemePreferenceOnLxx() {
         assertKeyboardThemePreferenceOnLxx(Build.VERSION_CODES.LOLLIPOP);
     }
@@ -165,6 +182,7 @@
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_KLP);
     }
 
+    @Test
     public void testDefaultKeyboardThemeOnKlp() {
         assertDefaultKeyboardThemeOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH);
         assertDefaultKeyboardThemeOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
@@ -183,6 +201,7 @@
         assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT);
     }
 
+    @Test
     public void testDefaultKeyboardThemeOnLxx() {
         assertDefaultKeyboardThemeOnLxx(Build.VERSION_CODES.LOLLIPOP);
     }
@@ -231,6 +250,7 @@
     }
 
     // Upgrading keyboard on I,J and K.
+    @Test
     public void testUpgradeKeyboardToLxxOnKlp() {
         assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH);
         assertUpgradeKeyboardToLxxOnKlp(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
@@ -250,6 +270,7 @@
     }
 
     // Upgrading keyboard on L.
+    @Test
     public void testUpgradeKeyboardToLxxOnLxx() {
         assertUpgradeKeyboardToLxxOnLxx(Build.VERSION_CODES.LOLLIPOP);
     }
@@ -293,6 +314,7 @@
     }
 
     // Update platform from I,J, and K to I,J, and K
+    @Test
     public void testUpgradePlatformToKlpFromKlp() {
         assertUpgradePlatformToKlpFrom(VERSION_CODES.ICE_CREAM_SANDWICH);
         assertUpgradePlatformToKlpFrom(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
@@ -318,6 +340,7 @@
     }
 
     // Update platform from I,J, and K to L
+    @Test
     public void testUpgradePlatformToLxx() {
         assertUpgradePlatformToLxxFrom(VERSION_CODES.ICE_CREAM_SANDWICH);
         assertUpgradePlatformToLxxFrom(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
@@ -328,6 +351,7 @@
     }
 
     // Update platform from L to L.
+    @Test
     public void testUpgradePlatformToLxxFromLxx() {
         final int oldSdkVersion = Build.VERSION_CODES.LOLLIPOP;
         final int newSdkVersion = Build.VERSION_CODES.LOLLIPOP;
@@ -364,10 +388,12 @@
         }
     }
 
+    @Test
     public void testSortedKeyboardTheme() {
         assertSortedKeyboardThemeArray(KeyboardTheme.KEYBOARD_THEMES);
     }
 
+    @Test
     public void testSortedAvailableKeyboardTheme() {
         assertSortedKeyboardThemeArray(KeyboardTheme.getAvailableThemeArray(getContext()));
     }
@@ -384,6 +410,7 @@
         assertSortedKeyboardThemeArray(LIMITED_THEMES);
     }
 
+    @Test
     public void testMissingSelectedThemeIcs() {
         // Clean up preferences.
         setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
@@ -399,6 +426,7 @@
         assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
     }
 
+    @Test
     public void testMissingSelectedThemeKlp() {
         // Clean up preferences.
         setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
@@ -414,6 +442,7 @@
         assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
     }
 
+    @Test
     public void testMissingSelectedThemeLxx() {
         // Clean up preferences.
         setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
diff --git a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderAutoOrderTests.java b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderAutoOrderTests.java
index ebefe2d..2c15a02 100644
--- a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderAutoOrderTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderAutoOrderTests.java
@@ -16,13 +16,21 @@
 
 package com.android.inputmethod.keyboard;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.keyboard.MoreKeysKeyboard.MoreKeysKeyboardParams;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @MediumTest
-public class MoreKeysKeyboardBuilderAutoOrderTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class MoreKeysKeyboardBuilderAutoOrderTests {
     private static final int WIDTH = 10;
     private static final int HEIGHT = 10;
 
@@ -38,11 +46,6 @@
     private static final int XPOS_R1 = WIDTH * 8 + WIDTH / 2;
     private static final int XPOS_R0 = WIDTH * 9 + WIDTH / 2;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
     private static MoreKeysKeyboardParams createParams(final int numKeys, final int columnNum,
             final int coordXInParent) {
         final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
@@ -52,6 +55,7 @@
         return params;
     }
 
+    @Test
     public void testLayoutError() {
         MoreKeysKeyboardParams params = null;
         try {
@@ -69,6 +73,7 @@
     // "<1>" is the default key.
 
     // <1>
+    @Test
     public void testLayout1KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_M0);
         assertEquals("1 key auto 5 M0 columns", 1, params.mNumColumns);
@@ -81,6 +86,7 @@
     }
 
     // |<1>
+    @Test
     public void testLayout1KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L0);
         assertEquals("1 key auto 5 L0 columns", 1, params.mNumColumns);
@@ -93,6 +99,7 @@
     }
 
     // |___ <1>
+    @Test
     public void testLayout1KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L1);
         assertEquals("1 key auto 5 L1 columns", 1, params.mNumColumns);
@@ -105,6 +112,7 @@
     }
 
     // |___ ___ <1>
+    @Test
     public void testLayout1KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L2);
         assertEquals("1 key auto 5 L2 columns", 1, params.mNumColumns);
@@ -117,6 +125,7 @@
     }
 
     // <1>|
+    @Test
     public void testLayout1KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R0);
         assertEquals("1 key auto 5 R0 columns", 1, params.mNumColumns);
@@ -129,6 +138,7 @@
     }
 
     // <1> ___|
+    @Test
     public void testLayout1KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R1);
         assertEquals("1 key auto 5 R1 columns", 1, params.mNumColumns);
@@ -141,6 +151,7 @@
     }
 
     // <1> ___ ___|
+    @Test
     public void testLayout1KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R2);
         assertEquals("1 key auto 5 R2 columns", 1, params.mNumColumns);
@@ -153,6 +164,7 @@
     }
 
     // <1> [2]
+    @Test
     public void testLayout2KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_M0);
         assertEquals("2 key auto 5 M0 columns", 2, params.mNumColumns);
@@ -166,6 +178,7 @@
     }
 
     // |<1> [2]
+    @Test
     public void testLayout2KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L0);
         assertEquals("2 key auto 5 L0 columns", 2, params.mNumColumns);
@@ -179,6 +192,7 @@
     }
 
     // |___ <1> [2]
+    @Test
     public void testLayout2KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L1);
         assertEquals("2 key auto 5 L1 columns", 2, params.mNumColumns);
@@ -192,6 +206,7 @@
     }
 
     // |___ ___ <1> [2]
+    @Test
     public void testLayout2KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L2);
         assertEquals("2 key auto 5 L2 columns", 2, params.mNumColumns);
@@ -205,6 +220,7 @@
     }
 
     // [2] <1>|
+    @Test
     public void testLayout2KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R0);
         assertEquals("2 key auto 5 R0 columns", 2, params.mNumColumns);
@@ -218,6 +234,7 @@
     }
 
     // [2] <1> ___|
+    @Test
     public void testLayout2KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R1);
         assertEquals("2 key auto 5 R1 columns", 2, params.mNumColumns);
@@ -231,6 +248,7 @@
     }
 
     // <1> [2] ___|
+    @Test
     public void testLayout2KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R2);
         assertEquals("2 key auto 5 R2 columns", 2, params.mNumColumns);
@@ -244,6 +262,7 @@
     }
 
     // [3] <1> [2]
+    @Test
     public void testLayout3KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_M0);
         assertEquals("3 key auto 5 M0 columns", 3, params.mNumColumns);
@@ -258,6 +277,7 @@
     }
 
     // |<1> [2] [3]
+    @Test
     public void testLayout3KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L0);
         assertEquals("3 key auto 5 L0 columns", 3, params.mNumColumns);
@@ -272,6 +292,7 @@
     }
 
     // |___ <1> [2] [3]
+    @Test
     public void testLayout3KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L1);
         assertEquals("3 key auto 5 L1 columns", 3, params.mNumColumns);
@@ -286,6 +307,7 @@
     }
 
     // |___ [3] <1> [2]
+    @Test
     public void testLayout3KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L2);
         assertEquals("3 key auto 5 L2 columns", 3, params.mNumColumns);
@@ -300,6 +322,7 @@
     }
 
     // [3] [2] <1>|
+    @Test
     public void testLayout3KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R0);
         assertEquals("3 key auto 5 R0 columns", 3, params.mNumColumns);
@@ -314,6 +337,7 @@
     }
 
     // [3] [2] <1> ___|
+    @Test
     public void testLayout3KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R1);
         assertEquals("3 key auto 5 R1 columns", 3, params.mNumColumns);
@@ -328,6 +352,7 @@
     }
 
     // [3] <1> [2] ___|
+    @Test
     public void testLayout3KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R2);
         assertEquals("3 key auto 5 R2 columns", 3, params.mNumColumns);
@@ -343,6 +368,7 @@
 
     // [3]
     // <1> [2]
+    @Test
     public void testLayout3KeyAuto2M0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_M0);
         assertEquals("3 key auto 2 M0 columns", 2, params.mNumColumns);
@@ -358,6 +384,7 @@
 
     // |[3]
     // |<1> [2]
+    @Test
     public void testLayout3KeyAuto2L0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L0);
         assertEquals("3 key auto 2 L0 columns", 2, params.mNumColumns);
@@ -373,6 +400,7 @@
 
     // |___ [3]
     // |___ <1> [2]
+    @Test
     public void testLayout3KeyAuto2L1() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L1);
         assertEquals("3 key auto 2 L1 columns", 2, params.mNumColumns);
@@ -388,6 +416,7 @@
 
     // |        [3]
     // |___ ___ <1> [2]
+    @Test
     public void testLayout3KeyAuto2L2() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L2);
         assertEquals("3 key auto 2 L2 columns", 2, params.mNumColumns);
@@ -403,6 +432,7 @@
 
     //     [3]|
     // [2] <1>|
+    @Test
     public void testLayout3KeyAuto2R0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R0);
         assertEquals("3 key auto 2 R0 columns", 2, params.mNumColumns);
@@ -418,6 +448,7 @@
 
     //     [3]    |
     // [2] <1> ___|
+    @Test
     public void testLayout3KeyAuto2R1() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R1);
         assertEquals("3 key auto 2 R1 columns", 2, params.mNumColumns);
@@ -433,6 +464,7 @@
 
     // [3]        |
     // <1> [2] ___|
+    @Test
     public void testLayout3KeyAuto2R2() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R2);
         assertEquals("3 key auto 2 R2 columns", 2, params.mNumColumns);
@@ -448,6 +480,7 @@
 
     //     [4]
     // [3] <1> [2]
+    @Test
     public void testLayout4KeyAuto3M0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_M0);
         assertEquals("4 key auto 3 M0 columns", 3, params.mNumColumns);
@@ -464,6 +497,7 @@
 
     // |[4]
     // |<1> [2] [3]
+    @Test
     public void testLayout4KeyAuto3L0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L0);
         assertEquals("4 key auto 3 L0 columns", 3, params.mNumColumns);
@@ -480,6 +514,7 @@
 
     // |___ [4]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout4KeyAuto3L1() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L1);
         assertEquals("4 key auto 3 L1 columns", 3, params.mNumColumns);
@@ -496,6 +531,7 @@
 
     // |___ ___ [4]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout4KeyAuto3L2() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L2);
         assertEquals("4 key auto 3 L2 columns", 3, params.mNumColumns);
@@ -512,6 +548,7 @@
 
     //         [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout4KeyAuto3R0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R0);
         assertEquals("4 key auto 3 R0 columns", 3, params.mNumColumns);
@@ -528,6 +565,7 @@
 
     //         [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout4KeyAuto3R1() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R1);
         assertEquals("4 key auto 3 R1 columns", 3, params.mNumColumns);
@@ -544,6 +582,7 @@
 
     //     [4]     ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout4KeyAuto3R2() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R2);
         assertEquals("4 key auto 3 R2 columns", 3, params.mNumColumns);
@@ -559,6 +598,7 @@
     }
 
     // [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyAuto4M0() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_M0);
         assertEquals("4 key auto 4 M0 columns", 4, params.mNumColumns);
@@ -574,6 +614,7 @@
     }
 
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout4KeyAuto4L0() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_L0);
         assertEquals("4 key auto 4 L0 columns", 4, params.mNumColumns);
@@ -589,6 +630,7 @@
     }
 
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout4KeyAuto4L1() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_L1);
         assertEquals("4 key auto 4 L1 columns", 4, params.mNumColumns);
@@ -604,6 +646,7 @@
     }
 
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyAuto4L2() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_L2);
         assertEquals("4 key auto 4 L2 columns", 4, params.mNumColumns);
@@ -619,6 +662,7 @@
     }
 
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout4KeyAuto4R0() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_R0);
         assertEquals("4 key auto 4 R0 columns", 4, params.mNumColumns);
@@ -634,6 +678,7 @@
     }
 
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout4KeyAuto4R1() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_R1);
         assertEquals("4 key auto 4 R1 columns", 4, params.mNumColumns);
@@ -649,6 +694,7 @@
     }
 
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout4KeyAuto4R2() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_R2);
         assertEquals("4 key auto 4 R2 columns", 4, params.mNumColumns);
@@ -664,6 +710,7 @@
     }
 
     // [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_M0);
         assertEquals("4 key auto 5 M0 columns", 4, params.mNumColumns);
@@ -679,6 +726,7 @@
     }
 
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout4KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L0);
         assertEquals("4 key auto 5 L0 columns", 4, params.mNumColumns);
@@ -694,6 +742,7 @@
     }
 
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout4KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L1);
         assertEquals("4 key auto 5 L1 columns", 4, params.mNumColumns);
@@ -709,6 +758,7 @@
     }
 
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L2);
         assertEquals("4 key auto 5 L2 columns", 4, params.mNumColumns);
@@ -724,6 +774,7 @@
     }
 
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout4KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R0);
         assertEquals("4 key auto 5 R0 columns", 4, params.mNumColumns);
@@ -739,6 +790,7 @@
     }
 
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout4KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R1);
         assertEquals("4 key auto 5 R1 columns", 4, params.mNumColumns);
@@ -754,6 +806,7 @@
     }
 
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout4KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R2);
         assertEquals("4 key auto 5 R2 columns", 4, params.mNumColumns);
@@ -770,6 +823,7 @@
 
     //   [4] [5]
     // [3] <1> [2]
+    @Test
     public void testLayout5KeyAuto3M0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_M0);
         assertEquals("5 key auto 3 M0 columns", 3, params.mNumColumns);
@@ -787,6 +841,7 @@
 
     // |[4] [5]
     // |<1> [2] [3]
+    @Test
     public void testLayout5KeyAuto3L0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L0);
         assertEquals("5 key auto 3 L0 columns", 3, params.mNumColumns);
@@ -804,6 +859,7 @@
 
     // |___ [4] [5]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout5KeyAuto3L1() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L1);
         assertEquals("5 key auto 3 L1 columns", 3, params.mNumColumns);
@@ -821,6 +877,7 @@
 
     // |___   [4] [5]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout5KeyAuto3L2() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L2);
         assertEquals("5 key auto 3 L2 columns", 3, params.mNumColumns);
@@ -838,6 +895,7 @@
 
     //     [5] [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout5KeyAuto3R0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R0);
         assertEquals("5 key auto 3 R0 columns", 3, params.mNumColumns);
@@ -855,6 +913,7 @@
 
     //     [5] [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout5KeyAuto3R1() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R1);
         assertEquals("5 key auto 3 R1 columns", 3, params.mNumColumns);
@@ -872,6 +931,7 @@
 
     //   [4] [5]   ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout5KeyAuto3R2() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R2);
         assertEquals("5 key auto 3 R2 columns", 3, params.mNumColumns);
@@ -889,6 +949,7 @@
 
     //     [5]
     // [3] <1> [2] [4]
+    @Test
     public void testLayout5KeyAuto4M0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_M0);
         assertEquals("5 key auto 4 M0 columns", 4, params.mNumColumns);
@@ -906,6 +967,7 @@
 
     // |[5]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout5KeyAuto4L0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L0);
         assertEquals("5 key auto 4 L0 columns", 4, params.mNumColumns);
@@ -923,6 +985,7 @@
 
     // |___ [5]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout5KeyAuto4L1() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L1);
         assertEquals("5 key auto 4 L1 columns", 4, params.mNumColumns);
@@ -940,6 +1003,7 @@
 
     // |___     [5]
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout5KeyAuto4L2() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L2);
         assertEquals("5 key auto 4 L2 columns", 4, params.mNumColumns);
@@ -957,6 +1021,7 @@
 
     //             [5]|
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout5KeyAuto4R0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R0);
         assertEquals("5 key auto 4 R0 columns", 4, params.mNumColumns);
@@ -974,6 +1039,7 @@
 
     //             [5] ___|
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout5KeyAuto4R1() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R1);
         assertEquals("5 key auto 4 R1 columns", 4, params.mNumColumns);
@@ -991,6 +1057,7 @@
 
     //         [5]     ___|
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout5KeyAuto4R2() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R2);
         assertEquals("5 key auto 4 R2 columns", 4, params.mNumColumns);
@@ -1007,6 +1074,7 @@
     }
 
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout5KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_M0);
         assertEquals("5 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -1023,6 +1091,7 @@
     }
 
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout5KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L0);
         assertEquals("5 key auto 5 L0 columns", 5, params.mNumColumns);
@@ -1039,6 +1108,7 @@
     }
 
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout5KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L1);
         assertEquals("5 key auto 5 L1 columns", 5, params.mNumColumns);
@@ -1055,6 +1125,7 @@
     }
 
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout5KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L2);
         assertEquals("5 key auto 5 L2 columns", 5, params.mNumColumns);
@@ -1071,6 +1142,7 @@
     }
 
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout5KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R0);
         assertEquals("5 key auto 5 R0 columns", 5, params.mNumColumns);
@@ -1087,6 +1159,7 @@
     }
 
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout5KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R1);
         assertEquals("5 key auto 5 R1 columns", 5, params.mNumColumns);
@@ -1103,6 +1176,7 @@
     }
 
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout5KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R2);
         assertEquals("5 key auto 5 R2 columns", 5, params.mNumColumns);
@@ -1120,6 +1194,7 @@
 
     //     [5] [6]
     // [3] <1> [2] [4]
+    @Test
     public void testLayout6KeyAuto4M0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_M0);
         assertEquals("6 key auto 4 M0 columns", 4, params.mNumColumns);
@@ -1138,6 +1213,7 @@
 
     // |[5] [6]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout6KeyAuto4L0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L0);
         assertEquals("6 key auto 4 L0 columns", 4, params.mNumColumns);
@@ -1156,6 +1232,7 @@
 
     // |___ [5] [6]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout6KeyAuto4L1() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L1);
         assertEquals("6 key auto 4 L1 columns", 4, params.mNumColumns);
@@ -1174,6 +1251,7 @@
 
     // |___     [5] [6]
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout6KeyAuto4L2() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L2);
         assertEquals("6 key auto 4 L2 columns", 4, params.mNumColumns);
@@ -1192,6 +1270,7 @@
 
     //         [6] [5]|
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout6KeyAuto4R0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R0);
         assertEquals("6 key auto 4 R0 columns", 4, params.mNumColumns);
@@ -1210,6 +1289,7 @@
 
     //         [6] [5] ___|
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout6KeyAuto4R1() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R1);
         assertEquals("6 key auto 4 R1 columns", 4, params.mNumColumns);
@@ -1228,6 +1308,7 @@
 
     //         [5] [6] ___|
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout6KeyAuto4R2() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R2);
         assertEquals("6 key auto 4 R2 columns", 4, params.mNumColumns);
@@ -1246,6 +1327,7 @@
 
     //         [6]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout6KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_M0);
         assertEquals("6 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -1264,6 +1346,7 @@
 
     // |[6]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout6KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L0);
         assertEquals("6 key auto 5 L0 columns", 5, params.mNumColumns);
@@ -1282,6 +1365,7 @@
 
     // |___ [6]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout6KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L1);
         assertEquals("6 key auto 5 L1 columns", 5, params.mNumColumns);
@@ -1300,6 +1384,7 @@
 
     // |___     [6]
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout6KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L2);
         assertEquals("6 key auto 5 L2 columns", 5, params.mNumColumns);
@@ -1318,6 +1403,7 @@
 
     //                 [6]|
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout6KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R0);
         assertEquals("6 key auto 5 R0 columns", 5, params.mNumColumns);
@@ -1336,6 +1422,7 @@
 
     //                 [6] ___|
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout6KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R1);
         assertEquals("6 key auto 5 R1 columns", 5, params.mNumColumns);
@@ -1354,6 +1441,7 @@
 
     //             [6]     ___|
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout6KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R2);
         assertEquals("6 key auto 5 R2 columns", 5, params.mNumColumns);
@@ -1371,6 +1459,7 @@
     }
 
     // |<1> [2] [3] [4] [5] [6] [7] ___ ___ ___|
+    @Test
     public void testLayout7KeyAuto7L0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L0);
         assertEquals("7 key auto 7 L0 columns", 7, params.mNumColumns);
@@ -1389,6 +1478,7 @@
     }
 
     // |___ <1> [2] [3] [4] [5] [6] [7] ___ ___|
+    @Test
     public void testLayout7KeyAuto7L1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L1);
         assertEquals("7 key auto 7 L1 columns", 7, params.mNumColumns);
@@ -1407,6 +1497,7 @@
     }
 
     // |___ [3] <1> [2] [4] [5] [6] [7] ___ ___|
+    @Test
     public void testLayout7KeyAuto7L2() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L2);
         assertEquals("7 key auto 7 L2 columns", 7, params.mNumColumns);
@@ -1425,6 +1516,7 @@
     }
 
     // |___ [5] [3] <1> [2] [4] [6] [7] ___ ___|
+    @Test
     public void testLayout7KeyAuto7L3() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L3);
         assertEquals("7 key auto 7 L3 columns", 7, params.mNumColumns);
@@ -1443,6 +1535,7 @@
     }
 
     // |___ [7] [5] [3] <1> [2] [4] [6] ___ ___|
+    @Test
     public void testLayout7KeyAuto7M0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M0);
         assertEquals("7 key auto 7 M0 columns", 7, params.mNumColumns);
@@ -1461,6 +1554,7 @@
     }
 
     // |___ ___ [7] [5] [3] <1> [2] [4] [6] ___|
+    @Test
     public void testLayout7KeyAuto7M1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M1);
         assertEquals("7 key auto 7 M1 columns", 7, params.mNumColumns);
@@ -1479,6 +1573,7 @@
     }
 
     // |___ ___ [7] [6] [5] [3] <1> [2] [4] ___|
+    @Test
     public void testLayout7KeyAuto7R3() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R3);
         assertEquals("7 key auto 7 R3 columns", 7, params.mNumColumns);
@@ -1497,6 +1592,7 @@
     }
 
     // |___ ___ [7] [6] [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout7KeyAuto7R2() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R2);
         assertEquals("7 key auto 7 R2 columns", 7, params.mNumColumns);
@@ -1515,6 +1611,7 @@
     }
 
     // |___ ___ [7] [6] [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout7KeyAuto7R1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R1);
         assertEquals("7 key auto 7 R1 columns", 7, params.mNumColumns);
@@ -1533,6 +1630,7 @@
     }
 
     // |___ ___ [7] [6] [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout7KeyAuto7R0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R0);
         assertEquals("7 key auto 7 R0 columns", 7, params.mNumColumns);
@@ -1552,6 +1650,7 @@
 
     //       [6] [7]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout7KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_M0);
         assertEquals("7 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -1571,6 +1670,7 @@
 
     // |[6] [7]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout7KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L0);
         assertEquals("7 key auto 5 L0 columns", 5, params.mNumColumns);
@@ -1590,6 +1690,7 @@
 
     // |___ [6] [7]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout7KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L1);
         assertEquals("7 key auto 5 L1 columns", 5, params.mNumColumns);
@@ -1609,6 +1710,7 @@
 
     // |___   [6] [7]
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout7KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L2);
         assertEquals("7 key auto 5 L2 columns", 5, params.mNumColumns);
@@ -1628,6 +1730,7 @@
 
     //             [7] [6]|
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout7KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R0);
         assertEquals("7 key auto 5 R0 columns", 5, params.mNumColumns);
@@ -1647,6 +1750,7 @@
 
     //             [7] [6] ___|
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout7KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R1);
         assertEquals("7 key auto 5 R1 columns", 5, params.mNumColumns);
@@ -1666,6 +1770,7 @@
 
     //           [6] [7]   ___|
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout7KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R2);
         assertEquals("7 key auto 5 R2 columns", 5, params.mNumColumns);
@@ -1686,6 +1791,7 @@
     //     [7]
     // [6] [4] [5]
     // [3] <1> [2]
+    @Test
     public void testLayout7KeyAuto3M0() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_M0);
         assertEquals("7 key auto 3 M0 columns", 3, params.mNumColumns);
@@ -1706,6 +1812,7 @@
     // |[7]
     // |[4] [5] [6]
     // |<1> [2] [3]
+    @Test
     public void testLayout7KeyAuto3L0() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_L0);
         assertEquals("7 key auto 3 L0 columns", 3, params.mNumColumns);
@@ -1726,6 +1833,7 @@
     // |___ [7]
     // |___ [4] [5] [6]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout7KeyAuto3L1() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_L1);
         assertEquals("7 key auto 3 L1 columns", 3, params.mNumColumns);
@@ -1746,6 +1854,7 @@
     // |___     [7]
     // |___ [6] [4] [5]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout7KeyAuto3L2() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_L2);
         assertEquals("7 key auto 3 L2 columns", 3, params.mNumColumns);
@@ -1766,6 +1875,7 @@
     //         [7]|
     // [6] [5] [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout7KeyAuto3R0() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_R0);
         assertEquals("7 key auto 3 R0 columns", 3, params.mNumColumns);
@@ -1786,6 +1896,7 @@
     //         [7] ___|
     // [6] [5] [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout7KeyAuto3R1() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_R1);
         assertEquals("7 key auto 3 R1 columns", 3, params.mNumColumns);
@@ -1806,6 +1917,7 @@
     //     [7]     ___|
     // [6] [4] [5] ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout7KeyAuto3R2() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_R2);
         assertEquals("7 key auto 3 R2 columns", 3, params.mNumColumns);
@@ -1825,6 +1937,7 @@
 
     //     [8] [6] [7]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout8KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_M0);
         assertEquals("8 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -1845,6 +1958,7 @@
 
     // |[6] [7] [8]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout8KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L0);
         assertEquals("8 key auto 5 L0 columns", 5, params.mNumColumns);
@@ -1865,6 +1979,7 @@
 
     // |___ [6] [7] [8]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout8KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L1);
         assertEquals("8 key auto 5 L1 columns", 5, params.mNumColumns);
@@ -1885,6 +2000,7 @@
 
     // |___ [8] [6] [7]
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout8KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L2);
         assertEquals("8 key auto 5 L2 columns", 5, params.mNumColumns);
@@ -1905,6 +2021,7 @@
 
     //         [8] [7] [6]|
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout8KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R0);
         assertEquals("8 key auto 5 R0 columns", 5, params.mNumColumns);
@@ -1925,6 +2042,7 @@
 
     //         [8] [7] [6] ___|
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout8KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R1);
         assertEquals("8 key auto 5 R1 columns", 5, params.mNumColumns);
@@ -1945,6 +2063,7 @@
 
     //         [8] [6] [7] ___|
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout8KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R2);
         assertEquals("8 key auto 5 R2 columns", 5, params.mNumColumns);
@@ -1965,6 +2084,7 @@
 
     //   [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout9KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_M0);
         assertEquals("9 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -1986,6 +2106,7 @@
 
     // |[6] [7] [8] [9]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout9KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L0);
         assertEquals("9 key auto 5 L0 columns", 5, params.mNumColumns);
@@ -2007,6 +2128,7 @@
 
     // |___ [6] [7] [8] [9]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout9KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L1);
         assertEquals("9 key auto 5 L1 columns", 5, params.mNumColumns);
@@ -2028,6 +2150,7 @@
 
     // |___   [6] [7] [8] [9]
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout9KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L2);
         assertEquals("9 key auto 5 L2 columns", 5, params.mNumColumns);
@@ -2049,6 +2172,7 @@
 
     //     [9] [8] [7] [6]|
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout9KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R0);
         assertEquals("9 key auto 5 R0 columns", 5, params.mNumColumns);
@@ -2070,6 +2194,7 @@
 
     //     [9] [8] [7] [6] ___|
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout9KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R1);
         assertEquals("9 key auto 5 R1 columns", 5, params.mNumColumns);
@@ -2091,6 +2216,7 @@
 
     //   [9] [8] [6] [7]   ___|
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout9KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R2);
         assertEquals("9 key auto 5 R2 columns", 5, params.mNumColumns);
@@ -2112,6 +2238,7 @@
 
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout10KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_M0);
         assertEquals("10 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -2134,6 +2261,7 @@
 
     // |[6] [7] [8] [9] [A]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout10KeyAuto5L0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L0);
         assertEquals("10 key auto 5 L0 columns", 5, params.mNumColumns);
@@ -2156,6 +2284,7 @@
 
     // |___ [6] [7] [8] [9] [A]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout10KeyAuto5L1() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L1);
         assertEquals("10 key auto 5 L1 columns", 5, params.mNumColumns);
@@ -2178,6 +2307,7 @@
 
     // |___ [8] [6] [7] [9] [A]
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout10KeyAuto5L2() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L2);
         assertEquals("10 key auto 5 L2 columns", 5, params.mNumColumns);
@@ -2200,6 +2330,7 @@
 
     // [A] [9] [8] [7] [6]|
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout10KeyAuto5R0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R0);
         assertEquals("10 key auto 5 R0 columns", 5, params.mNumColumns);
@@ -2222,6 +2353,7 @@
 
     // [A] [9] [8] [7] [6] ___|
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout10KeyAuto5R1() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R1);
         assertEquals("10 key auto 5 R1 columns", 5, params.mNumColumns);
@@ -2244,6 +2376,7 @@
 
     // [A] [9] [8] [6] [7] ___|
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout10KeyAuto5R2() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R2);
         assertEquals("10 key auto 5 R2 columns", 5, params.mNumColumns);
@@ -2267,6 +2400,7 @@
     //         [B]
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout11KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(11, 5, XPOS_M0);
         assertEquals("11 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -2291,6 +2425,7 @@
     //       [B] [C]
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout12KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(12, 5, XPOS_M0);
         assertEquals("12 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -2316,6 +2451,7 @@
     //     [D] [B] [C]
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout13KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(13, 5, XPOS_M0);
         assertEquals("13 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -2342,6 +2478,7 @@
     //   [D] [B] [C] [E]
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout14KeyAuto5M0() {
         MoreKeysKeyboardParams params = createParams(14, 5, XPOS_M0);
         assertEquals("13 key auto 5 M0 columns", 5, params.mNumColumns);
@@ -2369,6 +2506,7 @@
     //                     [J] [I] [H] ___|
     // [G] [F] [E] [D] [C] [B] [A] [9] ___|
     // [8] [7] [6] [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout19KeyAuto8R1() {
         MoreKeysKeyboardParams params = createParams(19, 8, XPOS_R1);
         assertEquals("19 key auto 8 R1 columns", 8, params.mNumColumns);
@@ -2401,6 +2539,7 @@
     //                   [J] [H] [I]   ___|
     // [G] [F] [E] [D] [C] [B] [9] [A] ___|
     // [8] [7] [6] [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout19KeyAuto8R2() {
         MoreKeysKeyboardParams params = createParams(19, 8, XPOS_R2);
         assertEquals("19 key auto 8 R2 columns", 8, params.mNumColumns);
@@ -2433,6 +2572,7 @@
     //               [J] [H] [I]       ___|
     // [G] [F] [E] [D] [B] [9] [A] [C] ___|
     // [8] [7] [6] [5] [3] <1> [2] [4] ___|
+    @Test
     public void testLayout19KeyAuto8R3() {
         MoreKeysKeyboardParams params = createParams(19, 8, XPOS_R3);
         assertEquals("19 key auto 8 R3 columns", 8, params.mNumColumns);
diff --git a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java
index 7e51d95..2a30448 100644
--- a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java
@@ -16,13 +16,21 @@
 
 package com.android.inputmethod.keyboard;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.keyboard.MoreKeysKeyboard.MoreKeysKeyboardParams;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @MediumTest
-public class MoreKeysKeyboardBuilderFixedOrderTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class MoreKeysKeyboardBuilderFixedOrderTests {
     private static final int WIDTH = 10;
     private static final int HEIGHT = 10;
 
@@ -38,11 +46,6 @@
     private static final int XPOS_R1 = WIDTH * 8 + WIDTH / 2;
     private static final int XPOS_R0 = WIDTH * 9 + WIDTH / 2;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
     private static MoreKeysKeyboardParams createParams(final int numKeys, final int columnNum,
             final int coordXInParent) {
         final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
@@ -52,6 +55,7 @@
         return params;
     }
 
+    @Test
     public void testLayoutError() {
         MoreKeysKeyboardParams params = null;
         try {
@@ -69,6 +73,7 @@
     // "<m>" is the default key.
 
     // <1>
+    @Test
     public void testLayout1KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_M0);
         assertEquals("1 key fix 5 M0 columns", 1, params.mNumColumns);
@@ -81,6 +86,7 @@
     }
 
     // |<1>
+    @Test
     public void testLayout1KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L0);
         assertEquals("1 key fix 5 L0 columns", 1, params.mNumColumns);
@@ -93,6 +99,7 @@
     }
 
     // |___ <1>
+    @Test
     public void testLayout1KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L1);
         assertEquals("1 key fix 5 L1 columns", 1, params.mNumColumns);
@@ -105,6 +112,7 @@
     }
 
     // |___ ___ <1>
+    @Test
     public void testLayout1KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L2);
         assertEquals("1 key fix 5 L2 columns", 1, params.mNumColumns);
@@ -117,6 +125,7 @@
     }
 
     // <1>|
+    @Test
     public void testLayout1KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R0);
         assertEquals("1 key fix 5 R0 columns", 1, params.mNumColumns);
@@ -129,6 +138,7 @@
     }
 
     // <1> ___|
+    @Test
     public void testLayout1KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R1);
         assertEquals("1 key fix 5 R1 columns", 1, params.mNumColumns);
@@ -141,6 +151,7 @@
     }
 
     // <1> ___ ___|
+    @Test
     public void testLayout1KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R2);
         assertEquals("1 key fix 5 R2 columns", 1, params.mNumColumns);
@@ -153,6 +164,7 @@
     }
 
     // <1> [2]
+    @Test
     public void testLayout2KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_M0);
         assertEquals("2 key fix 5 M0 columns", 2, params.mNumColumns);
@@ -166,6 +178,7 @@
     }
 
     // |<1> [2]
+    @Test
     public void testLayout2KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L0);
         assertEquals("2 key fix 5 L0 columns", 2, params.mNumColumns);
@@ -179,6 +192,7 @@
     }
 
     // |___ <1> [2]
+    @Test
     public void testLayout2KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L1);
         assertEquals("2 key fix 5 L1 columns", 2, params.mNumColumns);
@@ -192,6 +206,7 @@
     }
 
     // |___ ___ <1> [2]
+    @Test
     public void testLayout2KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L2);
         assertEquals("2 key fix 5 L2 columns", 2, params.mNumColumns);
@@ -205,6 +220,7 @@
     }
 
     // [1] <2>|
+    @Test
     public void testLayout2KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R0);
         assertEquals("2 key fix 5 R0 columns", 2, params.mNumColumns);
@@ -218,6 +234,7 @@
     }
 
     // [1] <2> ___|
+    @Test
     public void testLayout2KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R1);
         assertEquals("2 key fix 5 R1 columns", 2, params.mNumColumns);
@@ -231,6 +248,7 @@
     }
 
     // <1> [2] ___|
+    @Test
     public void testLayout2KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R2);
         assertEquals("2 key fix 5 R2 columns", 2, params.mNumColumns);
@@ -245,6 +263,7 @@
 
     // [3]
     // <1> [2]
+    @Test
     public void testLayout3KeyFix2M0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_M0);
         assertEquals("3 key fix 2 M0 columns", 2, params.mNumColumns);
@@ -260,6 +279,7 @@
 
     // |[3]
     // |<1> [2]
+    @Test
     public void testLayout3KeyFix2L0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L0);
         assertEquals("3 key fix 2 L0 columns", 2, params.mNumColumns);
@@ -275,6 +295,7 @@
 
     // |___ [3]
     // |___ <1> [2]
+    @Test
     public void testLayout3KeyFix2L1() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L1);
         assertEquals("3 key fix 2 L1 columns", 2, params.mNumColumns);
@@ -290,6 +311,7 @@
 
     // |        [3]
     // |___ ___ <1> [2]
+    @Test
     public void testLayout3KeyFix2L2() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L2);
         assertEquals("3 key fix 2 L2 columns", 2, params.mNumColumns);
@@ -305,6 +327,7 @@
 
     //     [3]|
     // [1] <2>|
+    @Test
     public void testLayout3KeyFix2R0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R0);
         assertEquals("3 key fix 2 R0 columns", 2, params.mNumColumns);
@@ -320,6 +343,7 @@
 
     //     [3] ___|
     // [1] <2> ___|
+    @Test
     public void testLayout3KeyFix2R1() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R1);
         assertEquals("3 key fix 2 R1 columns", 2, params.mNumColumns);
@@ -335,6 +359,7 @@
 
     // [3]     ___|
     // <1> [2] ___|
+    @Test
     public void testLayout3KeyFix2R2() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R2);
         assertEquals("3 key fix 2 R2 columns", 2, params.mNumColumns);
@@ -350,6 +375,7 @@
 
     // [3] [4]
     // <1> [2]
+    @Test
     public void testLayout4KeyFix2M0() {
         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_M0);
         assertEquals("3 key fix 2 M0 columns", 2, params.mNumColumns);
@@ -366,6 +392,7 @@
 
     // |[3] [4]
     // |<1> [2]
+    @Test
     public void testLayout4KeyFix2L0() {
         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_L0);
         assertEquals("3 key fix 2 L0 columns", 2, params.mNumColumns);
@@ -382,6 +409,7 @@
 
     // |___ [3] [4]
     // |___ <1> [2]
+    @Test
     public void testLayout4KeyFix2L1() {
         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_L1);
         assertEquals("3 key fix 2 L1 columns", 2, params.mNumColumns);
@@ -398,6 +426,7 @@
 
     // |        [3] [4]
     // |___ ___ <1> [2]
+    @Test
     public void testLayout4KeyFix2L2() {
         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_L2);
         assertEquals("3 key fix 2 L2 columns", 2, params.mNumColumns);
@@ -414,6 +443,7 @@
 
     // [3] [4]|
     // [1] <2>|
+    @Test
     public void testLayout4KeyFix2R0() {
         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_R0);
         assertEquals("3 key fix 2 R0 columns", 2, params.mNumColumns);
@@ -430,6 +460,7 @@
 
     // [3] [4] ___|
     // [1] <2> ___|
+    @Test
     public void testLayout4KeyFix2R1() {
         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_R1);
         assertEquals("3 key fix 2 R1 columns", 2, params.mNumColumns);
@@ -446,6 +477,7 @@
 
     // [3] [4] ___|
     // <1> [2] ___|
+    @Test
     public void testLayout4KeyFix2R2() {
         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_R2);
         assertEquals("3 key fix 2 R2 columns", 2, params.mNumColumns);
@@ -461,6 +493,7 @@
     }
 
     // [1] <2> [3]
+    @Test
     public void testLayout3KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_M0);
         assertEquals("3 key fix 5 columns", 3, params.mNumColumns);
@@ -475,6 +508,7 @@
     }
 
     // |<1> [2] [3]
+    @Test
     public void testLayout3KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L0);
         assertEquals("3 key fix 5 L0 columns", 3, params.mNumColumns);
@@ -489,6 +523,7 @@
     }
 
     // |___ <1> [2] [3]
+    @Test
     public void testLayout3KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L1);
         assertEquals("3 key fix 5 L1 columns", 3, params.mNumColumns);
@@ -503,6 +538,7 @@
     }
 
     // |___ [1] <2> [3]
+    @Test
     public void testLayout3KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L2);
         assertEquals("3 key fix 5 L2 columns", 3, params.mNumColumns);
@@ -517,6 +553,7 @@
     }
 
     // [1] [2] <3>|
+    @Test
     public void testLayout3KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R0);
         assertEquals("3 key fix 5 R0 columns", 3, params.mNumColumns);
@@ -531,6 +568,7 @@
     }
 
     // [1] [2] <3> ___|
+    @Test
     public void testLayout3KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R1);
         assertEquals("3 key fix 5 R1 columns", 3, params.mNumColumns);
@@ -545,6 +583,7 @@
     }
 
     // [1] <2> [3] ___|
+    @Test
     public void testLayout3KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R2);
         assertEquals("3 key fix 5 R2 columns", 3, params.mNumColumns);
@@ -560,6 +599,7 @@
 
     //     [4]
     // [1] <2> [3]
+    @Test
     public void testLayout4KeyFix3M0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_M0);
         assertEquals("4 key fix 3 M0 columns", 3, params.mNumColumns);
@@ -576,6 +616,7 @@
 
     // |[4]
     // |<1> [2] [3]
+    @Test
     public void testLayout4KeyFix3L0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L0);
         assertEquals("4 key fix 3 L0 columns", 3, params.mNumColumns);
@@ -592,6 +633,7 @@
 
     // |___ [4]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout4KeyFix3L1() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L1);
         assertEquals("4 key fix 3 L1 columns", 3, params.mNumColumns);
@@ -608,6 +650,7 @@
 
     // |___ ___     [4]
     // |___ ___ [1] <2> [3]
+    @Test
     public void testLayout4KeyFix3L2() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L2);
         assertEquals("4 key fix 3 L2 columns", 3, params.mNumColumns);
@@ -624,6 +667,7 @@
 
     //         [4]|
     // [1] [2] <3>|
+    @Test
     public void testLayout4KeyFix3R0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R0);
         assertEquals("4 key fix 3 R0 columns", 3, params.mNumColumns);
@@ -640,6 +684,7 @@
 
     //         [4] ___|
     // [1] [2] <3> ___|
+    @Test
     public void testLayout4KeyFix3R1() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R1);
         assertEquals("4 key fix 3 R1 columns", 3, params.mNumColumns);
@@ -656,6 +701,7 @@
 
     //     [4]     ___|
     // [1] <2> [3] ___|
+    @Test
     public void testLayout4KeyFix3R2() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R2);
         assertEquals("4 key fix 3 R2 columns", 3, params.mNumColumns);
@@ -672,6 +718,7 @@
 
     //   [4] [5]
     // [1] <2> [3]
+    @Test
     public void testLayout5KeyFix3M0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_M0);
         assertEquals("5 key fix 3 M0 columns", 3, params.mNumColumns);
@@ -689,6 +736,7 @@
 
     // |[4] [5]
     // |<1> [2] [3]
+    @Test
     public void testLayout5KeyFix3L0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L0);
         assertEquals("5 key fix 3 L0 columns", 3, params.mNumColumns);
@@ -706,6 +754,7 @@
 
     // |___ [4] [5]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout5KeyFix3L1() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L1);
         assertEquals("5 key fix 3 L1 columns", 3, params.mNumColumns);
@@ -723,6 +772,7 @@
 
     // |___   [4] [5]
     // |___ [1] <2> [3]
+    @Test
     public void testLayout5KeyFix3L2() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L2);
         assertEquals("5 key fix 3 L2 columns", 3, params.mNumColumns);
@@ -740,6 +790,7 @@
 
     //     [4] [5]|
     // [1] [2] <3>|
+    @Test
     public void testLayout5KeyFix3R0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R0);
         assertEquals("5 key fix 3 R0 columns", 3, params.mNumColumns);
@@ -757,6 +808,7 @@
 
     //     [4] [5] ___|
     // [1] [2] <3> ___|
+    @Test
     public void testLayout5KeyFix3R1() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R1);
         assertEquals("5 key fix 3 R1 columns", 3, params.mNumColumns);
@@ -774,6 +826,7 @@
 
     //   [4] [5]   ___|
     // [1] <2> [3] ___|
+    @Test
     public void testLayout5KeyFix3R2() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R2);
         assertEquals("5 key fix 3 R2 columns", 3, params.mNumColumns);
@@ -791,6 +844,7 @@
 
     // [4] [5] [6]
     // [1] <2> [3]
+    @Test
     public void testLayout6KeyFix3M0() {
         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_M0);
         assertEquals("6 key fix 3 M0 columns", 3, params.mNumColumns);
@@ -809,6 +863,7 @@
 
     // |[4] [5] [6]
     // |<1> [2] [3]
+    @Test
     public void testLayout6KeyFix3L0() {
         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_L0);
         assertEquals("6 key fix 3 L0 columns", 3, params.mNumColumns);
@@ -827,6 +882,7 @@
 
     // |___ [4] [5] [6]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout6KeyFix3L1() {
         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_L1);
         assertEquals("6 key fix 3 L1 columns", 3, params.mNumColumns);
@@ -845,6 +901,7 @@
 
     // |___ [4] [5] [6]
     // |___ [1] <2> [3]
+    @Test
     public void testLayout6KeyFix3L2() {
         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_L2);
         assertEquals("6 key fix 3 L2 columns", 3, params.mNumColumns);
@@ -863,6 +920,7 @@
 
     // [4] [5] [6]|
     // [1] [2] <3>|
+    @Test
     public void testLayout6KeyFix3R0() {
         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_R0);
         assertEquals("6 key fix 3 R0 columns", 3, params.mNumColumns);
@@ -881,6 +939,7 @@
 
     // [4] [5] [6] ___|
     // [1] [2] <3> ___|
+    @Test
     public void testLayout6KeyFix3R1() {
         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_R1);
         assertEquals("6 key fix 3 R1 columns", 3, params.mNumColumns);
@@ -899,6 +958,7 @@
 
     // [4] [5] [6] ___|
     // [1] <2> [3] ___|
+    @Test
     public void testLayout6KeyFix3R2() {
         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_R2);
         assertEquals("6 key fix 3 R2 columns", 3, params.mNumColumns);
@@ -916,6 +976,7 @@
     }
 
     // <1> [2] [3] [4]
+    @Test
     public void testLayout4KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_M0);
         assertEquals("4 key fix 5 columns", 4, params.mNumColumns);
@@ -931,6 +992,7 @@
     }
 
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout4KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L0);
         assertEquals("4 key fix 5 L0 columns", 4, params.mNumColumns);
@@ -946,6 +1008,7 @@
     }
 
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout4KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L1);
         assertEquals("4 key fix 5 L1 columns", 4, params.mNumColumns);
@@ -961,6 +1024,7 @@
     }
 
     // |___ [1] <2> [3] [4]
+    @Test
     public void testLayout4KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L2);
         assertEquals("4 key fix 5 L2 columns", 4, params.mNumColumns);
@@ -976,6 +1040,7 @@
     }
 
     // [1] [2] [3] <4>|
+    @Test
     public void testLayout4KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R0);
         assertEquals("4 key fix 5 R0 columns", 4, params.mNumColumns);
@@ -991,6 +1056,7 @@
     }
 
     // [1] [2] [3] <4> ___|
+    @Test
     public void testLayout4KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R1);
         assertEquals("4 key fix 5 R1 columns", 4, params.mNumColumns);
@@ -1006,6 +1072,7 @@
     }
 
     // [1] [2] <3> [4] ___|
+    @Test
     public void testLayout4KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R2);
         assertEquals("4 key fix 5 R2 columns", 4, params.mNumColumns);
@@ -1022,6 +1089,7 @@
 
     //     [5]
     // [1] <2> [3] [4]
+    @Test
     public void testLayout5KeyFix4M0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_M0);
         assertEquals("5 key fix 4 M0 columns", 4, params.mNumColumns);
@@ -1039,6 +1107,7 @@
 
     // |[5]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout5KeyFix4L0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L0);
         assertEquals("5 key fix 4 L0 columns", 4, params.mNumColumns);
@@ -1056,6 +1125,7 @@
 
     // |___ [5]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout5KeyFix4L1() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L1);
         assertEquals("5 key fix 4 L1 columns", 4, params.mNumColumns);
@@ -1073,6 +1143,7 @@
 
     // |___     [5]
     // |___ [1] <2> [3] [4]
+    @Test
     public void testLayout5KeyFix4L2() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L2);
         assertEquals("5 key fix 4 L2 columns", 4, params.mNumColumns);
@@ -1090,6 +1161,7 @@
 
     //             [5]|
     // [1] [2] [3] <4>|
+    @Test
     public void testLayout5KeyFix4R0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R0);
         assertEquals("5 key fix 4 R0 columns", 4, params.mNumColumns);
@@ -1107,6 +1179,7 @@
 
     //             [5] ___|
     // [1] [2] [3] <4> ___|
+    @Test
     public void testLayout5KeyFix4R1() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R1);
         assertEquals("5 key fix 4 R1 columns", 4, params.mNumColumns);
@@ -1124,6 +1197,7 @@
 
     //         [5]     ___|
     // [1] [2] <3> [4] ___|
+    @Test
     public void testLayout5KeyFix4R2() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R2);
         assertEquals("5 key fix 4 R2 columns", 4, params.mNumColumns);
@@ -1141,6 +1215,7 @@
 
     //   [5] [6]
     // [1] <2> [3] [4]
+    @Test
     public void testLayout6KeyFix4M0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_M0);
         assertEquals("6 key fix 4 M0 columns", 4, params.mNumColumns);
@@ -1159,6 +1234,7 @@
 
     // |[5] [6]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout6KeyFix4L0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L0);
         assertEquals("6 key fix 4 L0 columns", 4, params.mNumColumns);
@@ -1177,6 +1253,7 @@
 
     // |___ [5] [6]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout6KeyFix4L1() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L1);
         assertEquals("6 key fix 4 L1 columns", 4, params.mNumColumns);
@@ -1195,6 +1272,7 @@
 
     // |___   [5] [6]
     // |___ [1] <2> [3] [4]
+    @Test
     public void testLayout6KeyFix4L2() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L2);
         assertEquals("6 key fix 4 L2 columns", 4, params.mNumColumns);
@@ -1213,6 +1291,7 @@
 
     //         [5] [6]|
     // [1] [2] [3] <4>|
+    @Test
     public void testLayout6KeyFix4R0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R0);
         assertEquals("6 key fix 4 R0 columns", 4, params.mNumColumns);
@@ -1231,6 +1310,7 @@
 
     //         [5] [6] ___|
     // [1] [2] [3] <4> ___|
+    @Test
     public void testLayout6KeyFix4R1() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R1);
         assertEquals("6 key fix 4 R1 columns", 4, params.mNumColumns);
@@ -1249,6 +1329,7 @@
 
     //       [5] [6]   ___|
     // [1] [2] <3> [4] ___|
+    @Test
     public void testLayout6KeyFix4R2() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R2);
         assertEquals("6 key fix 4 R2 columns", 4, params.mNumColumns);
@@ -1267,6 +1348,7 @@
 
     // [5] [6] [7]
     // [1] <2> [3] [4]
+    @Test
     public void testLayout7KeyFix4M0() {
         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_M0);
         assertEquals("7 key fix 4 M0 columns", 4, params.mNumColumns);
@@ -1286,6 +1368,7 @@
 
     // |[5] [6] [7]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout7KeyFix4L0() {
         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_L0);
         assertEquals("7 key fix 4 L0 columns", 4, params.mNumColumns);
@@ -1305,6 +1388,7 @@
 
     // |___ [5] [6] [7]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout7KeyFix4L1() {
         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_L1);
         assertEquals("7 key fix 4 L1 columns", 4, params.mNumColumns);
@@ -1324,6 +1408,7 @@
 
     // |___ [5] [6] [7]
     // |___ [1] <2> [3] [4]
+    @Test
     public void testLayout7KeyFix4L2() {
         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_L2);
         assertEquals("7 key fix 4 L2 columns", 4, params.mNumColumns);
@@ -1343,6 +1428,7 @@
 
     //     [5] [6] [7]|
     // [1] [2] [3] <4>|
+    @Test
     public void testLayout7KeyFix4R0() {
         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_R0);
         assertEquals("7 key fix 4 R0 columns", 4, params.mNumColumns);
@@ -1362,6 +1448,7 @@
 
     //     [5] [6] [7] ___|
     // [1] [2] [3] <4> ___|
+    @Test
     public void testLayout7KeyFix4R1() {
         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_R1);
         assertEquals("7 key fix 4 R1 columns", 4, params.mNumColumns);
@@ -1381,6 +1468,7 @@
 
     //     [5] [6] [7] ___|
     // [1] [2] <3> [4] ___|
+    @Test
     public void testLayout7KeyFix4R2() {
         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_R2);
         assertEquals("7 key fix 4 R2 columns", 4, params.mNumColumns);
@@ -1400,6 +1488,7 @@
 
     // [5] [6] [7] [8]
     // [1] <2> [3] [4]
+    @Test
     public void testLayout8KeyFix4M0() {
         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_M0);
         assertEquals("8 key fix 4 M0 columns", 4, params.mNumColumns);
@@ -1420,6 +1509,7 @@
 
     // |[5] [6] [7] [8]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout8KeyFix4L0() {
         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_L0);
         assertEquals("8 key fix 4 L0 columns", 4, params.mNumColumns);
@@ -1440,6 +1530,7 @@
 
     // |___ [5] [6] [7] [8]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout8KeyFix4L1() {
         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_L1);
         assertEquals("8 key fix 4 L1 columns", 4, params.mNumColumns);
@@ -1460,6 +1551,7 @@
 
     // |___ [5] [6] [7] [8]
     // |___ [1] <2> [3] [4]
+    @Test
     public void testLayout8KeyFix4L2() {
         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_L2);
         assertEquals("8 key fix 4 L2 columns", 4, params.mNumColumns);
@@ -1480,6 +1572,7 @@
 
     // [5] [6] [7] [8]|
     // [1] [2] [3] <4>|
+    @Test
     public void testLayout8KeyFix4R0() {
         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_R0);
         assertEquals("8 key fix 4 R0 columns", 4, params.mNumColumns);
@@ -1500,6 +1593,7 @@
 
     // [5] [6] [7] [8] ___|
     // [1] [2] [3] <4> ___|
+    @Test
     public void testLayout8KeyFix4R1() {
         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_R1);
         assertEquals("8 key fix 4 R1 columns", 4, params.mNumColumns);
@@ -1520,6 +1614,7 @@
 
     // [5] [6] [7] [8] ___|
     // [1] [2] <3> [4] ___|
+    @Test
     public void testLayout8KeyFix4R2() {
         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_R2);
         assertEquals("8 key fix 4 R2 columns", 4, params.mNumColumns);
@@ -1539,6 +1634,7 @@
     }
 
      // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout5KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_M0);
         assertEquals("5 key fix 5 columns", 5, params.mNumColumns);
@@ -1555,6 +1651,7 @@
     }
 
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout5KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L0);
         assertEquals("5 key fix 5 L0 columns", 5, params.mNumColumns);
@@ -1571,6 +1668,7 @@
     }
 
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout5KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L1);
         assertEquals("5 key fix 5 L1 columns", 5, params.mNumColumns);
@@ -1587,6 +1685,7 @@
     }
 
     // |___ [1] <2> [3] [4] [5]
+    @Test
     public void testLayout5KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L2);
         assertEquals("5 key fix 5 L2 columns", 5, params.mNumColumns);
@@ -1603,6 +1702,7 @@
     }
 
     // [1] [2] [3] [4] <5>|
+    @Test
     public void testLayout5KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R0);
         assertEquals("5 key fix 5 R0 columns", 5, params.mNumColumns);
@@ -1619,6 +1719,7 @@
     }
 
     // [1] [2] [3] [4] <5> ___|
+    @Test
     public void testLayout5KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R1);
         assertEquals("5 key fix 5 R1 columns", 5, params.mNumColumns);
@@ -1635,6 +1736,7 @@
     }
 
     // [1] [2] [3] <4> [5] ___|
+    @Test
     public void testLayout5KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R2);
         assertEquals("5 key fix 5 R2 columns", 5, params.mNumColumns);
@@ -1652,6 +1754,7 @@
 
     //         [6]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout6KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_M0);
         assertEquals("6 key fix 5 columns", 5, params.mNumColumns);
@@ -1670,6 +1773,7 @@
 
     // |[6]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout6KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L0);
         assertEquals("6 key fix 5 L0 columns", 5, params.mNumColumns);
@@ -1688,6 +1792,7 @@
 
     // |___ [6]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout6KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L1);
         assertEquals("6 key fix 5 L1 columns", 5, params.mNumColumns);
@@ -1706,6 +1811,7 @@
 
     // |___     [6]
     // |___ [1] <2> [3] [4] [5]
+    @Test
     public void testLayout6KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L2);
         assertEquals("6 key fix 5 L2 columns", 5, params.mNumColumns);
@@ -1724,6 +1830,7 @@
 
     //                 [6]|
     // [1] [2] [3] [4] <5>|
+    @Test
     public void testLayout6KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R0);
         assertEquals("6 key fix 5 R0 columns", 5, params.mNumColumns);
@@ -1742,6 +1849,7 @@
 
     //                 [6] ___|
     // [1] [2] [3] [4] <5> ___|
+    @Test
     public void testLayout6KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R1);
         assertEquals("6 key fix 5 R1 columns", 5, params.mNumColumns);
@@ -1760,6 +1868,7 @@
 
     //             [6]     ___|
     // [1] [2] [3] <4> [5] ___|
+    @Test
     public void testLayout6KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R2);
         assertEquals("6 key fix 5 R2 columns", 5, params.mNumColumns);
@@ -1778,6 +1887,7 @@
 
     //       [6] [7]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout7KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_M0);
         assertEquals("7 key fix 5 columns", 5, params.mNumColumns);
@@ -1797,6 +1907,7 @@
 
     // |[6] [7]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout7KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L0);
         assertEquals("7 key fix 5 L0 columns", 5, params.mNumColumns);
@@ -1816,6 +1927,7 @@
 
     // |___ [6] [7]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout7KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L1);
         assertEquals("7 key fix 5 L1 columns", 5, params.mNumColumns);
@@ -1835,6 +1947,7 @@
 
     // |___   [6] [7]
     // |___ [1] <2> [3] [4] [5]
+    @Test
     public void testLayout7KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L2);
         assertEquals("7 key fix 5 L2 columns", 5, params.mNumColumns);
@@ -1854,6 +1967,7 @@
 
     //             [6] [7]|
     // [1] [2] [3] [4] <5>|
+    @Test
     public void testLayout7KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R0);
         assertEquals("7 key fix 5 R0 columns", 5, params.mNumColumns);
@@ -1873,6 +1987,7 @@
 
     //             [6] [7] ___|
     // [1] [2] [3] [4] <5> ___|
+    @Test
     public void testLayout7KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R1);
         assertEquals("7 key fix 5 R1 columns", 5, params.mNumColumns);
@@ -1892,6 +2007,7 @@
 
     //           [6] [7]   ___|
     // [1] [2] [3] <4> [5] ___|
+    @Test
     public void testLayout7KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R2);
         assertEquals("7 key fix 5 R2 columns",5, params.mNumColumns);
@@ -1911,6 +2027,7 @@
 
     //     [6] [7] [8]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout8KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_M0);
         assertEquals("8 key fix 5 M0 columns", 5, params.mNumColumns);
@@ -1931,6 +2048,7 @@
 
     // |[6] [7] [8]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout8KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L0);
         assertEquals("8 key fix 5 L0 columns", 5, params.mNumColumns);
@@ -1951,6 +2069,7 @@
 
     // |___ [6] [7] [8]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout8KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L1);
         assertEquals("8 key fix 5 L1 columns", 5, params.mNumColumns);
@@ -1971,6 +2090,7 @@
 
     // |___ [6] [7] [8]
     // |___ [1] <2> [3] [4] [5]
+    @Test
     public void testLayout8KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L2);
         assertEquals("8 key fix 5 L2 columns", 5, params.mNumColumns);
@@ -1991,6 +2111,7 @@
 
     //         [6] [7] [8]|
     // [1] [2] [3] [4] <5>|
+    @Test
     public void testLayout8KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R0);
         assertEquals("8 key fix 5 R0 columns", 5, params.mNumColumns);
@@ -2011,6 +2132,7 @@
 
     //         [6] [7] [8] ___|
     // [1] [2] [3] [4] <5> ___|
+    @Test
     public void testLayout8KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R1);
         assertEquals("8 key fix 5 R1 columns", 5, params.mNumColumns);
@@ -2031,6 +2153,7 @@
 
     //         [6] [7] [8] ___|
     // [1] [2] [3] <4> [5] ___|
+    @Test
     public void testLayout8KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R2);
         assertEquals("8 key fix 5 R2 columns", 5, params.mNumColumns);
@@ -2051,6 +2174,7 @@
 
     //   [6] [7] [8] [9]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout9KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_M0);
         assertEquals("9 key fix 5 M0 columns", 5, params.mNumColumns);
@@ -2072,6 +2196,7 @@
 
     // |[6] [7] [8] [9]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout9KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L0);
         assertEquals("9 key fix 5 L0 columns", 5, params.mNumColumns);
@@ -2093,6 +2218,7 @@
 
     // |___ [6] [7] [8] [9]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout9KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L1);
         assertEquals("9 key fix 5 L1 columns", 5, params.mNumColumns);
@@ -2114,6 +2240,7 @@
 
     // |___   [6] [7] [8] [9]
     // |___ [1] <2> [3] [4] [5]
+    @Test
     public void testLayout9KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L2);
         assertEquals("9 key fix 5 L2 columns", 5, params.mNumColumns);
@@ -2135,6 +2262,7 @@
 
     //     [6] [7] [8] [9]|
     // [1] [2] [3] [4] <5>|
+    @Test
     public void testLayout9KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R0);
         assertEquals("9 key fix 5 R0 columns", 5, params.mNumColumns);
@@ -2156,6 +2284,7 @@
 
     //     [6] [7] [8] [9] ___|
     // [1] [2] [3] [4] <5> ___|
+    @Test
     public void testLayout9KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R1);
         assertEquals("9 key fix 5 R1 columns", 5, params.mNumColumns);
@@ -2177,6 +2306,7 @@
 
     //   [6] [7] [8] [9]  ___|
     // [1] [2] [3] <4> [5] ___|
+    @Test
     public void testLayout9KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R2);
         assertEquals("9 key fix 5 R2 columns", 5, params.mNumColumns);
@@ -2198,6 +2328,7 @@
 
     // [6] [7] [8] [9] [A]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout10KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_M0);
         assertEquals("10 key fix 5 M0 columns", 5, params.mNumColumns);
@@ -2220,6 +2351,7 @@
 
     // |[6] [7] [8] [9] [A]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout10KeyFix5L0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L0);
         assertEquals("10 key fix 5 L0 columns", 5, params.mNumColumns);
@@ -2242,6 +2374,7 @@
 
     // |___ [6] [7] [8] [9] [A]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout10KeyFix5L1() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L1);
         assertEquals("10 key fix 5 L1 columns", 5, params.mNumColumns);
@@ -2264,6 +2397,7 @@
 
     // |___ [6] [7] [8] [9] [A]
     // |___ [1] <2> [3] [4] [5]
+    @Test
     public void testLayout10KeyFix5L2() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L2);
         assertEquals("10 key fix 5 L2 columns", 5, params.mNumColumns);
@@ -2286,6 +2420,7 @@
 
     // [6] [7] [8] [9] [A]|
     // [1] [2] [3] [4] <5>|
+    @Test
     public void testLayout10KeyFix5R0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R0);
         assertEquals("10 key fix 5 R0 columns", 5, params.mNumColumns);
@@ -2308,6 +2443,7 @@
 
     // [6] [7] [8] [9] [A] ___|
     // [1] [2] [3] [4] <5> ___|
+    @Test
     public void testLayout10KeyFix5R1() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R1);
         assertEquals("10 key fix 5 R1 columns", 5, params.mNumColumns);
@@ -2330,6 +2466,7 @@
 
     // [6] [7] [8] [9] [A] ___|
     // [1] [2] [3] <4> [5] ___|
+    @Test
     public void testLayout10KeyFix5R2() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R2);
         assertEquals("10 key fix 5 R2 columns", 5, params.mNumColumns);
@@ -2353,6 +2490,7 @@
     //         [B]
     // [6] [7] [8] [9] [A]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout11KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(11, 5, XPOS_M0);
         assertEquals("11 key fix 5 M0 columns", 5, params.mNumColumns);
@@ -2377,6 +2515,7 @@
     //       [B] [C]
     // [6] [7] [8] [9] [A]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout12KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(12, 5, XPOS_M0);
         assertEquals("12 key fix 5 M0 columns", 5, params.mNumColumns);
@@ -2402,6 +2541,7 @@
     //     [B] [C] [D]
     // [6] [7] [8] [9] [A]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout13KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(13, 5, XPOS_M0);
         assertEquals("13 key fix 5 M0 columns", 5, params.mNumColumns);
@@ -2428,6 +2568,7 @@
     //   [B] [C] [D] [E]
     // [6] [7] [8] [9] [A]
     // [1] [2] <3> [4] [5]
+    @Test
     public void testLayout14KeyFix5M0() {
         MoreKeysKeyboardParams params = createParams(14, 5, XPOS_M0);
         assertEquals("14 key fix 5 M0 columns", 5, params.mNumColumns);
@@ -2453,6 +2594,7 @@
     }
 
     // |<1> [2] [3] [4] [5] [6] [7]
+    @Test
     public void testLayout7KeyFix7L0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L0);
         assertEquals("7 key fix 7 L0 columns", 7, params.mNumColumns);
@@ -2471,6 +2613,7 @@
     }
 
     // |___ <1> [2] [3] [4] [5] [6] [7]
+    @Test
     public void testLayout7KeyFix7L1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L1);
         assertEquals("7 key fix 7 L1 columns", 7, params.mNumColumns);
@@ -2489,6 +2632,7 @@
     }
 
     // |___ [1] <2> [3] [4] [5] [6] [7]
+    @Test
     public void testLayout7KeyFix7L2() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L2);
         assertEquals("7 key fix 7 L2 columns", 7, params.mNumColumns);
@@ -2507,6 +2651,7 @@
     }
 
     // |___ [1] [2] <3> [4] [5] [6] [7]
+    @Test
     public void testLayout7KeyFix7L3() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L3);
         assertEquals("7 key fix 7 L3 columns", 7, params.mNumColumns);
@@ -2525,6 +2670,7 @@
     }
 
     // |___ [1] [2] [3] <4> [5] [6] [7] ___ ___|
+    @Test
     public void testLayout7KeyFix7M0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M0);
         assertEquals("7 key fix 7 M0 columns", 7, params.mNumColumns);
@@ -2543,6 +2689,7 @@
     }
 
     // |___ ___ [1] [2] [3] <4> [5] [6] [7] ___|
+    @Test
     public void testLayout7KeyFix7M1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M1);
         assertEquals("7 key fix 7 M1 columns", 7, params.mNumColumns);
@@ -2561,6 +2708,7 @@
     }
 
     // [1] [2] [3] [4] <5> [6] [7] ___|
+    @Test
     public void testLayout7KeyFix7R3() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R3);
         assertEquals("7 key fix 7 R3 columns", 7, params.mNumColumns);
@@ -2579,6 +2727,7 @@
     }
 
     // [1] [2] [3] [4] [5] <6> [7] ___|
+    @Test
     public void testLayout7KeyFix7R2() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R2);
         assertEquals("7 key fix 7 R2 columns", 7, params.mNumColumns);
@@ -2597,6 +2746,7 @@
     }
 
     // [1] [2] [3] [4] [5] [6] <7> ___|
+    @Test
     public void testLayout7KeyFix7R1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R1);
         assertEquals("7 key fix 7 R1 columns", 7, params.mNumColumns);
@@ -2615,6 +2765,7 @@
     }
 
     // [1] [2] [3] [4] [5] [6] <7>|
+    @Test
     public void testLayout7KeyFix7R0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R0);
         assertEquals("7 key fix 7 R0 columns", 7, params.mNumColumns);
diff --git a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderMaxOrderTests.java b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderMaxOrderTests.java
index 806790e..0a2076d 100644
--- a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderMaxOrderTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderMaxOrderTests.java
@@ -16,13 +16,21 @@
 
 package com.android.inputmethod.keyboard;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.keyboard.MoreKeysKeyboard.MoreKeysKeyboardParams;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @MediumTest
-public class MoreKeysKeyboardBuilderMaxOrderTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class MoreKeysKeyboardBuilderMaxOrderTests {
     private static final int WIDTH = 10;
     private static final int HEIGHT = 10;
 
@@ -38,11 +46,6 @@
     private static final int XPOS_R1 = WIDTH * 8 + WIDTH / 2;
     private static final int XPOS_R0 = WIDTH * 9 + WIDTH / 2;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
     private static MoreKeysKeyboardParams createParams(final int numKeys, final int maxColumns,
             final int coordXInParent) {
         final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
@@ -52,6 +55,7 @@
         return params;
     }
 
+    @Test
     public void testLayoutError() {
         MoreKeysKeyboardParams params = null;
         try {
@@ -69,6 +73,7 @@
     // "<1>" is the default key.
 
     // <1>
+    @Test
     public void testLayout1KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_M0);
         assertEquals("1 key max 5 M0 columns", 1, params.mNumColumns);
@@ -81,6 +86,7 @@
     }
 
     // |<1>
+    @Test
     public void testLayout1KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L0);
         assertEquals("1 key max 5 L0 columns", 1, params.mNumColumns);
@@ -93,6 +99,7 @@
     }
 
     // |___ <1>
+    @Test
     public void testLayout1KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L1);
         assertEquals("1 key max 5 L1 columns", 1, params.mNumColumns);
@@ -105,6 +112,7 @@
     }
 
     // |___ ___ <1>
+    @Test
     public void testLayout1KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L2);
         assertEquals("1 key max 5 L2 columns", 1, params.mNumColumns);
@@ -117,6 +125,7 @@
     }
 
     // <1>|
+    @Test
     public void testLayout1KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R0);
         assertEquals("1 key max 5 R0 columns", 1, params.mNumColumns);
@@ -129,6 +138,7 @@
     }
 
     // <1> ___|
+    @Test
     public void testLayout1KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R1);
         assertEquals("1 key max 5 R1 columns", 1, params.mNumColumns);
@@ -141,6 +151,7 @@
     }
 
     // <1> ___ ___|
+    @Test
     public void testLayout1KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R2);
         assertEquals("1 key max 5 R2 columns", 1, params.mNumColumns);
@@ -153,6 +164,7 @@
     }
 
     // <1> [2]
+    @Test
     public void testLayout2KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_M0);
         assertEquals("2 key max 5 M0 columns", 2, params.mNumColumns);
@@ -166,6 +178,7 @@
     }
 
     // |<1> [2]
+    @Test
     public void testLayout2KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L0);
         assertEquals("2 key max 5 L0 columns", 2, params.mNumColumns);
@@ -179,6 +192,7 @@
     }
 
     // |___ <1> [2]
+    @Test
     public void testLayout2KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L1);
         assertEquals("2 key max 5 L1 columns", 2, params.mNumColumns);
@@ -192,6 +206,7 @@
     }
 
     // |___ ___ <1> [2]
+    @Test
     public void testLayout2KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L2);
         assertEquals("2 key max 5 L2 columns", 2, params.mNumColumns);
@@ -205,6 +220,7 @@
     }
 
     // [2] <1>|
+    @Test
     public void testLayout2KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R0);
         assertEquals("2 key max 5 R0 columns", 2, params.mNumColumns);
@@ -218,6 +234,7 @@
     }
 
     // [2] <1> ___|
+    @Test
     public void testLayout2KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R1);
         assertEquals("2 key max 5 R1 columns", 2, params.mNumColumns);
@@ -231,6 +248,7 @@
     }
 
     // <1> [2] ___|
+    @Test
     public void testLayout2KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R2);
         assertEquals("2 key max 5 R2 columns", 2, params.mNumColumns);
@@ -244,6 +262,7 @@
     }
 
     // [3] <1> [2]
+    @Test
     public void testLayout3KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_M0);
         assertEquals("3 key max 5 M0 columns", 3, params.mNumColumns);
@@ -258,6 +277,7 @@
     }
 
     // |<1> [2] [3]
+    @Test
     public void testLayout3KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L0);
         assertEquals("3 key max 5 L0 columns", 3, params.mNumColumns);
@@ -272,6 +292,7 @@
     }
 
     // |___ <1> [2] [3]
+    @Test
     public void testLayout3KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L1);
         assertEquals("3 key max 5 L1 columns", 3, params.mNumColumns);
@@ -286,6 +307,7 @@
     }
 
     // |___ [3] <1> [2]
+    @Test
     public void testLayout3KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L2);
         assertEquals("3 key max 5 L2 columns", 3, params.mNumColumns);
@@ -300,6 +322,7 @@
     }
 
     // [3] [2] <1>|
+    @Test
     public void testLayout3KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R0);
         assertEquals("3 key max 5 R0 columns", 3, params.mNumColumns);
@@ -314,6 +337,7 @@
     }
 
     // [3] [2] <1> ___|
+    @Test
     public void testLayout3KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R1);
         assertEquals("3 key max 5 R1 columns", 3, params.mNumColumns);
@@ -328,6 +352,7 @@
     }
 
     // [3] <1> [2] ___|
+    @Test
     public void testLayout3KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R2);
         assertEquals("3 key max 5 R2 columns", 3, params.mNumColumns);
@@ -343,6 +368,7 @@
 
     // [3]
     // <1> [2]
+    @Test
     public void testLayout3KeyMax2M0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_M0);
         assertEquals("3 key max 2 M0 columns", 2, params.mNumColumns);
@@ -358,6 +384,7 @@
 
     // |[3]
     // |<1> [2]
+    @Test
     public void testLayout3KeyMax2L0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L0);
         assertEquals("3 key max 2 L0 columns", 2, params.mNumColumns);
@@ -373,6 +400,7 @@
 
     // |___ [3]
     // |___ <1> [2]
+    @Test
     public void testLayout3KeyMax2L1() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L1);
         assertEquals("3 key max 2 L1 columns", 2, params.mNumColumns);
@@ -388,6 +416,7 @@
 
     // |        [3]
     // |___ ___ <1> [2]
+    @Test
     public void testLayout3KeyMax2L2() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L2);
         assertEquals("3 key max 2 L2 columns", 2, params.mNumColumns);
@@ -403,6 +432,7 @@
 
     //     [3]|
     // [2] <1>|
+    @Test
     public void testLayout3KeyMax2R0() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R0);
         assertEquals("3 key max 2 R0 columns", 2, params.mNumColumns);
@@ -418,6 +448,7 @@
 
     //     [3]    |
     // [2] <1> ___|
+    @Test
     public void testLayout3KeyMax2R1() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R1);
         assertEquals("3 key max 2 R1 columns", 2, params.mNumColumns);
@@ -433,6 +464,7 @@
 
     // [3]        |
     // <1> [2] ___|
+    @Test
     public void testLayout3KeyMax2R2() {
         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R2);
         assertEquals("3 key max 2 R2 columns", 2, params.mNumColumns);
@@ -448,6 +480,7 @@
 
     // [3] [4]
     // <1> [2]
+    @Test
     public void testLayout4KeyMax3M0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_M0);
         assertEquals("4 key max 3 M0 columns", 2, params.mNumColumns);
@@ -464,6 +497,7 @@
 
     // |[3] [4]
     // |<1> [2]
+    @Test
     public void testLayout4KeyMax3L0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L0);
         assertEquals("4 key max 3 L0 columns", 2, params.mNumColumns);
@@ -480,6 +514,7 @@
 
     // |___ [3] [4]
     // |___ <1> [2]
+    @Test
     public void testLayout4KeyMax3L1() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L1);
         assertEquals("4 key max 3 L1 columns", 2, params.mNumColumns);
@@ -496,6 +531,7 @@
 
     // |___ ___ [3] [4]
     // |___ ___ <1> [2]
+    @Test
     public void testLayout4KeyMax3L2() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L2);
         assertEquals("4 key max 3 L2 columns", 2, params.mNumColumns);
@@ -512,6 +548,7 @@
 
     // [4] [3]|
     // [2] <1>|
+    @Test
     public void testLayout4KeyMax3R0() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R0);
         assertEquals("4 key max 3 R0 columns", 2, params.mNumColumns);
@@ -528,6 +565,7 @@
 
     // [4] [3] ___|
     // [2] <1> ___|
+    @Test
     public void testLayout4KeyMax3R1() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R1);
         assertEquals("4 key max 3 R1 columns", 2, params.mNumColumns);
@@ -544,6 +582,7 @@
 
     // [3] [4] ___|
     // <1> [2] ___|
+    @Test
     public void testLayout4KeyMax3R2() {
         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R2);
         assertEquals("4 key max 3 R2 columns", 2, params.mNumColumns);
@@ -559,6 +598,7 @@
     }
 
     // [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyMax4M0() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_M0);
         assertEquals("4 key max 4 M0 columns", 4, params.mNumColumns);
@@ -574,6 +614,7 @@
     }
 
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout4KeyMax4L0() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_L0);
         assertEquals("4 key max 4 L0 columns", 4, params.mNumColumns);
@@ -589,6 +630,7 @@
     }
 
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout4KeyMax4L1() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_L1);
         assertEquals("4 key max 4 L1 columns", 4, params.mNumColumns);
@@ -604,6 +646,7 @@
     }
 
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyMax4L2() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_L2);
         assertEquals("4 key max 4 L2 columns", 4, params.mNumColumns);
@@ -619,6 +662,7 @@
     }
 
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout4KeyMax4R0() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_R0);
         assertEquals("4 key max 4 R0 columns", 4, params.mNumColumns);
@@ -634,6 +678,7 @@
     }
 
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout4KeyMax4R1() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_R1);
         assertEquals("4 key max 4 R1 columns", 4, params.mNumColumns);
@@ -649,6 +694,7 @@
     }
 
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout4KeyMax4R2() {
         MoreKeysKeyboardParams params = createParams(4, 4, XPOS_R2);
         assertEquals("4 key max 4 R2 columns", 4, params.mNumColumns);
@@ -664,6 +710,7 @@
     }
 
     // [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_M0);
         assertEquals("4 key max 5 M0 columns", 4, params.mNumColumns);
@@ -679,6 +726,7 @@
     }
 
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout4KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L0);
         assertEquals("4 key max 5 L0 columns", 4, params.mNumColumns);
@@ -694,6 +742,7 @@
     }
 
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout4KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L1);
         assertEquals("4 key max 5 L1 columns", 4, params.mNumColumns);
@@ -709,6 +758,7 @@
     }
 
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout4KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L2);
         assertEquals("4 key max 5 L2 columns", 4, params.mNumColumns);
@@ -724,6 +774,7 @@
     }
 
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout4KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R0);
         assertEquals("4 key max 5 R0 columns", 4, params.mNumColumns);
@@ -739,6 +790,7 @@
     }
 
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout4KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R1);
         assertEquals("4 key max 5 R1 columns", 4, params.mNumColumns);
@@ -754,6 +806,7 @@
     }
 
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout4KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R2);
         assertEquals("4 key max 5 R2 columns", 4, params.mNumColumns);
@@ -770,6 +823,7 @@
 
     //   [4] [5]
     // [3] <1> [2]
+    @Test
     public void testLayout5KeyMax3M0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_M0);
         assertEquals("5 key max 3 M0 columns", 3, params.mNumColumns);
@@ -787,6 +841,7 @@
 
     // |[4] [5]
     // |<1> [2] [3]
+    @Test
     public void testLayout5KeyMax3L0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L0);
         assertEquals("5 key max 3 L0 columns", 3, params.mNumColumns);
@@ -804,6 +859,7 @@
 
     // |___ [4] [5]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout5KeyMax3L1() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L1);
         assertEquals("5 key max 3 L1 columns", 3, params.mNumColumns);
@@ -821,6 +877,7 @@
 
     // |___   [4] [5]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout5KeyMax3L2() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L2);
         assertEquals("5 key max 3 L2 columns", 3, params.mNumColumns);
@@ -838,6 +895,7 @@
 
     //     [5] [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout5KeyMax3R0() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R0);
         assertEquals("5 key max 3 R0 columns", 3, params.mNumColumns);
@@ -855,6 +913,7 @@
 
     //     [5] [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout5KeyMax3R1() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R1);
         assertEquals("5 key max 3 R1 columns", 3, params.mNumColumns);
@@ -872,6 +931,7 @@
 
     //   [4] [5]   ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout5KeyMax3R2() {
         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R2);
         assertEquals("5 key max 3 R2 columns", 3, params.mNumColumns);
@@ -889,6 +949,7 @@
 
     //   [4] [5]
     // [3] <1> [2]
+    @Test
     public void testLayout5KeyMax4M0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_M0);
         assertEquals("5 key max 4 M0 columns", 3, params.mNumColumns);
@@ -906,6 +967,7 @@
 
     // |[4] [5]
     // |<1> [2] [3]
+    @Test
     public void testLayout5KeyMax4L0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L0);
         assertEquals("5 key max 4 L0 columns", 3, params.mNumColumns);
@@ -923,6 +985,7 @@
 
     // |___ [4] [5]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout5KeyMax4L1() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L1);
         assertEquals("5 key max 4 L1 columns", 3, params.mNumColumns);
@@ -940,6 +1003,7 @@
 
     // |___   [4] [5]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout5KeyMax4L2() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L2);
         assertEquals("5 key max 4 L2 columns", 3, params.mNumColumns);
@@ -957,6 +1021,7 @@
 
     //     [5] [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout5KeyMax4R0() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R0);
         assertEquals("5 key max 4 R0 columns", 3, params.mNumColumns);
@@ -974,6 +1039,7 @@
 
     //     [5] [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout5KeyMax4R1() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R1);
         assertEquals("5 key max 4 R1 columns", 3, params.mNumColumns);
@@ -991,6 +1057,7 @@
 
     //   [4] [5]   ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout5KeyMax4R2() {
         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R2);
         assertEquals("5 key max 4 R2 columns", 3, params.mNumColumns);
@@ -1007,6 +1074,7 @@
     }
 
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout5KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_M0);
         assertEquals("5 key max 5 M0 columns", 5, params.mNumColumns);
@@ -1023,6 +1091,7 @@
     }
 
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout5KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L0);
         assertEquals("5 key max 5 L0 columns", 5, params.mNumColumns);
@@ -1039,6 +1108,7 @@
     }
 
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout5KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L1);
         assertEquals("5 key max 5 L1 columns", 5, params.mNumColumns);
@@ -1055,6 +1125,7 @@
     }
 
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout5KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L2);
         assertEquals("5 key max 5 L2 columns", 5, params.mNumColumns);
@@ -1071,6 +1142,7 @@
     }
 
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout5KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R0);
         assertEquals("5 key max 5 R0 columns", 5, params.mNumColumns);
@@ -1087,6 +1159,7 @@
     }
 
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout5KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R1);
         assertEquals("5 key max 5 R1 columns", 5, params.mNumColumns);
@@ -1103,6 +1176,7 @@
     }
 
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout5KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R2);
         assertEquals("5 key max 5 R2 columns", 5, params.mNumColumns);
@@ -1120,6 +1194,7 @@
 
     // [6] [4] [5]
     // [3] <1> [2]
+    @Test
     public void testLayout6KeyMax4M0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_M0);
         assertEquals("6 key max 4 M0 columns", 3, params.mNumColumns);
@@ -1138,6 +1213,7 @@
 
     // |[4] [5] [6]
     // |<1> [2] [3]
+    @Test
     public void testLayout6KeyMax4L0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L0);
         assertEquals("6 key max 4 L0 columns", 3, params.mNumColumns);
@@ -1156,6 +1232,7 @@
 
     // |___ [4] [5] [6]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout6KeyMax4L1() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L1);
         assertEquals("6 key max 4 L1 columns", 3, params.mNumColumns);
@@ -1174,6 +1251,7 @@
 
     // |___ [6] [4] [5]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout6KeyMax4L2() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L2);
         assertEquals("6 key max 4 L2 columns", 3, params.mNumColumns);
@@ -1192,6 +1270,7 @@
 
     // [6] [5] [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout6KeyMax4R0() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R0);
         assertEquals("6 key max 4 R0 columns", 3, params.mNumColumns);
@@ -1210,6 +1289,7 @@
 
     // [6] [5] [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout6KeyMax4R1() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R1);
         assertEquals("6 key max 4 R1 columns", 3, params.mNumColumns);
@@ -1228,6 +1308,7 @@
 
     // [6] [4] [5] ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout6KeyMax4R2() {
         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R2);
         assertEquals("6 key max 4 R2 columns", 3, params.mNumColumns);
@@ -1246,6 +1327,7 @@
 
     // [6] [4] [5]
     // [3] <1> [2]
+    @Test
     public void testLayout6KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_M0);
         assertEquals("6 key max 5 M0 columns", 3, params.mNumColumns);
@@ -1264,6 +1346,7 @@
 
     // |[4] [5] [6]
     // |<1> [2] [3]
+    @Test
     public void testLayout6KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L0);
         assertEquals("6 key max 5 L0 columns", 3, params.mNumColumns);
@@ -1282,6 +1365,7 @@
 
     // |___ [4] [5] [6]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout6KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L1);
         assertEquals("6 key max 5 L1 columns", 3, params.mNumColumns);
@@ -1300,6 +1384,7 @@
 
     // |___ [6] [4] [5]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout6KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L2);
         assertEquals("6 key max 5 L2 columns", 3, params.mNumColumns);
@@ -1318,6 +1403,7 @@
 
     // [6] [5] [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout6KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R0);
         assertEquals("6 key max 5 R0 columns", 3, params.mNumColumns);
@@ -1336,6 +1422,7 @@
 
     // [6] [5] [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout6KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R1);
         assertEquals("6 key max 5 R1 columns", 3, params.mNumColumns);
@@ -1354,6 +1441,7 @@
 
     // [6] [4] [5] ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout6KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R2);
         assertEquals("6 key max 5 R2 columns", 3, params.mNumColumns);
@@ -1371,6 +1459,7 @@
     }
 
     // |<1> [2] [3] [4] [5] [6] [7] ___ ___ ___|
+    @Test
     public void testLayout7KeyMax7L0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L0);
         assertEquals("7 key max 7 L0 columns", 7, params.mNumColumns);
@@ -1389,6 +1478,7 @@
     }
 
     // |___ <1> [2] [3] [4] [5] [6] [7] ___ ___|
+    @Test
     public void testLayout7KeyMax7L1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L1);
         assertEquals("7 key max 7 L1 columns", 7, params.mNumColumns);
@@ -1407,6 +1497,7 @@
     }
 
     // |___ [3] <1> [2] [4] [5] [6] [7] ___ ___|
+    @Test
     public void testLayout7KeyMax7L2() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L2);
         assertEquals("7 key max 7 L2 columns", 7, params.mNumColumns);
@@ -1425,6 +1516,7 @@
     }
 
     // |___ [5] [3] <1> [2] [4] [6] [7] ___ ___|
+    @Test
     public void testLayout7KeyMax7L3() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L3);
         assertEquals("7 key max 7 L3 columns", 7, params.mNumColumns);
@@ -1443,6 +1535,7 @@
     }
 
     // |___ [7] [5] [3] <1> [2] [4] [6] ___ ___|
+    @Test
     public void testLayout7KeyMax7M0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M0);
         assertEquals("7 key max 7 M0 columns", 7, params.mNumColumns);
@@ -1461,6 +1554,7 @@
     }
 
     // |___ ___ [7] [5] [3] <1> [2] [4] [6] ___|
+    @Test
     public void testLayout7KeyMax7M1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M1);
         assertEquals("7 key max 7 M1 columns", 7, params.mNumColumns);
@@ -1479,6 +1573,7 @@
     }
 
     // |___ ___ [7] [6] [5] [3] <1> [2] [4] ___|
+    @Test
     public void testLayout7KeyMax7R3() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R3);
         assertEquals("7 key max 7 R3 columns", 7, params.mNumColumns);
@@ -1497,6 +1592,7 @@
     }
 
     // |___ ___ [7] [6] [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout7KeyMax7R2() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R2);
         assertEquals("7 key max 7 R2 columns", 7, params.mNumColumns);
@@ -1515,6 +1611,7 @@
     }
 
     // |___ ___ [7] [6] [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout7KeyMax7R1() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R1);
         assertEquals("7 key max 7 R1 columns", 7, params.mNumColumns);
@@ -1533,6 +1630,7 @@
     }
 
     // |___ ___ [7] [6] [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout7KeyMax7R0() {
         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R0);
         assertEquals("7 key max 7 R0 columns", 7, params.mNumColumns);
@@ -1552,6 +1650,7 @@
 
     //   [5] [6] [7]
     // [3] <1> [2] [4]
+    @Test
     public void testLayout7KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_M0);
         assertEquals("7 key max 5 M0 columns", 4, params.mNumColumns);
@@ -1571,6 +1670,7 @@
 
     // |[5] [6] [7]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout7KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L0);
         assertEquals("7 key max 5 L0 columns", 4, params.mNumColumns);
@@ -1590,6 +1690,7 @@
 
     // |___ [5] [6] [7]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout7KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L1);
         assertEquals("7 key max 5 L1 columns", 4, params.mNumColumns);
@@ -1609,6 +1710,7 @@
 
     // |___   [5] [6] [7]
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout7KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L2);
         assertEquals("7 key max 5 L2 columns", 4, params.mNumColumns);
@@ -1628,6 +1730,7 @@
 
     //     [7] [6] [5]|
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout7KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R0);
         assertEquals("7 key max 5 R0 columns", 4, params.mNumColumns);
@@ -1647,6 +1750,7 @@
 
     //     [7] [6] [5] ___|
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout7KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R1);
         assertEquals("7 key max 5 R1 columns", 4, params.mNumColumns);
@@ -1666,6 +1770,7 @@
 
     //   [7] [5] [6]   ___|
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout7KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R2);
         assertEquals("7 key max 5 R2 columns", 4, params.mNumColumns);
@@ -1686,6 +1791,7 @@
     //     [7]
     // [6] [4] [5]
     // [3] <1> [2]
+    @Test
     public void testLayout7KeyMax3M0() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_M0);
         assertEquals("7 key max 3 M0 columns", 3, params.mNumColumns);
@@ -1706,6 +1812,7 @@
     // |[7]
     // |[4] [5] [6]
     // |<1> [2] [3]
+    @Test
     public void testLayout7KeyMax3L0() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_L0);
         assertEquals("7 key max 3 L0 columns", 3, params.mNumColumns);
@@ -1726,6 +1833,7 @@
     // |___ [7]
     // |___ [4] [5] [6]
     // |___ <1> [2] [3]
+    @Test
     public void testLayout7KeyMax3L1() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_L1);
         assertEquals("7 key max 3 L1 columns", 3, params.mNumColumns);
@@ -1746,6 +1854,7 @@
     // |___     [7]
     // |___ [6] [4] [5]
     // |___ [3] <1> [2]
+    @Test
     public void testLayout7KeyMax3L2() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_L2);
         assertEquals("7 key max 3 L2 columns", 3, params.mNumColumns);
@@ -1766,6 +1875,7 @@
     //         [7]|
     // [6] [5] [4]|
     // [3] [2] <1>|
+    @Test
     public void testLayout7KeyMax3R0() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_R0);
         assertEquals("7 key max 3 R0 columns", 3, params.mNumColumns);
@@ -1786,6 +1896,7 @@
     //         [7] ___|
     // [6] [5] [4] ___|
     // [3] [2] <1> ___|
+    @Test
     public void testLayout7KeyMax3R1() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_R1);
         assertEquals("7 key max 3 R1 columns", 3, params.mNumColumns);
@@ -1806,6 +1917,7 @@
     //     [7]     ___|
     // [6] [4] [5] ___|
     // [3] <1> [2] ___|
+    @Test
     public void testLayout7KeyMax3R2() {
         MoreKeysKeyboardParams params = createParams(7, 3, XPOS_R2);
         assertEquals("7 key max 3 R2 columns", 3, params.mNumColumns);
@@ -1825,6 +1937,7 @@
 
     // [7] [5] [6] [8]
     // [3] <1> [2] [4]
+    @Test
     public void testLayout8KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_M0);
         assertEquals("8 key max 5 M0 columns", 4, params.mNumColumns);
@@ -1845,6 +1958,7 @@
 
     // |[5] [6] [7] [8]
     // |<1> [2] [3] [4]
+    @Test
     public void testLayout8KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L0);
         assertEquals("8 key max 5 L0 columns", 4, params.mNumColumns);
@@ -1865,6 +1979,7 @@
 
     // |___ [5] [6] [7] [8]
     // |___ <1> [2] [3] [4]
+    @Test
     public void testLayout8KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L1);
         assertEquals("8 key max 5 L1 columns", 4, params.mNumColumns);
@@ -1885,6 +2000,7 @@
 
     // |___ [7] [5] [6] [8]
     // |___ [3] <1> [2] [4]
+    @Test
     public void testLayout8KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L2);
         assertEquals("8 key max 5 L2 columns", 4, params.mNumColumns);
@@ -1905,6 +2021,7 @@
 
     // [8] [7] [6] [5]|
     // [4] [3] [2] <1>|
+    @Test
     public void testLayout8KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R0);
         assertEquals("8 key max 5 R0 columns", 4, params.mNumColumns);
@@ -1925,6 +2042,7 @@
 
     // [8] [7] [6] [5] ___|
     // [4] [3] [2] <1> ___|
+    @Test
     public void testLayout8KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R1);
         assertEquals("8 key max 5 R1 columns", 4, params.mNumColumns);
@@ -1945,6 +2063,7 @@
 
     // [8] [7] [5] [6] ___|
     // [4] [3] <1> [2] ___|
+    @Test
     public void testLayout8KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R2);
         assertEquals("8 key max 5 R2 columns", 4, params.mNumColumns);
@@ -1965,6 +2084,7 @@
 
     //   [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout9KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_M0);
         assertEquals("9 key max 5 M0 columns", 5, params.mNumColumns);
@@ -1986,6 +2106,7 @@
 
     // |[6] [7] [8] [9]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout9KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L0);
         assertEquals("9 key max 5 L0 columns", 5, params.mNumColumns);
@@ -2007,6 +2128,7 @@
 
     // |___ [6] [7] [8] [9]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout9KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L1);
         assertEquals("9 key max 5 L1 columns", 5, params.mNumColumns);
@@ -2028,6 +2150,7 @@
 
     // |___   [6] [7] [8] [9]
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout9KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L2);
         assertEquals("9 key max 5 L2 columns", 5, params.mNumColumns);
@@ -2049,6 +2172,7 @@
 
     //     [9] [8] [7] [6]|
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout9KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R0);
         assertEquals("9 key max 5 R0 columns", 5, params.mNumColumns);
@@ -2070,6 +2194,7 @@
 
     //     [9] [8] [7] [6] ___|
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout9KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R1);
         assertEquals("9 key max 5 R1 columns", 5, params.mNumColumns);
@@ -2091,6 +2216,7 @@
 
     //   [9] [8] [6] [7]   ___|
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout9KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R2);
         assertEquals("9 key max 5 R2 columns", 5, params.mNumColumns);
@@ -2112,6 +2238,7 @@
 
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout10KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_M0);
         assertEquals("10 key max 5 M0 columns", 5, params.mNumColumns);
@@ -2134,6 +2261,7 @@
 
     // |[6] [7] [8] [9] [A]
     // |<1> [2] [3] [4] [5]
+    @Test
     public void testLayout10KeyMax5L0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L0);
         assertEquals("10 key max 5 L0 columns", 5, params.mNumColumns);
@@ -2156,6 +2284,7 @@
 
     // |___ [6] [7] [8] [9] [A]
     // |___ <1> [2] [3] [4] [5]
+    @Test
     public void testLayout10KeyMax5L1() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L1);
         assertEquals("10 key max 5 L1 columns", 5, params.mNumColumns);
@@ -2178,6 +2307,7 @@
 
     // |___ [8] [6] [7] [9] [A]
     // |___ [3] <1> [2] [4] [5]
+    @Test
     public void testLayout10KeyMax5L2() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L2);
         assertEquals("10 key max 5 L2 columns", 5, params.mNumColumns);
@@ -2200,6 +2330,7 @@
 
     // [A] [9] [8] [7] [6]|
     // [5] [4] [3] [2] <1>|
+    @Test
     public void testLayout10KeyMax5R0() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R0);
         assertEquals("10 key max 5 R0 columns", 5, params.mNumColumns);
@@ -2222,6 +2353,7 @@
 
     // [A] [9] [8] [7] [6] ___|
     // [5] [4] [3] [2] <1> ___|
+    @Test
     public void testLayout10KeyMax5R1() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R1);
         assertEquals("10 key max 5 R1 columns", 5, params.mNumColumns);
@@ -2244,6 +2376,7 @@
 
     // [A] [9] [8] [6] [7] ___|
     // [5] [4] [3] <1> [2] ___|
+    @Test
     public void testLayout10KeyMax5R2() {
         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R2);
         assertEquals("10 key max 5 R2 columns", 5, params.mNumColumns);
@@ -2267,6 +2400,7 @@
     //   [9] [A] [B]
     // [7] [5] [6] [8]
     // [3] <1> [2] [4]
+    @Test
     public void testLayout11KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(11, 5, XPOS_M0);
         assertEquals("11 key max 5 M0 columns", 4, params.mNumColumns);
@@ -2291,6 +2425,7 @@
     // [B] [9] [A] [C]
     // [7] [5] [6] [8]
     // [3] <1> [2] [4]
+    @Test
     public void testLayout12KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(12, 5, XPOS_M0);
         assertEquals("12 key max 5 M0 columns", 4, params.mNumColumns);
@@ -2316,6 +2451,7 @@
     //     [D] [B] [C]
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout13KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(13, 5, XPOS_M0);
         assertEquals("13 key max 5 M0 columns", 5, params.mNumColumns);
@@ -2342,6 +2478,7 @@
     //   [D] [B] [C] [E]
     // [A] [8] [6] [7] [9]
     // [5] [3] <1> [2] [4]
+    @Test
     public void testLayout14KeyMax5M0() {
         MoreKeysKeyboardParams params = createParams(14, 5, XPOS_M0);
         assertEquals("13 key max 5 M0 columns", 5, params.mNumColumns);
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/HermiteInterpolatorTests.java b/tests/src/com/android/inputmethod/keyboard/internal/HermiteInterpolatorTests.java
index 3ff5aa4..814ecd4 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/HermiteInterpolatorTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/HermiteInterpolatorTests.java
@@ -16,25 +16,20 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 @SmallTest
-public class HermiteInterpolatorTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class HermiteInterpolatorTests {
     private final HermiteInterpolator mInterpolator = new HermiteInterpolator();
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
-    private static final float EPSLION = 0.0000005f;
-
-    private static void assertFloatEquals(final String message, float expected, float actual) {
-        if (Math.abs(expected - actual) >= EPSLION) {
-            fail(String.format("%s expected:<%s> but was:<%s>", message, expected, actual));
-        }
-    }
+    private static final float EPSILON = 0.0000005f;
 
     // t=0 p0=(0,1)
     // t=1 p1=(1,0)
@@ -57,6 +52,7 @@
     private static final int p2 = 2;
     private static final int p3 = 3;
 
+    @Test
     public void testP0P1() {
         // [(p0 p1) p2 p3]
         mInterpolator.reset(mXCoords, mYCoords, p0, p3 + 1);
@@ -66,33 +62,34 @@
         assertEquals("p1x", mXCoords[p1], mInterpolator.mP2X);
         assertEquals("p1y", mYCoords[p1], mInterpolator.mP2Y);
         // XY-slope at p0=3.0 (-0.75/-0.25)
-        assertFloatEquals("slope x p0", -0.25f, mInterpolator.mSlope1X);
-        assertFloatEquals("slope y p0", -0.75f, mInterpolator.mSlope1Y);
+        assertEquals("slope x p0", -0.25f, mInterpolator.mSlope1X, EPSILON);
+        assertEquals("slope y p0", -0.75f, mInterpolator.mSlope1Y, EPSILON);
         // XY-slope at p1=1/3.0 (0.50/1.50)
-        assertFloatEquals("slope x p1",  1.50f, mInterpolator.mSlope2X);
-        assertFloatEquals("slope y p1",  0.50f, mInterpolator.mSlope2Y);
+        assertEquals("slope x p1",  1.50f, mInterpolator.mSlope2X, EPSILON);
+        assertEquals("slope y p1",  0.50f, mInterpolator.mSlope2Y, EPSILON);
         // t=0.0 (p0)
         mInterpolator.interpolate(0.0f);
-        assertFloatEquals("t=0.0 x", 0.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.0 y", 1.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.0 x", 0.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.0 y", 1.0f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.2
         mInterpolator.interpolate(0.2f);
-        assertFloatEquals("t=0.2 x", 0.02400f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.2 y", 0.78400f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.2 x", 0.02400f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.2 y", 0.78400f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.5
         mInterpolator.interpolate(0.5f);
-        assertFloatEquals("t=0.5 x", 0.28125f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.5 y", 0.34375f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.5 x", 0.28125f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.5 y", 0.34375f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.8
         mInterpolator.interpolate(0.8f);
-        assertFloatEquals("t=0.8 x", 0.69600f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.8 y", 0.01600f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.8 x", 0.69600f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.8 y", 0.01600f, mInterpolator.mInterpolatedY, EPSILON);
         // t=1.0 (p1)
         mInterpolator.interpolate(1.0f);
-        assertFloatEquals("t=1.0 x", 1.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=1.0 y", 0.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=1.0 x", 1.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=1.0 y", 0.0f, mInterpolator.mInterpolatedY, EPSILON);
     }
 
+    @Test
     public void testP1P2() {
         // [p0 (p1 p2) p3]
         mInterpolator.reset(mXCoords, mYCoords, p0, p3 + 1);
@@ -102,33 +99,34 @@
         assertEquals("p2x", mXCoords[p2], mInterpolator.mP2X);
         assertEquals("p2y", mYCoords[p2], mInterpolator.mP2Y);
         // XY-slope at p1=1/3.0 (0.50/1.50)
-        assertFloatEquals("slope x p1",  1.50f, mInterpolator.mSlope1X);
-        assertFloatEquals("slope y p1",  0.50f, mInterpolator.mSlope1Y);
+        assertEquals("slope x p1",  1.50f, mInterpolator.mSlope1X, EPSILON);
+        assertEquals("slope y p1",  0.50f, mInterpolator.mSlope1Y, EPSILON);
         // XY-slope at p2=3.0 (1.50/0.50)
-        assertFloatEquals("slope x p2",  0.50f, mInterpolator.mSlope2X);
-        assertFloatEquals("slope y p2",  1.50f, mInterpolator.mSlope2Y);
+        assertEquals("slope x p2",  0.50f, mInterpolator.mSlope2X, EPSILON);
+        assertEquals("slope y p2",  1.50f, mInterpolator.mSlope2Y, EPSILON);
         // t=0.0 (p1)
         mInterpolator.interpolate(0.0f);
-        assertFloatEquals("t=0.0 x", 1.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.0 y", 0.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.0 x", 1.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.0 y", 0.0f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.2
         mInterpolator.interpolate(0.2f);
-        assertFloatEquals("t=0.2 x", 1.384f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.2 y", 0.224f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.2 x", 1.384f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.2 y", 0.224f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.5
         mInterpolator.interpolate(0.5f);
-        assertFloatEquals("t=0.5 x", 2.125f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.5 y", 0.875f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.5 x", 2.125f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.5 y", 0.875f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.8
         mInterpolator.interpolate(0.8f);
-        assertFloatEquals("t=0.8 x", 2.776f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.8 y", 1.616f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.8 x", 2.776f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.8 y", 1.616f, mInterpolator.mInterpolatedY, EPSILON);
         // t=1.0 (p2)
         mInterpolator.interpolate(1.0f);
-        assertFloatEquals("t=1.0 x", 3.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=1.0 y", 2.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=1.0 x", 3.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=1.0 y", 2.0f, mInterpolator.mInterpolatedY, EPSILON);
     }
 
+    @Test
     public void testP2P3() {
         // [p0 p1 (p2 p3)]
         mInterpolator.reset(mXCoords, mYCoords, p0, p3 + 1);
@@ -138,33 +136,34 @@
         assertEquals("p3x", mXCoords[p3], mInterpolator.mP2X);
         assertEquals("p3y", mYCoords[p3], mInterpolator.mP2Y);
         // XY-slope at p2=3.0 (1.50/0.50)
-        assertFloatEquals("slope x p2",  0.50f, mInterpolator.mSlope1X);
-        assertFloatEquals("slope y p2",  1.50f, mInterpolator.mSlope1Y);
+        assertEquals("slope x p2",  0.50f, mInterpolator.mSlope1X, EPSILON);
+        assertEquals("slope y p2",  1.50f, mInterpolator.mSlope1Y, EPSILON);
         // XY-slope at p3=1/3.0 (-0.25/-0.75)
-        assertFloatEquals("slope x p3", -0.75f, mInterpolator.mSlope2X);
-        assertFloatEquals("slope y p3", -0.25f, mInterpolator.mSlope2Y);
+        assertEquals("slope x p3", -0.75f, mInterpolator.mSlope2X, EPSILON);
+        assertEquals("slope y p3", -0.25f, mInterpolator.mSlope2Y, EPSILON);
         // t=0.0 (p2)
         mInterpolator.interpolate(0.0f);
-        assertFloatEquals("t=0.0 x", 3.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.0 y", 2.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.0 x", 3.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.0 y", 2.0f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.2
         mInterpolator.interpolate(0.2f);
-        assertFloatEquals("t=0.2 x", 2.98400f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.2 y", 2.30400f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.2 x", 2.98400f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.2 y", 2.30400f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.5
         mInterpolator.interpolate(0.5f);
-        assertFloatEquals("t=0.5 x", 2.65625f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.5 y", 2.71875f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.5 x", 2.65625f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.5 y", 2.71875f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.8
         mInterpolator.interpolate(0.8f);
-        assertFloatEquals("t=0.8 x", 2.21600f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.8 y", 2.97600f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.8 x", 2.21600f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.8 y", 2.97600f, mInterpolator.mInterpolatedY, EPSILON);
         // t=1.0 (p3)
         mInterpolator.interpolate(1.0f);
-        assertFloatEquals("t=1.0 x", 2.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=1.0 y", 3.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=1.0 x", 2.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=1.0 y", 3.0f, mInterpolator.mInterpolatedY, EPSILON);
     }
 
+    @Test
     public void testJustP1P2() {
         // [(p1 p2)]
         mInterpolator.reset(mXCoords, mYCoords, p1, p2 + 1);
@@ -174,30 +173,30 @@
         assertEquals("p2x", mXCoords[p2], mInterpolator.mP2X);
         assertEquals("p2y", mYCoords[p2], mInterpolator.mP2Y);
         // XY-slope at p1=1.0 (2.0/2.0)
-        assertFloatEquals("slope x p1", 2.00f, mInterpolator.mSlope1X);
-        assertFloatEquals("slope y p1", 2.00f, mInterpolator.mSlope1Y);
+        assertEquals("slope x p1", 2.00f, mInterpolator.mSlope1X, EPSILON);
+        assertEquals("slope y p1", 2.00f, mInterpolator.mSlope1Y, EPSILON);
         // XY-slope at p2=1.0 (2.0/2.0)
-        assertFloatEquals("slope x p2", 2.00f, mInterpolator.mSlope2X);
-        assertFloatEquals("slope y p2", 2.00f, mInterpolator.mSlope2Y);
+        assertEquals("slope x p2", 2.00f, mInterpolator.mSlope2X, EPSILON);
+        assertEquals("slope y p2", 2.00f, mInterpolator.mSlope2Y, EPSILON);
         // t=0.0 (p1)
         mInterpolator.interpolate(0.0f);
-        assertFloatEquals("t=0.0 x", 1.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.0 y", 0.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.0 x", 1.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.0 y", 0.0f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.2
         mInterpolator.interpolate(0.2f);
-        assertFloatEquals("t=0.2 x", 1.4f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.2 y", 0.4f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.2 x", 1.4f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.2 y", 0.4f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.5
         mInterpolator.interpolate(0.5f);
-        assertFloatEquals("t=0.5 x", 2.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.5 y", 1.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.5 x", 2.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.5 y", 1.0f, mInterpolator.mInterpolatedY, EPSILON);
         // t=0.8
         mInterpolator.interpolate(0.8f);
-        assertFloatEquals("t=0.8 x", 2.6f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=0.8 y", 1.6f, mInterpolator.mInterpolatedY);
+        assertEquals("t=0.8 x", 2.6f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=0.8 y", 1.6f, mInterpolator.mInterpolatedY, EPSILON);
         // t=1.0 (p2)
         mInterpolator.interpolate(1.0f);
-        assertFloatEquals("t=1.0 x", 3.0f, mInterpolator.mInterpolatedX);
-        assertFloatEquals("t=1.0 y", 2.0f, mInterpolator.mInterpolatedY);
+        assertEquals("t=1.0 x", 3.0f, mInterpolator.mInterpolatedX, EPSILON);
+        assertEquals("t=1.0 y", 2.0f, mInterpolator.mInterpolatedY, EPSILON);
     }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java
index 7221101..9921192 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSetTests.java
@@ -16,9 +16,13 @@
 
 package com.android.inputmethod.keyboard.internal;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
 import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
@@ -30,14 +34,22 @@
 import java.util.List;
 import java.util.Locale;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public final class KeyboardTextsSetTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public final class KeyboardTextsSetTests {
     // All input method subtypes of LatinIME.
     private List<InputMethodSubtype> mAllSubtypesList;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+
+    @Before
+    public void setUp() throws Exception {
         RichInputMethodManager.init(getContext());
         final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
 
@@ -54,6 +66,7 @@
     // Test that the text {@link KeyboardTextsSet#SWITCH_TO_ALPHA_KEY_LABEL} exists for all
     // subtypes. The text is needed to implement Emoji Keyboard, see
     // {@link KeyboardSwitcher#setEmojiKeyboard()}.
+    @Test
     public void testSwitchToAlphaKeyLabel() {
         final Context context = getContext();
         final KeyboardTextsSet textsSet = new KeyboardTextsSet();
@@ -80,6 +93,7 @@
     };
 
     // Test that the text from resources are correctly loaded for all subtypes.
+    @Test
     public void testTextFromResources() {
         final Context context = getContext();
         final KeyboardTextsSet textsSet = new KeyboardTextsSet();
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MatrixUtilsTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MatrixUtilsTests.java
index e2a11ab..ba45a1b 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MatrixUtilsTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MatrixUtilsTests.java
@@ -16,25 +16,26 @@
 
 package com.android.inputmethod.keyboard.internal;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import com.android.inputmethod.keyboard.internal.MatrixUtils.MatrixOperationFailedException;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 
 @SmallTest
-public class MatrixUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class MatrixUtilsTests {
     // "run tests" -c com.android.inputmethod.keyboard.internal.MatrixUtilsTests
     private static final boolean DEBUG = false;
     private static final float EPSILON = 0.00001f;
 
-    private static void assertEqualsFloat(float f0, float f1) {
-        assertEqualsFloat(f0, f1, EPSILON);
-    }
-
-    /* package */ static void assertEqualsFloat(float f0, float f1, float error) {
-        assertTrue(Math.abs(f0 - f1) < error);
-    }
-
+    @Test
     public void testMulti() {
         final float[][] matrixA = {{1, 2}, {3, 4}};
         final float[][] matrixB = {{5, 6}, {7, 8}};
@@ -47,12 +48,13 @@
         if (DEBUG) {
             MatrixUtils.dump("multi", retval);
         }
-        assertEqualsFloat(retval[0][0], 19);
-        assertEqualsFloat(retval[0][1], 22);
-        assertEqualsFloat(retval[1][0], 43);
-        assertEqualsFloat(retval[1][1], 50);
+        assertEquals(retval[0][0], 19, EPSILON);
+        assertEquals(retval[0][1], 22, EPSILON);
+        assertEquals(retval[1][0], 43, EPSILON);
+        assertEquals(retval[1][1], 50, EPSILON);
     }
 
+    @Test
     public void testInverse() {
         final int N = 4;
         final float[][] matrix =
@@ -77,7 +79,7 @@
         }
         for (int i = 0; i < N; ++i) {
             for (int j = 0; j < N; ++j) {
-                assertEqualsFloat(((i == j) ? 1.0f : 0.0f), retval[i][j]);
+                assertEquals(((i == j) ? 1.0f : 0.0f), retval[i][j], EPSILON);
             }
         }
     }
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
index 8f4648c..4cab29a 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
@@ -16,26 +16,33 @@
 
 package com.android.inputmethod.keyboard.internal;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
 import android.content.Context;
 import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.R;
 
 import java.util.Arrays;
 import java.util.Locale;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class MoreKeySpecSplitTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class MoreKeySpecSplitTests {
     private static final Locale TEST_LOCALE = Locale.ENGLISH;
     private final KeyboardTextsSet mTextsSet = new KeyboardTextsSet();
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        final Context targetContext = getContext();
+    @Before
+    public void setUp() throws Exception {
+        final Context targetContext = InstrumentationRegistry.getTargetContext();
         final Resources targetRes = targetContext.getResources();
         final String targetPackageName = targetRes.getResourcePackageName(
                 R.string.english_ime_name);
@@ -90,6 +97,7 @@
     private static final String SURROGATE1 = PAIR1 + PAIR2;
     private static final String SURROGATE2 = PAIR1 + PAIR2 + PAIR3;
 
+    @Test
     public void testSplitZero() {
         assertTextArray("Empty string", "");
         assertTextArray("Empty entry", ",");
@@ -99,6 +107,7 @@
         assertTextArray("Empty entries with escape", ",a,b\\,c,,d,", "a", "b\\,c", "d");
     }
 
+    @Test
     public void testSplitSingle() {
         assertTextArray("Single char", "a", "a");
         assertTextArray("Surrogate pair", PAIR1, PAIR1);
@@ -128,6 +137,7 @@
         assertTextArray("Incomplete resource reference 4", "!" + SURROGATE2, "!" + SURROGATE2);
     }
 
+    @Test
     public void testSplitSingleEscaped() {
         assertTextArray("Escaped char", "\\a", "\\a");
         assertTextArray("Escaped surrogate pair", "\\" + PAIR1, "\\" + PAIR1);
@@ -163,6 +173,7 @@
         assertTextArray("Escaped !TEXT/NAME", "\\!TEXT/EMPTY_STRING", "\\!TEXT/EMPTY_STRING");
     }
 
+    @Test
     public void testSplitMulti() {
         assertTextArray("Multiple chars", "a,b,c", "a", "b", "c");
         assertTextArray("Multiple chars", "a,b,\\c", "a", "b", "\\c");
@@ -178,6 +189,7 @@
                 " abc ", " def ", " ghi ");
     }
 
+    @Test
     public void testSplitMultiEscaped() {
         assertTextArray("Multiple chars with comma", "a,\\,,c", "a", "\\,", "c");
         assertTextArray("Multiple chars with comma surrounded by spaces", " a , \\, , c ",
@@ -197,16 +209,19 @@
                 "\\!", "\\!TEXT/EMPTY_STRING");
     }
 
+    @Test
     public void testSplitTextReferenceError() {
         assertError("Incomplete text name", "!text/", "!text/");
         assertError("Non existing text", "!text/non_existing");
     }
 
+    @Test
     public void testSplitEmptyTextReference() {
         // Note that morekeys_q of English locale is empty.
         assertTextArray("Empty string", "!text/morekeys_q");
     }
 
+    @Test
     public void testLabelReferece() {
         assertTextArray("Label time am", "!text/keylabel_time_am", "AM");
 
@@ -217,6 +232,7 @@
                 "!icon/settings_key|!code/key_settings");
     }
 
+    @Test
     public void testUselessUpperCaseSpecifier() {
         assertTextArray("EMPTY STRING",
                 "!TEXT/EMPTY_STRING", "!TEXT/EMPTY_STRING");
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecStringReferenceTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecStringReferenceTests.java
index e06ecae..0ffc96a 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecStringReferenceTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecStringReferenceTests.java
@@ -16,26 +16,33 @@
 
 package com.android.inputmethod.keyboard.internal;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
 import android.app.Instrumentation;
 import android.content.Context;
 import android.content.res.Resources;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.tests.R;
 
 import java.util.Locale;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class MoreKeySpecStringReferenceTests extends InstrumentationTestCase {
+@RunWith(AndroidJUnit4.class)
+public class MoreKeySpecStringReferenceTests {
     private static final Locale TEST_LOCALE = Locale.ENGLISH;
     private final KeyboardTextsSet mTextsSet = new KeyboardTextsSet();
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        final Instrumentation instrumentation = getInstrumentation();
+    @Before
+    public void setUp() throws Exception {
+        final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
         final Context testContext = instrumentation.getContext();
         final Resources testRes = testContext.getResources();
         final String testPackageName = testRes.getResourcePackageName(R.string.empty_string);
@@ -59,16 +66,19 @@
         }
     }
 
+    @Test
     public void testResolveNullText() {
         assertEquals("resolve null",
                 mTextsSet.resolveTextReference(null), null);
     }
 
+    @Test
     public void testResolveEmptyText() {
         assertEquals("resolve empty text",
                 mTextsSet.resolveTextReference("!string/empty_string"), null);
     }
 
+    @Test
     public void testSplitSingleEscaped() {
         assertTextArray("Escaped !string", "\\!string",
                 "\\!string");
@@ -82,6 +92,7 @@
                 "\\!STRING/EMPTY_STRING");
     }
 
+    @Test
     public void testSplitMultiEscaped() {
         assertTextArray("Multiple escaped !string", "\\!,\\!string/empty_string",
                 "\\!", "\\!string/empty_string");
@@ -89,15 +100,18 @@
                 "\\!", "\\!STRING/EMPTY_STRING");
     }
 
+    @Test
     public void testSplitStringReferenceError() {
         assertError("Incomplete resource name", "!string/", "!string/");
         assertError("Non existing resource", "!string/non_existing");
     }
 
+    @Test
     public void testSplitEmptyStringReference() {
         assertTextArray("Empty string", "!string/empty_string");
     }
 
+    @Test
     public void testSplitResourceSingle() {
         assertTextArray("Single char", "!string/single_char",
                 "a");
@@ -119,6 +133,7 @@
                 "\\\\a");
     }
 
+    @Test
     public void testSplitResourceSingleEscaped() {
         assertTextArray("Escaped char",
                 "!string/escaped_char", "\\a");
@@ -146,6 +161,7 @@
                 "!string/escaped_label_with_escape", "a\\\\c");
     }
 
+    @Test
     public void testSplitResourceMulti() {
         assertTextArray("Multiple chars",
                 "!string/multiple_chars", "a", "b", "c");
@@ -158,6 +174,7 @@
                 "!string/multiple_labels_surrounded_by_spaces", " abc ", " def ", " ghi ");
     }
 
+    @Test
     public void testSplitResourcetMultiEscaped() {
         assertTextArray("Multiple chars with comma",
                 "!string/multiple_chars_with_comma",
@@ -179,6 +196,7 @@
                 " ab\\\\ ", " d\\\\\\, ", " g\\,i ");
     }
 
+    @Test
     public void testSplitMultipleResources() {
         assertTextArray("Literals and resources",
                 "1,!string/multiple_chars,z",
@@ -203,6 +221,7 @@
                 "abcabc", "def", "ghi");
     }
 
+    @Test
     public void testSplitIndirectReference() {
         assertTextArray("Indirect",
                 "!string/indirect_string", "a", "b", "c");
@@ -212,11 +231,13 @@
                 "!string/indirect2_string", "a", "b", "c");
     }
 
+    @Test
     public void testSplitInfiniteIndirectReference() {
         assertError("Infinite indirection",
                 "1,!string/infinite_indirection,2", "1", "infinite", "<infinite>", "loop", "2");
     }
 
+    @Test
     public void testLabelReferece() {
         assertTextArray("Indirect naviagte actions as more key",
                 "!string/keyspec_indirect_navigate_actions",
@@ -225,6 +246,7 @@
                 "!hasLabels!", "ActionNext|!code/key_action_next");
     }
 
+    @Test
     public void testUselessUpperCaseSpecifier() {
         assertTextArray("EMPTY STRING",
                 "!STRING/EMPTY_STRING", "!STRING/EMPTY_STRING");
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueueTests.java b/tests/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueueTests.java
index 7908b26..f4885ff 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueueTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueueTests.java
@@ -16,11 +16,19 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 @SmallTest
-public class PointerTrackerQueueTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class PointerTrackerQueueTests {
     public static class Element implements PointerTrackerQueue.Element {
         public static int sPhantomUpCount;
         public static final long NOT_HAPPENED = -1;
@@ -65,11 +73,13 @@
     private final Element mElement4 = new Element(4);
     private final PointerTrackerQueue mQueue = new PointerTrackerQueue();
 
+    @Test
     public void testEmpty() {
         assertEquals(0, mQueue.size());
         assertEquals("[]", mQueue.toString());
     }
 
+    @Test
     public void testAdd() {
         mQueue.add(mElement1);
         assertEquals(1, mQueue.size());
@@ -85,6 +95,7 @@
         assertEquals("[1 2 3 4]", mQueue.toString());
     }
 
+    @Test
     public void testRemove() {
         Element.sPhantomUpCount = 0;
 
@@ -119,6 +130,7 @@
         assertEquals(Element.NOT_HAPPENED, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testAddAndRemove() {
         Element.sPhantomUpCount = 0;
 
@@ -158,6 +170,7 @@
         assertEquals(Element.NOT_HAPPENED, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testReleaseAllPointers() {
         mElement2.mIsModifier = true;
         mQueue.add(mElement1);
@@ -177,6 +190,7 @@
         assertEquals(eventTime + 4, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testReleaseAllPointersOlderThanFirst() {
         mElement2.mIsModifier = true;
         mQueue.add(mElement1);
@@ -194,6 +208,7 @@
         assertEquals(Element.NOT_HAPPENED, mElement3.mPhantomUpEventTime);
     }
 
+    @Test
     public void testReleaseAllPointersOlderThanLast() {
         mElement2.mIsModifier = true;
         mQueue.add(mElement1);
@@ -213,6 +228,7 @@
         assertEquals(Element.NOT_HAPPENED, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testReleaseAllPointersOlderThanWithoutModifierMiddle() {
         mQueue.add(mElement1);
         mQueue.add(mElement2);
@@ -231,6 +247,7 @@
         assertEquals(Element.NOT_HAPPENED, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testReleaseAllPointersOlderThanWithoutModifierLast() {
         mQueue.add(mElement1);
         mQueue.add(mElement2);
@@ -249,6 +266,7 @@
         assertEquals(Element.NOT_HAPPENED, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testReleaseAllPointersExcept() {
         mElement2.mIsModifier = true;
         mQueue.add(mElement1);
@@ -268,6 +286,7 @@
         assertEquals(eventTime + 3, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testHasModifierKeyOlderThan() {
         Element.sPhantomUpCount = 0;
         assertFalse("hasModifierKeyOlderThan empty", mQueue.hasModifierKeyOlderThan(mElement1));
@@ -297,6 +316,7 @@
         assertEquals(Element.NOT_HAPPENED, mElement4.mPhantomUpEventTime);
     }
 
+    @Test
     public void testIsAnyInDraggingFinger() {
         Element.sPhantomUpCount = 0;
         assertFalse(mQueue.isAnyInDraggingFinger());
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/SmoothingUtilsTests.java b/tests/src/com/android/inputmethod/keyboard/internal/SmoothingUtilsTests.java
index 293741a..6bf98d4 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/SmoothingUtilsTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/SmoothingUtilsTests.java
@@ -16,16 +16,24 @@
 
 package com.android.inputmethod.keyboard.internal;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import com.android.inputmethod.keyboard.internal.MatrixUtils.MatrixOperationFailedException;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 @SmallTest
-public class SmoothingUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SmoothingUtilsTests {
     // "run tests" -c com.android.inputmethod.keyboard.internal.SmoothingUtilsTests
     private static final boolean DEBUG = false;
 
+    @Test
     public void testGet3DParamaters() {
         final float[] xs = new float[] {0, 1, 2, 3, 4};
         final float[] ys = new float[] {1, 4, 15, 40, 85}; // y = x^3 + x^2 + x + 1
@@ -36,7 +44,7 @@
                 MatrixUtils.dump("3d", retval);
             }
             for (int i = 0; i < 4; ++i) {
-                MatrixUtilsTests.assertEqualsFloat(retval[i][0], 1.0f, 0.001f);
+                assertEquals(retval[i][0], 1.0f, 0.001f);
             }
         } catch (MatrixOperationFailedException e) {
             assertTrue(false);
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
index e96c934..2954273 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
@@ -16,8 +16,14 @@
 
 package com.android.inputmethod.latin;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.LargeTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.text.TextUtils;
 import android.util.Pair;
 
@@ -38,27 +44,31 @@
 import java.util.Locale;
 import java.util.Random;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @LargeTest
-public class BinaryDictionaryTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class BinaryDictionaryTests {
     private static final String TEST_DICT_FILE_EXTENSION = ".testDict";
     private static final String TEST_LOCALE = "test";
     private static final String DICTIONARY_ID = "TestBinaryDictionary";
 
     private HashSet<File> mDictFilesToBeDeleted = new HashSet<>();
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void setUp() throws Exception {
         mDictFilesToBeDeleted.clear();
     }
 
-    @Override
-    protected void tearDown() throws Exception {
+    @After
+    public void tearDown() throws Exception {
         for (final File dictFile : mDictFilesToBeDeleted) {
             dictFile.delete();
         }
         mDictFilesToBeDeleted.clear();
-        super.tearDown();
     }
 
     private File createEmptyDictionaryAndGetFile(final int formatVersion) {
@@ -82,7 +92,7 @@
     private File createEmptyVer4DictionaryAndGetFile(final int formatVersion,
             final HashMap<String, String> attributeMap) throws IOException {
         final File file = File.createTempFile(DICTIONARY_ID, TEST_DICT_FILE_EXTENSION,
-                getContext().getCacheDir());
+                InstrumentationRegistry.getTargetContext().getCacheDir());
         file.delete();
         file.mkdir();
         if (BinaryDictionaryUtils.createEmptyDictFile(file.getAbsolutePath(), formatVersion,
@@ -106,6 +116,7 @@
                 Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
     }
 
+    @Test
     public void testIsValidDictionary() {
         final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
         BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
@@ -121,6 +132,7 @@
         binaryDictionary.close();
     }
 
+    @Test
     public void testConstructingDictionaryOnMemory() {
         final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
         FileUtils.deleteRecursively(dictFile);
@@ -142,6 +154,7 @@
         binaryDictionary.close();
     }
 
+    @Test
     public void testAddTooLongWord() {
         final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final StringBuffer stringBuilder = new StringBuffer();
@@ -209,6 +222,7 @@
                 new NgramContext(new WordInfo(word1), new WordInfo(word0)), word2);
     }
 
+    @Test
     public void testAddUnigramWord() {
         final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final int probability = 100;
@@ -236,6 +250,7 @@
         assertEquals(updatedProbability, binaryDictionary.getFrequency("aaa"));
     }
 
+    @Test
     public void testRandomlyAddUnigramWord() {
         final int wordCount = 1000;
         final int codePointSetSize = 50;
@@ -258,6 +273,7 @@
         }
     }
 
+    @Test
     public void testAddBigramWords() {
         final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
 
@@ -311,6 +327,7 @@
                 getBigramProbability(binaryDictionary, "abcde", "fghij"));
     }
 
+    @Test
     public void testRandomlyAddBigramWords() {
         final int wordCount = 100;
         final int bigramCount = 1000;
@@ -357,6 +374,7 @@
         }
     }
 
+    @Test
     public void testAddTrigramWords() {
         final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final int unigramProbability = 100;
@@ -383,6 +401,7 @@
                 getTrigramProbability(binaryDictionary, "bcc", "abb", "aaa"));
     }
 
+    @Test
     public void testFlushDictionary() {
         final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
         BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
@@ -417,6 +436,7 @@
         binaryDictionary.close();
     }
 
+    @Test
     public void testFlushWithGCDictionary() {
         final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
         BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
@@ -447,6 +467,7 @@
         binaryDictionary.close();
     }
 
+    @Test
     public void testAddBigramWordsAndFlashWithGC() {
         final int wordCount = 100;
         final int bigramCount = 1000;
@@ -499,6 +520,7 @@
         }
     }
 
+    @Test
     public void testRandomOperationsAndFlashWithGC() {
         final int maxUnigramCount = 5000;
         final int maxBigramCount = 10000;
@@ -593,6 +615,7 @@
         }
     }
 
+    @Test
     public void testAddManyUnigramsAndFlushWithGC() {
         final int flashWithGCIterationCount = 3;
         final int codePointSetSize = 50;
@@ -628,6 +651,7 @@
         }
     }
 
+    @Test
     public void testUnigramAndBigramCount() {
         final int maxUnigramCount = 5000;
         final int maxBigramCount = 10000;
@@ -684,6 +708,7 @@
         }
     }
 
+    @Test
     public void testGetWordProperties() {
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
@@ -769,6 +794,7 @@
         }
     }
 
+    @Test
     public void testIterateAllWords() {
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
@@ -852,6 +878,7 @@
         assertTrue(bigramSet.isEmpty());
     }
 
+    @Test
     public void testPossiblyOffensiveAttributeMaintained() {
         final BinaryDictionary binaryDictionary =
                 getEmptyBinaryDictionary(FormatSpec.VERSION403);
@@ -860,6 +887,7 @@
         assertEquals(true, wordProperty.mIsPossiblyOffensive);
     }
 
+    @Test
     public void testBeginningOfSentence() {
         final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final int dummyProbability = 0;
diff --git a/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java b/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java
index f987e0c..1cc289a 100644
--- a/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java
+++ b/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java
@@ -16,6 +16,10 @@
 
 package com.android.inputmethod.latin;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.Cursor;
@@ -23,34 +27,38 @@
 import android.net.Uri;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
-import android.test.AndroidTestCase;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.test.RenamingDelegatingContext;
 import android.test.mock.MockContentProvider;
 import android.test.mock.MockContentResolver;
-import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.latin.ContactsDictionaryConstants;
 import com.android.inputmethod.latin.ContactsManager;
 
-import org.junit.Before;
-import org.junit.Test;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.concurrent.TimeUnit;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Tests for {@link ContactsManager}
  */
 @SmallTest
-public class ContactsManagerTest extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class ContactsManagerTest {
 
     private ContactsManager mManager;
     private FakeContactsContentProvider mFakeContactsContentProvider;
     private MatrixCursor mMatrixCursor;
 
+    private final static float EPSILON = 0.00001f;
+
     @Before
-    @Override
     public void setUp() throws Exception {
         // Fake content provider
         mFakeContactsContentProvider = new FakeContactsContentProvider();
@@ -59,7 +67,8 @@
         final MockContentResolver contentResolver = new MockContentResolver();
         contentResolver.addProvider(ContactsContract.AUTHORITY, mFakeContactsContentProvider);
         // Add the fake content resolver to a fake context.
-        final ContextWithMockContentResolver context = new ContextWithMockContentResolver(mContext);
+        final ContextWithMockContentResolver context =
+                new ContextWithMockContentResolver(InstrumentationRegistry.getTargetContext());
         context.setContentResolver(contentResolver);
 
         mManager = new ContactsManager(context);
@@ -113,9 +122,10 @@
         cursor.moveToFirst();
         ContactsManager.RankedContact contact = new ContactsManager.RankedContact(cursor);
         contact.computeAffinity(1, month_ago);
-        assertEquals(contact.getAffinity(), 1.0f);
+        assertEquals(contact.getAffinity(), 1.0f, EPSILON);
         contact.computeAffinity(2, now);
-        assertEquals(contact.getAffinity(), (2.0f/3.0f + (float)Math.pow(0.5, 3) + 1.0f) / 3);
+        assertEquals(contact.getAffinity(), (2.0f/3.0f + (float)Math.pow(0.5, 3) + 1.0f) / 3,
+                EPSILON);
     }
 
     @Test
diff --git a/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java b/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
index 6b0bbc2..cdb5b8e 100644
--- a/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
+++ b/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
@@ -16,16 +16,26 @@
 
 package com.android.inputmethod.latin;
 
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.util.Locale;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.LargeTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 @LargeTest
-public class DictionaryFacilitatorLruCacheTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class DictionaryFacilitatorLruCacheTests {
+
+    @Test
     public void testGetFacilitator() {
         final DictionaryFacilitatorLruCache cache =
-                new DictionaryFacilitatorLruCache(getContext(), "");
+                new DictionaryFacilitatorLruCache(InstrumentationRegistry.getTargetContext(), "");
 
         final DictionaryFacilitator dictionaryFacilitatorEnUs = cache.get(Locale.US);
         assertNotNull(dictionaryFacilitatorEnUs);
diff --git a/tests/src/com/android/inputmethod/latin/NgramContextTests.java b/tests/src/com/android/inputmethod/latin/NgramContextTests.java
index 0a662db..6fa8a5a 100644
--- a/tests/src/com/android/inputmethod/latin/NgramContextTests.java
+++ b/tests/src/com/android/inputmethod/latin/NgramContextTests.java
@@ -16,15 +16,26 @@
 
 package com.android.inputmethod.latin;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import com.android.inputmethod.latin.NgramContext.WordInfo;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
 import com.android.inputmethod.latin.utils.NgramContextUtils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 @SmallTest
-public class NgramContextTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class NgramContextTests {
+
+    @Test
     public void testConstruct() {
         assertEquals(new NgramContext(new WordInfo("a")), new NgramContext(new WordInfo("a")));
         assertEquals(new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO),
@@ -35,6 +46,7 @@
                 new NgramContext(WordInfo.EMPTY_WORD_INFO));
     }
 
+    @Test
     public void testIsBeginningOfSentenceContext() {
         assertFalse(new NgramContext().isBeginningOfSentenceContext());
         assertTrue(new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO)
@@ -52,6 +64,7 @@
                 .isBeginningOfSentenceContext());
     }
 
+    @Test
     public void testGetNextNgramContext() {
         final NgramContext ngramContext_a = new NgramContext(new WordInfo("a"));
         final NgramContext ngramContext_b_a =
@@ -67,6 +80,7 @@
         assertEquals("c", ngramContext_c_bos.getNthPrevWord(1));
     }
 
+    @Test
     public void testExtractPrevWordsContextTest() {
         final NgramContext ngramContext_bos =
                 new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
@@ -92,6 +106,7 @@
         assertEquals("a", ngramContext_a_empty.extractPrevWordsContext());
     }
 
+    @Test
     public void testExtractPrevWordsContextArray() {
         final NgramContext ngramContext_bos =
                 new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
@@ -123,9 +138,10 @@
         assertEquals("a", ngramContext_a_empty.extractPrevWordsContextArray()[0]);
     }
 
+    @Test
     public void testGetNgramContextFromNthPreviousWord() {
         SpacingAndPunctuations spacingAndPunctuations = new SpacingAndPunctuations(
-                mContext.getResources());
+                InstrumentationRegistry.getTargetContext().getResources());
         assertEquals("<S>", NgramContextUtils.getNgramContextFromNthPreviousWord("",
                 spacingAndPunctuations, 1).extractPrevWordsContext());
         assertEquals("<S> b", NgramContextUtils.getNgramContextFromNthPreviousWord("a. b ",
diff --git a/tests/src/com/android/inputmethod/latin/PersonalDictionaryLookupTest.java b/tests/src/com/android/inputmethod/latin/PersonalDictionaryLookupTest.java
deleted file mode 100644
index c06aded..0000000
--- a/tests/src/com/android/inputmethod/latin/PersonalDictionaryLookupTest.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/*
- * Copyright (C) 2015 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.latin;
-
-import static com.android.inputmethod.latin.PersonalDictionaryLookup.ANY_LOCALE;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-
-import android.annotation.SuppressLint;
-import android.content.ContentResolver;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.UserDictionary;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-
-import com.android.inputmethod.latin.PersonalDictionaryLookup.PersonalDictionaryListener;
-import com.android.inputmethod.latin.utils.ExecutorUtils;
-
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Set;
-
-/**
- * Unit tests for {@link PersonalDictionaryLookup}.
- *
- * Note, this test doesn't mock out the ContentResolver, in order to make sure
- * {@link PersonalDictionaryLookup} works in a real setting.
- */
-@SmallTest
-public class PersonalDictionaryLookupTest extends AndroidTestCase {
-    private static final String TAG = PersonalDictionaryLookupTest.class.getSimpleName();
-
-    private ContentResolver mContentResolver;
-    private HashSet<Uri> mAddedBackup;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mContentResolver = mContext.getContentResolver();
-        mAddedBackup = new HashSet<Uri>();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        // Remove all entries added during this test.
-        for (Uri row : mAddedBackup) {
-            mContentResolver.delete(row, null, null);
-        }
-        mAddedBackup.clear();
-
-        super.tearDown();
-    }
-
-    /**
-     * Adds the given word to the personal dictionary.
-     *
-     * @param word the word to add
-     * @param locale the locale of the word to add
-     * @param frequency the frequency of the word to add
-     * @return the Uri for the given word
-     */
-    @SuppressLint("NewApi")
-    private Uri addWord(final String word, final Locale locale, int frequency, String shortcut) {
-        // Add the given word for the given locale.
-        UserDictionary.Words.addWord(mContext, word, frequency, shortcut, locale);
-        // Obtain an Uri for the given word.
-        Cursor cursor = mContentResolver.query(UserDictionary.Words.CONTENT_URI, null,
-                UserDictionary.Words.WORD + "='" + word + "'", null, null);
-        assertTrue(cursor.moveToFirst());
-        Uri uri = Uri.withAppendedPath(UserDictionary.Words.CONTENT_URI,
-                cursor.getString(cursor.getColumnIndex(UserDictionary.Words._ID)));
-        // Add the row to the backup for later clearing.
-        mAddedBackup.add(uri);
-        return uri;
-    }
-
-    /**
-     * Deletes the entry for the given word from UserDictionary.
-     *
-     * @param uri the Uri for the word as returned by addWord
-     */
-    private void deleteWord(Uri uri) {
-        // Remove the word from the backup so that it's not cleared again later.
-        mAddedBackup.remove(uri);
-        // Remove the word from the personal dictionary.
-        mContentResolver.delete(uri, null, null);
-    }
-
-    private PersonalDictionaryLookup setUpWord(final Locale locale) {
-        // Insert "foo" in the personal dictionary for the given locale.
-        addWord("foo", locale, 17, null);
-
-        // Create the PersonalDictionaryLookup and wait until it's loaded.
-        PersonalDictionaryLookup lookup =
-                new PersonalDictionaryLookup(mContext, ExecutorUtils.SPELLING);
-        lookup.open();
-        return lookup;
-    }
-
-    private PersonalDictionaryLookup setUpShortcut(final Locale locale) {
-        // Insert "shortcut" => "Expansion" in the personal dictionary for the given locale.
-        addWord("Expansion", locale, 17, "shortcut");
-
-        // Create the PersonalDictionaryLookup and wait until it's loaded.
-        PersonalDictionaryLookup lookup =
-                new PersonalDictionaryLookup(mContext, ExecutorUtils.SPELLING);
-        lookup.open();
-        return lookup;
-    }
-
-    private void verifyWordExists(final Set<String> set, final String word) {
-        assertTrue(set.contains(word));
-    }
-
-    private void verifyWordDoesNotExist(final Set<String> set, final String word) {
-        assertFalse(set.contains(word));
-    }
-
-    public void testShortcutKeyMatching() {
-        Log.d(TAG, "testShortcutKeyMatching");
-        PersonalDictionaryLookup lookup = setUpShortcut(Locale.US);
-
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.US));
-        assertNull(lookup.expandShortcut("Shortcut", Locale.US));
-        assertNull(lookup.expandShortcut("SHORTCUT", Locale.US));
-        assertNull(lookup.expandShortcut("shortcu", Locale.US));
-        assertNull(lookup.expandShortcut("shortcutt", Locale.US));
-
-        lookup.close();
-    }
-
-    public void testShortcutMatchesInputCountry() {
-        Log.d(TAG, "testShortcutMatchesInputCountry");
-        PersonalDictionaryLookup lookup = setUpShortcut(Locale.US);
-
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.US), "shortcut");
-        assertTrue(lookup.getShortcutsForLocale(Locale.UK).isEmpty());
-        assertTrue(lookup.getShortcutsForLocale(Locale.ENGLISH).isEmpty());
-        assertTrue(lookup.getShortcutsForLocale(Locale.FRENCH).isEmpty());
-        assertTrue(lookup.getShortcutsForLocale(ANY_LOCALE).isEmpty());
-
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.US));
-        assertNull(lookup.expandShortcut("shortcut", Locale.UK));
-        assertNull(lookup.expandShortcut("shortcut", Locale.ENGLISH));
-        assertNull(lookup.expandShortcut("shortcut", Locale.FRENCH));
-        assertNull(lookup.expandShortcut("shortcut", ANY_LOCALE));
-
-        lookup.close();
-    }
-
-    public void testShortcutMatchesInputLanguage() {
-        Log.d(TAG, "testShortcutMatchesInputLanguage");
-        PersonalDictionaryLookup lookup = setUpShortcut(Locale.ENGLISH);
-
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.US), "shortcut");
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.UK), "shortcut");
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.ENGLISH), "shortcut");
-        assertTrue(lookup.getShortcutsForLocale(Locale.FRENCH).isEmpty());
-        assertTrue(lookup.getShortcutsForLocale(ANY_LOCALE).isEmpty());
-
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.US));
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.UK));
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.ENGLISH));
-        assertNull(lookup.expandShortcut("shortcut", Locale.FRENCH));
-        assertNull(lookup.expandShortcut("shortcut", ANY_LOCALE));
-
-        lookup.close();
-    }
-
-    public void testShortcutMatchesAnyLocale() {
-        PersonalDictionaryLookup lookup = setUpShortcut(PersonalDictionaryLookup.ANY_LOCALE);
-
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.US), "shortcut");
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.UK), "shortcut");
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.ENGLISH), "shortcut");
-        verifyWordExists(lookup.getShortcutsForLocale(Locale.FRENCH), "shortcut");
-        verifyWordExists(lookup.getShortcutsForLocale(ANY_LOCALE), "shortcut");
-
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.US));
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.UK));
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.ENGLISH));
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", Locale.FRENCH));
-        assertEquals("Expansion", lookup.expandShortcut("shortcut", ANY_LOCALE));
-
-        lookup.close();
-    }
-
-    public void testExactLocaleMatch() {
-        Log.d(TAG, "testExactLocaleMatch");
-        PersonalDictionaryLookup lookup = setUpWord(Locale.US);
-
-        verifyWordExists(lookup.getWordsForLocale(Locale.US), "foo");
-        verifyWordDoesNotExist(lookup.getWordsForLocale(Locale.UK), "foo");
-        verifyWordDoesNotExist(lookup.getWordsForLocale(Locale.ENGLISH), "foo");
-        verifyWordDoesNotExist(lookup.getWordsForLocale(Locale.FRENCH), "foo");
-        verifyWordDoesNotExist(lookup.getWordsForLocale(ANY_LOCALE), "foo");
-
-        // Any capitalization variation should match.
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-        assertTrue(lookup.isValidWord("Foo", Locale.US));
-        assertTrue(lookup.isValidWord("FOO", Locale.US));
-        // But similar looking words don't match.
-        assertFalse(lookup.isValidWord("fo", Locale.US));
-        assertFalse(lookup.isValidWord("fop", Locale.US));
-        assertFalse(lookup.isValidWord("fooo", Locale.US));
-        // Other locales, including more general locales won't match.
-        assertFalse(lookup.isValidWord("foo", Locale.ENGLISH));
-        assertFalse(lookup.isValidWord("foo", Locale.UK));
-        assertFalse(lookup.isValidWord("foo", Locale.FRENCH));
-        assertFalse(lookup.isValidWord("foo", ANY_LOCALE));
-
-        lookup.close();
-    }
-
-    public void testSubLocaleMatch() {
-        Log.d(TAG, "testSubLocaleMatch");
-        PersonalDictionaryLookup lookup = setUpWord(Locale.ENGLISH);
-
-        verifyWordExists(lookup.getWordsForLocale(Locale.US), "foo");
-        verifyWordExists(lookup.getWordsForLocale(Locale.UK), "foo");
-        verifyWordExists(lookup.getWordsForLocale(Locale.ENGLISH), "foo");
-        verifyWordDoesNotExist(lookup.getWordsForLocale(Locale.FRENCH), "foo");
-        verifyWordDoesNotExist(lookup.getWordsForLocale(ANY_LOCALE), "foo");
-
-        // Any capitalization variation should match for both en and en_US.
-        assertTrue(lookup.isValidWord("foo", Locale.ENGLISH));
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-        assertTrue(lookup.isValidWord("Foo", Locale.US));
-        assertTrue(lookup.isValidWord("FOO", Locale.US));
-        // But similar looking words don't match.
-        assertFalse(lookup.isValidWord("fo", Locale.US));
-        assertFalse(lookup.isValidWord("fop", Locale.US));
-        assertFalse(lookup.isValidWord("fooo", Locale.US));
-
-        lookup.close();
-    }
-
-    public void testAllLocalesMatch() {
-        Log.d(TAG, "testAllLocalesMatch");
-        PersonalDictionaryLookup lookup = setUpWord(null);
-
-        verifyWordExists(lookup.getWordsForLocale(Locale.US), "foo");
-        verifyWordExists(lookup.getWordsForLocale(Locale.UK), "foo");
-        verifyWordExists(lookup.getWordsForLocale(Locale.ENGLISH), "foo");
-        verifyWordExists(lookup.getWordsForLocale(Locale.FRENCH), "foo");
-        verifyWordExists(lookup.getWordsForLocale(ANY_LOCALE), "foo");
-
-        // Any capitalization variation should match for fr, en and en_US.
-        assertTrue(lookup.isValidWord("foo", ANY_LOCALE));
-        assertTrue(lookup.isValidWord("foo", Locale.FRENCH));
-        assertTrue(lookup.isValidWord("foo", Locale.ENGLISH));
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-        assertTrue(lookup.isValidWord("Foo", Locale.US));
-        assertTrue(lookup.isValidWord("FOO", Locale.US));
-        // But similar looking words don't match.
-        assertFalse(lookup.isValidWord("fo", Locale.US));
-        assertFalse(lookup.isValidWord("fop", Locale.US));
-        assertFalse(lookup.isValidWord("fooo", Locale.US));
-
-        lookup.close();
-    }
-
-    public void testMultipleLocalesMatch() {
-        Log.d(TAG, "testMultipleLocalesMatch");
-
-        // Insert "Foo" as capitalized in the personal dictionary under the en_US and en_CA and fr
-        // locales.
-        addWord("Foo", Locale.US, 17, null);
-        addWord("foO", Locale.CANADA, 17, null);
-        addWord("fOo", Locale.FRENCH, 17, null);
-
-        // Create the PersonalDictionaryLookup and wait until it's loaded.
-        PersonalDictionaryLookup lookup = new PersonalDictionaryLookup(mContext,
-                ExecutorUtils.SPELLING);
-        lookup.open();
-
-        // Both en_CA and en_US match.
-        assertTrue(lookup.isValidWord("foo", Locale.CANADA));
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-        assertTrue(lookup.isValidWord("foo", Locale.FRENCH));
-        // Other locales, including more general locales won't match.
-        assertFalse(lookup.isValidWord("foo", Locale.ENGLISH));
-        assertFalse(lookup.isValidWord("foo", Locale.UK));
-        assertFalse(lookup.isValidWord("foo", ANY_LOCALE));
-
-        lookup.close();
-    }
-
-
-    public void testCaseMatchingForWordsAndShortcuts() {
-        Log.d(TAG, "testCaseMatchingForWordsAndShortcuts");
-        addWord("Foo", Locale.US, 17, "f");
-        addWord("bokabu", Locale.US, 17, "Bu");
-
-        // Create the PersonalDictionaryLookup and wait until it's loaded.
-        PersonalDictionaryLookup lookup = new PersonalDictionaryLookup(mContext,
-                ExecutorUtils.SPELLING);
-        lookup.open();
-
-        // Valid, inspite of capitalization in US but not in other
-        // locales.
-        assertTrue(lookup.isValidWord("Foo", Locale.US));
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-        assertFalse(lookup.isValidWord("Foo", Locale.UK));
-        assertFalse(lookup.isValidWord("foo", Locale.UK));
-
-        // Valid in all forms in US.
-        assertTrue(lookup.isValidWord("bokabu", Locale.US));
-        assertTrue(lookup.isValidWord("BOKABU", Locale.US));
-        assertTrue(lookup.isValidWord("BokaBU", Locale.US));
-
-        // Correct capitalization; sensitive to shortcut casing & locale.
-        assertEquals("Foo", lookup.expandShortcut("f", Locale.US));
-        assertNull(lookup.expandShortcut("f", Locale.UK));
-
-        // Correct capitalization; sensitive to shortcut casing & locale.
-        assertEquals("bokabu", lookup.expandShortcut("Bu", Locale.US));
-        assertNull(lookup.expandShortcut("Bu", Locale.UK));
-        assertNull(lookup.expandShortcut("bu", Locale.US));
-
-        // Verify that raw strings are retained for #getWordsForLocale.
-        verifyWordExists(lookup.getWordsForLocale(Locale.US), "Foo");
-        verifyWordDoesNotExist(lookup.getWordsForLocale(Locale.US), "foo");
-    }
-
-    public void testManageListeners() {
-        Log.d(TAG, "testManageListeners");
-
-        PersonalDictionaryLookup lookup =
-                new PersonalDictionaryLookup(mContext, ExecutorUtils.SPELLING);
-
-        PersonalDictionaryListener listener = mock(PersonalDictionaryListener.class);
-        // Add the same listener a bunch of times. It doesn't make a difference.
-        lookup.addListener(listener);
-        lookup.addListener(listener);
-        lookup.addListener(listener);
-        lookup.notifyListeners();
-
-        verify(listener, times(1)).onUpdate();
-
-        // Remove the same listener a bunch of times. It doesn't make a difference.
-        lookup.removeListener(listener);
-        lookup.removeListener(listener);
-        lookup.removeListener(listener);
-        lookup.notifyListeners();
-
-        verifyNoMoreInteractions(listener);
-    }
-
-    public void testReload() {
-        Log.d(TAG, "testReload");
-
-        // Insert "foo".
-        Uri uri = addWord("foo", Locale.US, 17, null);
-
-        // Create the PersonalDictionaryLookup and wait until it's loaded.
-        PersonalDictionaryLookup lookup =
-                new PersonalDictionaryLookup(mContext, ExecutorUtils.SPELLING);
-        lookup.open();
-
-        // "foo" should match.
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-
-        // "bar" shouldn't match.
-        assertFalse(lookup.isValidWord("bar", Locale.US));
-
-        // Now delete "foo" and add "bar".
-        deleteWord(uri);
-        addWord("bar", Locale.US, 18, null);
-
-        // Wait a little bit before expecting a change. The time we wait should be greater than
-        // PersonalDictionaryLookup.RELOAD_DELAY_MS.
-        try {
-            Thread.sleep(PersonalDictionaryLookup.RELOAD_DELAY_MS + 1000);
-        } catch (InterruptedException e) {
-        }
-
-        // Perform lookups again. Reload should have occured.
-        //
-        // "foo" should not match.
-        assertFalse(lookup.isValidWord("foo", Locale.US));
-
-        // "bar" should match.
-        assertTrue(lookup.isValidWord("bar", Locale.US));
-
-        lookup.close();
-    }
-
-    public void testDictionaryStats() {
-        Log.d(TAG, "testDictionaryStats");
-
-        // Insert "foo" and "bar". Only "foo" has a shortcut.
-        Uri uri = addWord("foo", Locale.GERMANY, 17, "f");
-        addWord("bar", Locale.GERMANY, 17, null);
-
-        // Create the PersonalDictionaryLookup and wait until it's loaded.
-        PersonalDictionaryLookup lookup =
-                new PersonalDictionaryLookup(mContext, ExecutorUtils.SPELLING);
-        lookup.open();
-
-        // "foo" should match.
-        assertTrue(lookup.isValidWord("foo", Locale.GERMANY));
-
-        // "bar" should match.
-        assertTrue(lookup.isValidWord("bar", Locale.GERMANY));
-
-        // "foo" should have a shortcut.
-        assertEquals("foo", lookup.expandShortcut("f", Locale.GERMANY));
-
-        // Now delete "foo".
-        deleteWord(uri);
-
-        // Wait a little bit before expecting a change. The time we wait should be greater than
-        // PersonalDictionaryLookup.RELOAD_DELAY_MS.
-        try {
-            Thread.sleep(PersonalDictionaryLookup.RELOAD_DELAY_MS + 1000);
-        } catch (InterruptedException e) {
-        }
-
-        // Perform lookups again. Reload should have occured.
-        //
-        // "foo" should not match.
-        assertFalse(lookup.isValidWord("foo", Locale.GERMANY));
-
-        // "foo" should not have a shortcut.
-        assertNull(lookup.expandShortcut("f", Locale.GERMANY));
-
-        // "bar" should still match.
-        assertTrue(lookup.isValidWord("bar", Locale.GERMANY));
-
-        lookup.close();
-    }
-
-    public void testClose() {
-        Log.d(TAG, "testClose");
-
-        // Insert "foo".
-        Uri uri = addWord("foo", Locale.US, 17, null);
-
-        // Create the PersonalDictionaryLookup and wait until it's loaded.
-        PersonalDictionaryLookup lookup =
-                new PersonalDictionaryLookup(mContext, ExecutorUtils.SPELLING);
-        lookup.open();
-
-        // "foo" should match.
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-
-        // "bar" shouldn't match.
-        assertFalse(lookup.isValidWord("bar", Locale.US));
-
-        // Now close (prevents further reloads).
-        lookup.close();
-
-        // Now delete "foo" and add "bar".
-        deleteWord(uri);
-        addWord("bar", Locale.US, 18, null);
-
-        // Wait a little bit before expecting a change. The time we wait should be greater than
-        // PersonalDictionaryLookup.RELOAD_DELAY_MS.
-        try {
-            Thread.sleep(PersonalDictionaryLookup.RELOAD_DELAY_MS + 1000);
-        } catch (InterruptedException e) {
-        }
-
-        // Perform lookups again. Reload should not have occurred.
-        //
-        // "foo" should stil match.
-        assertTrue(lookup.isValidWord("foo", Locale.US));
-
-        // "bar" should still not match.
-        assertFalse(lookup.isValidWord("bar", Locale.US));
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java b/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java
index 128f9f7..51a217b 100644
--- a/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java
+++ b/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java
@@ -16,12 +16,16 @@
 
 package com.android.inputmethod.latin;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import android.content.res.Resources;
 import android.inputmethodservice.InputMethodService;
 import android.os.Parcel;
-import android.test.AndroidTestCase;
-import android.test.MoreAsserts;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.text.SpannableString;
 import android.text.TextUtils;
 import android.text.style.SuggestionSpan;
@@ -40,23 +44,27 @@
 
 import java.util.Locale;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class RichInputConnectionAndTextRangeTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class RichInputConnectionAndTextRangeTests {
 
     // The following is meant to be a reasonable default for
     // the "word_separators" resource.
     private SpacingAndPunctuations mSpacingAndPunctuations;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void setUp() throws Exception {
         final RunInLocale<SpacingAndPunctuations> job = new RunInLocale<SpacingAndPunctuations>() {
             @Override
             protected SpacingAndPunctuations job(final Resources res) {
                 return new SpacingAndPunctuations(res);
             }
         };
-        final Resources res = getContext().getResources();
+        final Resources res = InstrumentationRegistry.getTargetContext().getResources();
         mSpacingAndPunctuations = job.runInLocale(res, Locale.ENGLISH);
     }
 
@@ -156,6 +164,7 @@
     /**
      * Test for getting previous word (for bigram suggestions)
      */
+    @Test
     public void testGetPreviousWord() {
         // If one of the following cases breaks, the bigram suggestions won't work.
         assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
@@ -218,6 +227,7 @@
                 "abc 'def", mSpacingAndPunctuations, 2), NgramContext.EMPTY_PREV_WORDS_INFO);
     }
 
+    @Test
     public void testGetWordRangeAtCursor() {
         /**
          * Test logic in getting the word range at the cursor.
@@ -282,6 +292,7 @@
     /**
      * Test logic in getting the word range at the cursor.
      */
+    @Test
     public void testGetSuggestionSpansAtWord() {
         helpTestGetSuggestionSpansAtWord(10);
         helpTestGetSuggestionSpansAtWord(12);
@@ -309,7 +320,7 @@
         r = ic.getWordRangeAtCursor(SPACE, ScriptUtils.SCRIPT_LATIN);
         suggestions = r.getSuggestionSpansAtWord();
         assertEquals(suggestions.length, 1);
-        MoreAsserts.assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
+        assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
 
         // Test the case with 2 suggestion spans in the same place.
         text = new SpannableString("This is a string for test");
@@ -321,8 +332,8 @@
         r = ic.getWordRangeAtCursor(SPACE, ScriptUtils.SCRIPT_LATIN);
         suggestions = r.getSuggestionSpansAtWord();
         assertEquals(suggestions.length, 2);
-        MoreAsserts.assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
-        MoreAsserts.assertEquals(suggestions[1].getSuggestions(), SUGGESTIONS2);
+        assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
+        assertEquals(suggestions[1].getSuggestions(), SUGGESTIONS2);
 
         // Test a case with overlapping spans, 2nd extending past the start of the word
         text = new SpannableString("This is a string for test");
@@ -334,7 +345,7 @@
         r = ic.getWordRangeAtCursor(SPACE, ScriptUtils.SCRIPT_LATIN);
         suggestions = r.getSuggestionSpansAtWord();
         assertEquals(suggestions.length, 1);
-        MoreAsserts.assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
+        assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
 
         // Test a case with overlapping spans, 2nd extending past the end of the word
         text = new SpannableString("This is a string for test");
@@ -346,7 +357,7 @@
         r = ic.getWordRangeAtCursor(SPACE, ScriptUtils.SCRIPT_LATIN);
         suggestions = r.getSuggestionSpansAtWord();
         assertEquals(suggestions.length, 1);
-        MoreAsserts.assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
+        assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
 
         // Test a case with overlapping spans, 2nd extending past both ends of the word
         text = new SpannableString("This is a string for test");
@@ -358,7 +369,7 @@
         r = ic.getWordRangeAtCursor(SPACE, ScriptUtils.SCRIPT_LATIN);
         suggestions = r.getSuggestionSpansAtWord();
         assertEquals(suggestions.length, 1);
-        MoreAsserts.assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
+        assertEquals(suggestions[0].getSuggestions(), SUGGESTIONS1);
 
         // Test a case with overlapping spans, none right on the word
         text = new SpannableString("This is a string for test");
@@ -372,6 +383,7 @@
         assertEquals(suggestions.length, 0);
     }
 
+    @Test
     public void testCursorTouchingWord() {
         final MockInputMethodService ims = new MockInputMethodService();
         final RichInputConnection ic = new RichInputConnection(ims);
diff --git a/tests/src/com/android/inputmethod/latin/RichInputMethodSubtypeTests.java b/tests/src/com/android/inputmethod/latin/RichInputMethodSubtypeTests.java
index af94be6..2b787ea 100644
--- a/tests/src/com/android/inputmethod/latin/RichInputMethodSubtypeTests.java
+++ b/tests/src/com/android/inputmethod/latin/RichInputMethodSubtypeTests.java
@@ -16,12 +16,18 @@
 
 package com.android.inputmethod.latin;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import android.content.Context;
 import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodSubtype;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
@@ -33,8 +39,14 @@
 import java.util.ArrayList;
 import java.util.Locale;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class RichInputMethodSubtypeTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class RichInputMethodSubtypeTests {
     // All input method subtypes of LatinIME.
     private final ArrayList<RichInputMethodSubtype> mSubtypesList = new ArrayList<>();
 
@@ -67,10 +79,9 @@
     RichInputMethodSubtype HI_LATN_DVORAK;
     RichInputMethodSubtype SR_LATN_QWERTY;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        final Context context = getContext();
+    @Before
+    public void setUp() throws Exception {
+        final Context context = InstrumentationRegistry.getTargetContext();
         mRes = context.getResources();
         RichInputMethodManager.init(context);
         mRichImm = RichInputMethodManager.getInstance();
@@ -152,13 +163,13 @@
         }
     }
 
-    @Override
-    protected void tearDown() throws Exception {
+    @After
+    public void tearDown() throws Exception {
         // Restore additional subtypes.
         mRichImm.setAdditionalInputMethodSubtypes(mSavedAddtionalSubtypes);
-        super.tearDown();
     }
 
+    @Test
     public void testAllFullDisplayNameForSpacebar() {
         for (final RichInputMethodSubtype subtype : mSubtypesList) {
             final String subtypeName = SubtypeLocaleUtils
@@ -174,7 +185,8 @@
         }
     }
 
-   public void testAllMiddleDisplayNameForSpacebar() {
+    @Test
+    public void testAllMiddleDisplayNameForSpacebar() {
         for (final RichInputMethodSubtype subtype : mSubtypesList) {
             final String subtypeName = SubtypeLocaleUtils
                     .getSubtypeDisplayNameInSystemLocale(subtype.getRawSubtype());
@@ -293,22 +305,27 @@
         }
     };
 
+    @Test
     public void testPredefinedSubtypesForSpacebarInEnglish() {
         testsPredefinedSubtypesForSpacebar.runInLocale(mRes, Locale.ENGLISH);
     }
 
+    @Test
     public void testAdditionalSubtypeForSpacebarInEnglish() {
         testsAdditionalSubtypesForSpacebar.runInLocale(mRes, Locale.ENGLISH);
     }
 
+    @Test
     public void testPredefinedSubtypesForSpacebarInFrench() {
         testsPredefinedSubtypesForSpacebar.runInLocale(mRes, Locale.FRENCH);
     }
 
+    @Test
     public void testAdditionalSubtypeForSpacebarInFrench() {
         testsAdditionalSubtypesForSpacebar.runInLocale(mRes, Locale.FRENCH);
     }
 
+    @Test
     public void testRichInputMethodSubtypeForNullInputMethodSubtype() {
         RichInputMethodSubtype subtype = RichInputMethodSubtype.getRichInputMethodSubtype(null);
         assertNotNull(subtype);
diff --git a/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java b/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java
index d465ce6..967b17f 100644
--- a/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java
+++ b/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java
@@ -16,16 +16,24 @@
 
 package com.android.inputmethod.latin;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.util.ArrayList;
 import java.util.Locale;
 
 @SmallTest
-public class SuggestedWordsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SuggestedWordsTests {
 
     /**
      * Helper method to create a dummy {@link SuggestedWordInfo} with specifying
@@ -80,30 +88,35 @@
         return returnedWordInfo;
     }
 
+    @Test
     public void testRemoveDupesNoDupes() {
         final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "c");
         assertEquals(-1, SuggestedWordInfo.removeDups("b", infos));
         assertEquals(2, infos.size());
     }
 
+    @Test
     public void testRemoveDupesTypedWordNotDupe() {
         final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "a", "c");
         assertEquals(-1, SuggestedWordInfo.removeDups("b", infos));
         assertEquals(2, infos.size());
     }
 
+    @Test
     public void testRemoveDupesTypedWordOnlyDupe() {
         final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "b", "c");
         assertEquals(1, SuggestedWordInfo.removeDups("b", infos));
         assertEquals(2, infos.size());
     }
 
+    @Test
     public void testRemoveDupesTypedWordNotOnlyDupe() {
         final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "b", "b", "c");
         assertEquals(1, SuggestedWordInfo.removeDups("b", infos));
         assertEquals(2, infos.size());
     }
 
+    @Test
     public void testGetTransformedSuggestedWordInfo() {
         SuggestedWordInfo result = transformWordInfo("word", 0);
         assertEquals(result.mWord, "word");
@@ -119,6 +132,7 @@
         assertEquals(result.mWord, "didn't''");
     }
 
+    @Test
     public void testGetTypedWordInfoOrNull() {
         final String TYPED_WORD = "typed";
         final SuggestedWordInfo TYPED_WORD_INFO = createTypedWordInfo(TYPED_WORD);
diff --git a/tests/src/com/android/inputmethod/latin/WordComposerTests.java b/tests/src/com/android/inputmethod/latin/WordComposerTests.java
index 8ae475f..25e57ee 100644
--- a/tests/src/com/android/inputmethod/latin/WordComposerTests.java
+++ b/tests/src/com/android/inputmethod/latin/WordComposerTests.java
@@ -16,18 +16,29 @@
 
 package com.android.inputmethod.latin;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.common.CoordinateUtils;
 import com.android.inputmethod.latin.common.StringUtils;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Unit tests for WordComposer.
  */
 @SmallTest
-public class WordComposerTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class WordComposerTests {
+
+    @Test
     public void testMoveCursor() {
         final WordComposer wc = new WordComposer();
         // BMP is the Basic Multilingual Plane, as defined by Unicode. This includes
diff --git a/tests/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiverTests.java b/tests/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiverTests.java
index 8328179..aa2a5c2 100644
--- a/tests/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiverTests.java
+++ b/tests/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiverTests.java
@@ -16,40 +16,54 @@
 
 package com.android.inputmethod.latin.accounts;
 
+import static org.junit.Assert.assertEquals;
+
 import android.accounts.AccountManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
-import android.test.AndroidTestCase;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.settings.LocalSettingsConstants;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Tests for {@link AccountsChangedReceiver}.
  */
-public class AccountsChangedReceiverTests extends AndroidTestCase {
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class AccountsChangedReceiverTests {
     private static final String ACCOUNT_1 = "account1@example.com";
     private static final String ACCOUNT_2 = "account2@example.com";
 
     private SharedPreferences mPrefs;
     private String mLastKnownAccount = null;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+
+    @Before
+    public void setUp() throws Exception {
         mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
         // Keep track of the current account so that we restore it when the test finishes.
         mLastKnownAccount = mPrefs.getString(LocalSettingsConstants.PREF_ACCOUNT_NAME, null);
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
+    @After
+    public void tearDown() throws Exception {
         // Restore the account that was present before running the test.
         updateAccountName(mLastKnownAccount);
     }
 
+    @Test
     public void testUnknownIntent() {
         updateAccountName(ACCOUNT_1);
         AccountsChangedReceiver reciever = new AccountsChangedReceiver();
@@ -58,6 +72,7 @@
         assertAccountName(ACCOUNT_1);
     }
 
+    @Test
     public void testAccountRemoved() {
         updateAccountName(ACCOUNT_1);
         AccountsChangedReceiver reciever = new AccountsChangedReceiver() {
@@ -71,6 +86,7 @@
         assertAccountName(null);
     }
 
+    @Test
     public void testAccountRemoved_noAccounts() {
         updateAccountName(ACCOUNT_2);
         AccountsChangedReceiver reciever = new AccountsChangedReceiver() {
@@ -84,6 +100,7 @@
         assertAccountName(null);
     }
 
+    @Test
     public void testAccountNotRemoved() {
         updateAccountName(ACCOUNT_2);
         AccountsChangedReceiver reciever = new AccountsChangedReceiver() {
diff --git a/tests/src/com/android/inputmethod/latin/common/InputPointersTests.java b/tests/src/com/android/inputmethod/latin/common/InputPointersTests.java
index 6b3490d..9ead0ae 100644
--- a/tests/src/com/android/inputmethod/latin/common/InputPointersTests.java
+++ b/tests/src/com/android/inputmethod/latin/common/InputPointersTests.java
@@ -16,15 +16,27 @@
 
 package com.android.inputmethod.latin.common;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 import java.util.Arrays;
 
 @SmallTest
-public class InputPointersTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class InputPointersTests {
     private static final int DEFAULT_CAPACITY = 48;
 
+    @Test
     public void testNewInstance() {
         final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
         assertEquals("new instance size", 0, src.getPointerSize());
@@ -34,6 +46,7 @@
         assertNotNull("new instance times", src.getTimes());
     }
 
+    @Test
     public void testReset() {
         final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
         final int[] xCoordinates = src.getXCoordinates();
@@ -49,6 +62,7 @@
         assertNotSame("times after reset", times, src.getTimes());
     }
 
+    @Test
     public void testAdd() {
         final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
         final int limit = src.getXCoordinates().length * 2 + 10;
@@ -72,6 +86,7 @@
         }
     }
 
+    @Test
     public void testAddAt() {
         final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
         final int limit = 1000, step = 100;
@@ -95,6 +110,7 @@
         }
     }
 
+    @Test
     public void testSet() {
         final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
         final int limit = src.getXCoordinates().length * 2 + 10;
@@ -114,6 +130,7 @@
         assertSame("times after set", dst.getTimes(), src.getTimes());
     }
 
+    @Test
     public void testCopy() {
         final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
         final int limit = 100;
@@ -142,6 +159,7 @@
                 dst.getTimes(), 0, src.getTimes(), 0, size);
     }
 
+    @Test
     public void testAppend() {
         final int dstLength = 50;
         final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
@@ -211,6 +229,7 @@
                 srcTimes.getPrimitiveArray(), startPos, dst.getTimes(), dstLength, srcLength);
     }
 
+    @Test
     public void testAppendResizableIntArray() {
         final int dstLength = 50;
         final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
@@ -296,6 +315,7 @@
         }
     }
 
+    @Test
     public void testShift() {
         final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
         final int limit = 100;
diff --git a/tests/src/com/android/inputmethod/latin/common/ResizableIntArrayTests.java b/tests/src/com/android/inputmethod/latin/common/ResizableIntArrayTests.java
index bd1629f..d9b6bad 100644
--- a/tests/src/com/android/inputmethod/latin/common/ResizableIntArrayTests.java
+++ b/tests/src/com/android/inputmethod/latin/common/ResizableIntArrayTests.java
@@ -16,15 +16,27 @@
 
 package com.android.inputmethod.latin.common;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import java.util.Arrays;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class ResizableIntArrayTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class ResizableIntArrayTests {
     private static final int DEFAULT_CAPACITY = 48;
 
+    @Test
     public void testNewInstance() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         final int[] array = src.getPrimitiveArray();
@@ -33,6 +45,7 @@
         assertEquals("new instance array length", DEFAULT_CAPACITY, array.length);
     }
 
+    @Test
     public void testAdd() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         final int[] array = src.getPrimitiveArray();
@@ -62,6 +75,7 @@
         }
     }
 
+    @Test
     public void testAddAt() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         final int limit = DEFAULT_CAPACITY * 10, step = DEFAULT_CAPACITY * 2;
@@ -76,6 +90,7 @@
         }
     }
 
+    @Test
     public void testGet() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         try {
@@ -105,6 +120,7 @@
         }
     }
 
+    @Test
     public void testReset() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         final int[] array = src.getPrimitiveArray();
@@ -136,6 +152,7 @@
         }
     }
 
+    @Test
     public void testSetLength() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         final int[] array = src.getPrimitiveArray();
@@ -172,6 +189,7 @@
         }
     }
 
+    @Test
     public void testSet() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         final int limit = DEFAULT_CAPACITY * 2 + 10;
@@ -186,6 +204,7 @@
         assertSame("array after set", dst.getPrimitiveArray(), src.getPrimitiveArray());
     }
 
+    @Test
     public void testCopy() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         for (int i = 0; i < DEFAULT_CAPACITY; i++) {
@@ -214,6 +233,7 @@
                 dst.getPrimitiveArray(), 0, src.getPrimitiveArray(), 0, dst.getLength());
     }
 
+    @Test
     public void testAppend() {
         final int srcLength = DEFAULT_CAPACITY;
         final ResizableIntArray src = new ResizableIntArray(srcLength);
@@ -264,6 +284,7 @@
                 srcLength);
     }
 
+    @Test
     public void testFill() {
         final int srcLength = DEFAULT_CAPACITY;
         final ResizableIntArray src = new ResizableIntArray(srcLength);
@@ -359,6 +380,7 @@
         }
     }
 
+    @Test
     public void testShift() {
         final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
         final int limit = DEFAULT_CAPACITY * 10;
diff --git a/tests/src/com/android/inputmethod/latin/common/StringUtilsTests.java b/tests/src/com/android/inputmethod/latin/common/StringUtilsTests.java
index ec9d4be..393efe6 100644
--- a/tests/src/com/android/inputmethod/latin/common/StringUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/common/StringUtilsTests.java
@@ -16,13 +16,21 @@
 
 package com.android.inputmethod.latin.common;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import java.util.Locale;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class StringUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class StringUtilsTests {
     private static final Locale US = Locale.US;
     private static final Locale GERMAN = Locale.GERMAN;
     private static final Locale TURKEY = new Locale("tr", "TR");
@@ -34,6 +42,7 @@
                 StringUtils.toTitleCaseOfKeyLabel(lowerCase, locale));
     }
 
+    @Test
     public void test_toTitleCaseOfKeyLabel() {
         assert_toTitleCaseOfKeyLabel(US, null, null);
         assert_toTitleCaseOfKeyLabel(US, "", "");
@@ -116,6 +125,7 @@
                 StringUtils.toTitleCaseOfKeyCode(lowerCase, locale));
     }
 
+    @Test
     public void test_toTitleCaseOfKeyCode() {
         assert_toTitleCaseOfKeyCode(US, Constants.CODE_ENTER, Constants.CODE_ENTER);
         assert_toTitleCaseOfKeyCode(US, Constants.CODE_SPACE, Constants.CODE_SPACE);
@@ -148,6 +158,7 @@
                 StringUtils.capitalizeFirstCodePoint(text, locale));
     }
 
+    @Test
     public void test_capitalizeFirstCodePoint() {
         assert_capitalizeFirstCodePoint(US, "", "");
         assert_capitalizeFirstCodePoint(US, "a", "A");
@@ -167,6 +178,7 @@
                 StringUtils.capitalizeFirstAndDowncaseRest(text, locale));
     }
 
+    @Test
     public void test_capitalizeFirstAndDowncaseRest() {
         assert_capitalizeFirstAndDowncaseRest(US, "", "");
         assert_capitalizeFirstAndDowncaseRest(US, "a", "A");
@@ -185,6 +197,7 @@
         assert_capitalizeFirstAndDowncaseRest(GREECE, "ΆΝΕΣΗ", "Άνεση");
     }
 
+    @Test
     public void testContainsInArray() {
         assertFalse("empty array", StringUtils.containsInArray("key", new String[0]));
         assertFalse("not in 1 element", StringUtils.containsInArray("key", new String[] {
@@ -202,6 +215,7 @@
         }));
     }
 
+    @Test
     public void testContainsInCommaSplittableText() {
         assertFalse("null", StringUtils.containsInCommaSplittableText("key", null));
         assertFalse("empty", StringUtils.containsInCommaSplittableText("key", ""));
@@ -214,6 +228,7 @@
         assertTrue("in 2 elements", StringUtils.containsInCommaSplittableText("key", "key1,key"));
     }
 
+    @Test
     public void testRemoveFromCommaSplittableTextIfExists() {
         assertEquals("null", "", StringUtils.removeFromCommaSplittableTextIfExists("key", null));
         assertEquals("empty", "", StringUtils.removeFromCommaSplittableTextIfExists("key", ""));
@@ -239,7 +254,7 @@
                         "key", "key1,key,key3,key,key5"));
     }
 
-
+    @Test
     public void testCapitalizeFirstCodePoint() {
         assertEquals("SSaa",
                 StringUtils.capitalizeFirstCodePoint("ßaa", Locale.GERMAN));
@@ -259,6 +274,7 @@
                 StringUtils.capitalizeFirstCodePoint("A", Locale.ENGLISH));
     }
 
+    @Test
     public void testCapitalizeFirstAndDowncaseRest() {
         assertEquals("SSaa",
                 StringUtils.capitalizeFirstAndDowncaseRest("ßaa", Locale.GERMAN));
@@ -278,6 +294,7 @@
                 StringUtils.capitalizeFirstAndDowncaseRest("A", Locale.ENGLISH));
     }
 
+    @Test
     public void testGetCapitalizationType() {
         assertEquals(StringUtils.CAPITALIZE_NONE,
                 StringUtils.getCapitalizationType("capitalize"));
@@ -301,6 +318,7 @@
                 StringUtils.getCapitalizationType(""));
     }
 
+    @Test
     public void testIsIdenticalAfterUpcaseIsIdenticalAfterDowncase() {
         assertFalse(StringUtils.isIdenticalAfterUpcase("capitalize"));
         assertTrue(StringUtils.isIdenticalAfterDowncase("capitalize"));
@@ -337,6 +355,7 @@
             StringUtils.toSortedCodePointArray(" \n.!?*()&");
     private static final int[] WORD_SEPARATORS = StringUtils.toSortedCodePointArray(" \n.!?*,();&");
 
+    @Test
     public void testCapitalizeEachWord() {
         checkCapitalize("", "", SPACE, Locale.ENGLISH);
         checkCapitalize("test", "Test", SPACE, Locale.ENGLISH);
@@ -367,6 +386,7 @@
                 WORD_SEPARATORS, Locale.ENGLISH);
     }
 
+    @Test
     public void testLooksLikeURL() {
         assertTrue(StringUtils.lastPartLooksLikeURL("http://www.google."));
         assertFalse(StringUtils.lastPartLooksLikeURL("word wo"));
@@ -389,6 +409,7 @@
         assertTrue(StringUtils.lastPartLooksLikeURL(".abc/def"));
     }
 
+    @Test
     public void testHexStringUtils() {
         final byte[] bytes = new byte[] { (byte)0x01, (byte)0x11, (byte)0x22, (byte)0x33,
                 (byte)0x55, (byte)0x88, (byte)0xEE };
@@ -401,6 +422,7 @@
         assertTrue(bytesStr.equals(bytesStr2));
     }
 
+    @Test
     public void testToCodePointArray() {
         final String STR_WITH_SUPPLEMENTARY_CHAR = "abcde\uD861\uDED7fgh\u0000\u2002\u2003\u3000xx";
         final int[] EXPECTED_RESULT = new int[] { 'a', 'b', 'c', 'd', 'e', 0x286D7, 'f', 'g', 'h',
@@ -414,6 +436,7 @@
         }
     }
 
+    @Test
     public void testCopyCodePointsAndReturnCodePointCount() {
         final String STR_WITH_SUPPLEMENTARY_CHAR = "AbcDE\uD861\uDED7fGh\u0000\u2002\u3000あx";
         final int[] EXPECTED_RESULT = new int[] { 'A', 'b', 'c', 'D', 'E', 0x286D7,
@@ -465,6 +488,7 @@
                 exceptionHappened);
     }
 
+    @Test
     public void testGetTrailingSingleQuotesCount() {
         assertEquals(0, StringUtils.getTrailingSingleQuotesCount(""));
         assertEquals(1, StringUtils.getTrailingSingleQuotesCount("'"));
diff --git a/tests/src/com/android/inputmethod/latin/common/UnicodeSurrogateTests.java b/tests/src/com/android/inputmethod/latin/common/UnicodeSurrogateTests.java
index 59bb082..43fdeec 100644
--- a/tests/src/com/android/inputmethod/latin/common/UnicodeSurrogateTests.java
+++ b/tests/src/com/android/inputmethod/latin/common/UnicodeSurrogateTests.java
@@ -16,18 +16,28 @@
 
 package com.android.inputmethod.latin.common;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 @SmallTest
-public class UnicodeSurrogateTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class UnicodeSurrogateTests {
 
+    @Test
     public void testIsLowSurrogate() {
         assertFalse(UnicodeSurrogate.isLowSurrogate('\uD7FF'));
         assertTrue(UnicodeSurrogate.isLowSurrogate('\uD83D'));
         assertFalse(UnicodeSurrogate.isLowSurrogate('\uDC00'));
     }
 
+    @Test
     public void testIsHighSurrogate() {
         assertFalse(UnicodeSurrogate.isHighSurrogate('\uDBFF'));
         assertTrue(UnicodeSurrogate.isHighSurrogate('\uDE25'));
diff --git a/tests/src/com/android/inputmethod/latin/network/BlockingHttpClientTests.java b/tests/src/com/android/inputmethod/latin/network/BlockingHttpClientTests.java
index 8f24cdb..bdbbaf2 100644
--- a/tests/src/com/android/inputmethod/latin/network/BlockingHttpClientTests.java
+++ b/tests/src/com/android/inputmethod/latin/network/BlockingHttpClientTests.java
@@ -16,13 +16,16 @@
 
 package com.android.inputmethod.latin.network;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.network.BlockingHttpClient.ResponseProcessor;
 
@@ -40,19 +43,24 @@
 import java.util.Arrays;
 import java.util.Random;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Tests for {@link BlockingHttpClient}.
  */
 @SmallTest
-public class BlockingHttpClientTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class BlockingHttpClientTests {
     @Mock HttpURLConnection mMockHttpConnection;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
     }
 
+    @Test
     public void testError_badGateway() throws IOException, AuthException {
         when(mMockHttpConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_BAD_GATEWAY);
         final BlockingHttpClient client = new BlockingHttpClient(mMockHttpConnection);
@@ -67,6 +75,7 @@
         }
     }
 
+    @Test
     public void testError_clientTimeout() throws Exception {
         when(mMockHttpConnection.getResponseCode()).thenReturn(
                 HttpURLConnection.HTTP_CLIENT_TIMEOUT);
@@ -82,6 +91,7 @@
         }
     }
 
+    @Test
     public void testError_forbiddenWithRequest() throws Exception {
         final OutputStream mockOutputStream = Mockito.mock(OutputStream.class);
         when(mMockHttpConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_FORBIDDEN);
@@ -98,6 +108,7 @@
         verify(mockOutputStream).write(any(byte[].class), eq(0), eq(100));
     }
 
+    @Test
     public void testSuccess_emptyRequest() throws Exception {
         final Random rand = new Random();
         byte[] response = new byte[100];
@@ -112,6 +123,7 @@
         assertTrue("ResponseProcessor was not invoked", processor.mInvoked);
     }
 
+    @Test
     public void testSuccess() throws Exception {
         final OutputStream mockOutputStream = Mockito.mock(OutputStream.class);
         final Random rand = new Random();
diff --git a/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java b/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
index 5b3e78e..fce812e 100644
--- a/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
+++ b/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
@@ -20,25 +20,28 @@
 import static com.android.inputmethod.latin.network.HttpUrlConnectionBuilder.MODE_DOWNLOAD_ONLY;
 import static com.android.inputmethod.latin.network.HttpUrlConnectionBuilder.MODE_UPLOAD_ONLY;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 /**
  * Tests for {@link HttpUrlConnectionBuilder}.
  */
 @SmallTest
-public class HttpUrlConnectionBuilderTests extends AndroidTestCase {
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
+@RunWith(AndroidJUnit4.class)
+public class HttpUrlConnectionBuilderTests {
+    @Test
     public void testSetUrl_malformed() {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         try {
@@ -49,6 +52,7 @@
         }
     }
 
+    @Test
     public void testSetConnectTimeout_invalid() {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         try {
@@ -59,6 +63,7 @@
         }
     }
 
+    @Test
     public void testSetConnectTimeout() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("https://www.example.com");
@@ -67,6 +72,7 @@
         assertEquals(8765, connection.getConnectTimeout());
     }
 
+    @Test
     public void testSetReadTimeout_invalid() {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         try {
@@ -77,6 +83,7 @@
         }
     }
 
+    @Test
     public void testSetReadTimeout() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("https://www.example.com");
@@ -85,6 +92,7 @@
         assertEquals(8765, connection.getReadTimeout());
     }
 
+    @Test
     public void testAddHeader() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("http://www.example.com");
@@ -93,6 +101,7 @@
         assertEquals("some-random-value", connection.getRequestProperty("some-random-key"));
     }
 
+    @Test
     public void testSetUseCache_notSet() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("http://www.example.com");
@@ -100,6 +109,7 @@
         assertFalse(connection.getUseCaches());
     }
 
+    @Test
     public void testSetUseCache_false() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("http://www.example.com");
@@ -108,6 +118,7 @@
         assertFalse(connection.getUseCaches());
     }
 
+    @Test
     public void testSetUseCache_true() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("http://www.example.com");
@@ -116,6 +127,7 @@
         assertTrue(connection.getUseCaches());
     }
 
+    @Test
     public void testSetMode_uploadOnly() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("http://www.example.com");
@@ -125,6 +137,7 @@
         assertFalse(connection.getDoOutput());
     }
 
+    @Test
     public void testSetMode_downloadOnly() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("https://www.example.com");
@@ -134,6 +147,7 @@
         assertTrue(connection.getDoOutput());
     }
 
+    @Test
     public void testSetMode_bidirectional() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("https://www.example.com");
@@ -143,6 +157,7 @@
         assertTrue(connection.getDoOutput());
     }
 
+    @Test
     public void testSetAuthToken() throws IOException {
         HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
         builder.setUrl("https://www.example.com");
diff --git a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
index 559f286..8f786d5 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
@@ -16,8 +16,12 @@
 
 package com.android.inputmethod.latin.personalization;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.LargeTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.util.Log;
 
 import com.android.inputmethod.latin.ExpandableBinaryDictionary;
@@ -27,17 +31,27 @@
 import java.util.Locale;
 import java.util.Random;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Unit tests for UserHistoryDictionary
  */
 @LargeTest
-public class UserHistoryDictionaryTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class UserHistoryDictionaryTests {
     private static final String TAG = UserHistoryDictionaryTests.class.getSimpleName();
     private static final int WAIT_FOR_WRITING_FILE_IN_MILLISECONDS = 3000;
     private static final String TEST_ACCOUNT = "account@example.com";
 
     private int mCurrentTime = 0;
 
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+
     private static void printAllFiles(final File dir) {
         Log.d(TAG, dir.getAbsolutePath());
         for (final File file : dir.listFiles()) {
@@ -62,20 +76,18 @@
         assertTrue("Following dictionary file doesn't exist: " + dictFile, dictFile.exists());
     }
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void setUp() throws Exception {
         resetCurrentTimeForTestMode();
         UserHistoryDictionaryTestsHelper.removeAllTestDictFiles(
-                UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, mContext);
+                UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, getContext());
     }
 
-    @Override
-    protected void tearDown() throws Exception {
+    @After
+    public void tearDown() throws Exception {
         UserHistoryDictionaryTestsHelper.removeAllTestDictFiles(
-                UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, mContext);
+                UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, getContext());
         stopTestModeInNativeCode();
-        super.tearDown();
     }
 
     private void resetCurrentTimeForTestMode() {
@@ -111,7 +123,7 @@
                 null /* dictFile */,
                 testAccount /* account */);
         final File dictFile = ExpandableBinaryDictionary.getDictFile(
-                mContext, dictName, null /* dictFile */);
+                getContext(), dictName, null /* dictFile */);
         final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
                 getContext(), dummyLocale, testAccount);
         clearHistory(dict);
@@ -123,18 +135,22 @@
         assertDictionaryExists(dict, dictFile);
     }
 
+    @Test
     public void testRandomWords_NullAccount() {
         doTestRandomWords(null /* testAccount */);
     }
 
+    @Test
     public void testRandomWords() {
         doTestRandomWords(TEST_ACCOUNT);
     }
 
+    @Test
     public void testStressTestForSwitchingLanguagesAndAddingWords() {
         doTestStressTestForSwitchingLanguagesAndAddingWords(TEST_ACCOUNT);
     }
 
+    @Test
     public void testStressTestForSwitchingLanguagesAndAddingWords_NullAccount() {
         doTestStressTestForSwitchingLanguagesAndAddingWords(null /* testAccount */);
     }
@@ -158,7 +174,7 @@
                         UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */,
                         testAccount /* account */);
                 dictFiles[i] = ExpandableBinaryDictionary.getDictFile(
-                        mContext, dictName, null /* dictFile */);
+                        getContext(), dictName, null /* dictFile */);
                 dicts[i] = PersonalizationHelper.getUserHistoryDictionary(getContext(),
                         dummyLocale, testAccount);
                 clearHistory(dicts[i]);
@@ -186,10 +202,12 @@
         }
     }
 
+    @Test
     public void testAddManyWords() {
         doTestAddManyWords(TEST_ACCOUNT);
     }
 
+    @Test
     public void testAddManyWords_NullAccount() {
         doTestAddManyWords(null /* testAccount */);
     }
@@ -200,7 +218,7 @@
         final String dictName = UserHistoryDictionary.getUserHistoryDictName(
                 UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */, testAccount);
         final File dictFile = ExpandableBinaryDictionary.getDictFile(
-                mContext, dictName, null /* dictFile */);
+                getContext(), dictName, null /* dictFile */);
         final int numberOfWords = 10000;
         final Random random = new Random(123456);
         final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
diff --git a/tests/src/com/android/inputmethod/latin/settings/AccountsSettingsFragmentTests.java b/tests/src/com/android/inputmethod/latin/settings/AccountsSettingsFragmentTests.java
index f2d8973..49a9a25 100644
--- a/tests/src/com/android/inputmethod/latin/settings/AccountsSettingsFragmentTests.java
+++ b/tests/src/com/android/inputmethod/latin/settings/AccountsSettingsFragmentTests.java
@@ -16,6 +16,9 @@
 
 package com.android.inputmethod.latin.settings;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.when;
 
@@ -23,13 +26,18 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.MediumTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.view.View;
 import android.widget.ListView;
 
 import com.android.inputmethod.latin.utils.ManagedProfileUtils;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -37,36 +45,41 @@
 import java.util.concurrent.TimeUnit;
 
 @MediumTest
-public class AccountsSettingsFragmentTests
-        extends ActivityInstrumentationTestCase2<TestFragmentActivity> {
+@RunWith(AndroidJUnit4.class)
+public class AccountsSettingsFragmentTests {
     private static final String FRAG_NAME = AccountsSettingsFragment.class.getName();
     private static final long TEST_TIMEOUT_MILLIS = 5000;
 
     @Mock private ManagedProfileUtils mManagedProfileUtils;
 
-    public AccountsSettingsFragmentTests() {
-        super(TestFragmentActivity.class);
+    private TestFragmentActivity mActivity;
+    private TestFragmentActivity getActivity() {
+        return mActivity;
     }
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
+    @Before
+    public void setUp() throws Exception {
         // Initialize the mocks.
         MockitoAnnotations.initMocks(this);
         ManagedProfileUtils.setTestInstance(mManagedProfileUtils);
 
-        Intent intent = new Intent();
-        intent.putExtra(TestFragmentActivity.EXTRA_SHOW_FRAGMENT, FRAG_NAME);
-        setActivityIntent(intent);
+        final Intent intent = new Intent()
+                .setAction(Intent.ACTION_MAIN)
+                .setClass(InstrumentationRegistry.getTargetContext(), TestFragmentActivity.class)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+                .addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
+                .putExtra(TestFragmentActivity.EXTRA_SHOW_FRAGMENT, FRAG_NAME);
+        mActivity = (TestFragmentActivity) InstrumentationRegistry.getInstrumentation()
+                .startActivitySync(intent);
     }
 
-    @Override
+    @After
     public void tearDown() throws Exception {
         ManagedProfileUtils.setTestInstance(null);
-        super.tearDown();
+        mActivity = null;
     }
 
+    @Test
     public void testEmptyAccounts() {
         final AccountsSettingsFragment fragment =
                 (AccountsSettingsFragment) getActivity().mFragment;
@@ -83,6 +96,7 @@
         DialogHolder() {}
     }
 
+    @Test
     public void testMultipleAccounts_noSettingsForManagedProfile() {
         when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(true);
 
@@ -95,6 +109,7 @@
         assertNull(fragment.findPreference(AccountsSettingsFragment.PREF_ACCCOUNT_SWITCHER));
     }
 
+    @Test
     public void testMultipleAccounts_noCurrentAccount() {
         when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(false);
 
@@ -116,6 +131,7 @@
                 dialog.getButton(DialogInterface.BUTTON_POSITIVE).getVisibility());
     }
 
+    @Test
     public void testMultipleAccounts_currentAccount() {
         when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(false);
 
@@ -164,7 +180,7 @@
         } catch (InterruptedException ex) {
             fail();
         }
-        getInstrumentation().waitForIdleSync();
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
         return dialogHolder;
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java b/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java
index ed632db..52ed2ae 100644
--- a/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java
+++ b/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java
@@ -16,9 +16,16 @@
 
 package com.android.inputmethod.latin.settings;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.content.Context;
 import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.SuggestedWords;
 import com.android.inputmethod.latin.common.Constants;
@@ -28,13 +35,22 @@
 
 import java.util.Locale;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class SpacingAndPunctuationsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SpacingAndPunctuationsTests {
     private static final int ARMENIAN_FULL_STOP = '\u0589';
     private static final int ARMENIAN_COMMA = '\u055D';
 
     private int mScreenMetrics;
 
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+
     private boolean isPhone() {
         return Constants.isPhone(mScreenMetrics);
     }
@@ -63,10 +79,8 @@
     private SpacingAndPunctuations CAMBODIA_KHMER;
     private SpacingAndPunctuations LAOS_LAO;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
+    @Before
+    public void setUp() throws Exception {
         mScreenMetrics = Settings.readScreenMetrics(getContext().getResources());
 
         // Language only
@@ -140,6 +154,7 @@
         assertFalse("Tilde",      sp.isWordSeparator('~'));
     }
 
+    @Test
     public void testWordSeparator() {
         testingStandardWordSeparator(ENGLISH);
         testingStandardWordSeparator(FRENCH);
@@ -192,6 +207,7 @@
 
     }
 
+    @Test
     public void testWordConnector() {
         testingStandardWordConnector(ENGLISH);
         testingStandardWordConnector(FRENCH);
@@ -245,6 +261,7 @@
         assertFalse("Question",    sp.isUsuallyPrecededBySpace('?'));
     }
 
+    @Test
     public void testIsUsuallyPrecededBySpace() {
         testingStandardPrecededBySpace(ENGLISH);
         testingCommonPrecededBySpace(FRENCH);
@@ -298,6 +315,7 @@
         assertFalse("Tilde",       sp.isUsuallyFollowedBySpace('~'));
     }
 
+    @Test
     public void testIsUsuallyFollowedBySpace() {
         testingStandardFollowedBySpace(ENGLISH);
         testingStandardFollowedBySpace(FRENCH);
@@ -345,7 +363,8 @@
         assertFalse("Tilde",       sp.isUsuallyFollowedBySpace('~'));
     }
 
-    public void isSentenceSeparator() {
+    @Test
+    public void testIsSentenceSeparator() {
         testingStandardSentenceSeparator(ENGLISH);
         try {
             testingStandardSentenceSeparator(ARMENIA_ARMENIAN);
@@ -357,6 +376,7 @@
         assertFalse(ARMENIA_ARMENIAN.isSentenceSeparator(ARMENIAN_COMMA));
     }
 
+    @Test
     public void testLanguageHasSpace() {
         assertTrue(ENGLISH.mCurrentLanguageHasSpaces);
         assertTrue(FRENCH.mCurrentLanguageHasSpaces);
@@ -369,6 +389,7 @@
         assertTrue(LAO.mCurrentLanguageHasSpaces);
     }
 
+    @Test
     public void testUsesAmericanTypography() {
         assertTrue(ENGLISH.mUsesAmericanTypography);
         assertTrue(UNITED_STATES.mUsesAmericanTypography);
@@ -379,6 +400,7 @@
         assertFalse(SWISS_GERMAN.mUsesAmericanTypography);
     }
 
+    @Test
     public void testUsesGermanRules() {
         assertFalse(ENGLISH.mUsesGermanRules);
         assertFalse(FRENCH.mUsesGermanRules);
@@ -436,6 +458,7 @@
         }
     }
 
+    @Test
     public void testPhonePunctuationSuggestions() {
         if (!isPhone()) {
             return;
@@ -454,6 +477,7 @@
                 PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_HEBREW);
     }
 
+    @Test
     public void testTabletPunctuationSuggestions() {
         if (!isTablet()) {
             return;
diff --git a/tests/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelperTests.java b/tests/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelperTests.java
index f3273a2..b44a929 100644
--- a/tests/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelperTests.java
+++ b/tests/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelperTests.java
@@ -16,13 +16,22 @@
 
 package com.android.inputmethod.latin.suggestions;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static junit.framework.TestCase.assertEquals;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.SuggestedWords;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class SuggestionStripLayoutHelperTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SuggestionStripLayoutHelperTests {
     private static void confirmShowTypedWord(final String message, final int inputType) {
         assertFalse(message, SuggestionStripLayoutHelper.shouldOmitTypedWord(
                 inputType,
@@ -42,6 +51,7 @@
                 true /* shouldShowUiToAcceptTypedWord */));
     }
 
+    @Test
     public void testShouldShowTypedWord() {
         confirmShowTypedWord("no input style",
                 SuggestedWords.INPUT_STYLE_NONE);
@@ -51,7 +61,8 @@
                 SuggestedWords.INPUT_STYLE_RECORRECTION);
     }
 
-    public void testshouldOmitTypedWordWhileTyping() {
+    @Test
+    public void testShouldOmitTypedWordWhileTyping() {
         assertFalse("typing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
                 SuggestedWords.INPUT_STYLE_TYPING,
                 false /* gestureFloatingPreviewTextEnabled */,
@@ -70,7 +81,8 @@
                 true /* shouldShowUiToAcceptTypedWord */));
     }
 
-    public void testshouldOmitTypedWordWhileGesturing() {
+    @Test
+    public void testShouldOmitTypedWordWhileGesturing() {
         assertFalse("gesturing", SuggestionStripLayoutHelper.shouldOmitTypedWord(
                 SuggestedWords.INPUT_STYLE_UPDATE_BATCH,
                 false /* gestureFloatingPreviewTextEnabled */,
@@ -89,7 +101,8 @@
                 true /* shouldShowUiToAcceptTypedWord */));
     }
 
-    public void testshouldOmitTypedWordWhenGestured() {
+    @Test
+    public void testShouldOmitTypedWordWhenGestured() {
         assertFalse("gestured", SuggestionStripLayoutHelper.shouldOmitTypedWord(
                 SuggestedWords.INPUT_STYLE_TAIL_BATCH,
                 false /* gestureFloatingPreviewTextEnabled */,
@@ -115,6 +128,7 @@
     private static final int POSITION_CENTER = 1;
     private static final int POSITION_RIGHT = 2;
 
+    @Test
     public void testGetPositionInSuggestionStrip() {
         assertEquals("1st word without auto correction", POSITION_CENTER,
                 SuggestionStripLayoutHelper.getPositionInSuggestionStrip(
diff --git a/tests/src/com/android/inputmethod/latin/touchinputconsumer/NullGestureConsumerTests.java b/tests/src/com/android/inputmethod/latin/touchinputconsumer/NullGestureConsumerTests.java
index ad6bcc3..d508f36 100644
--- a/tests/src/com/android/inputmethod/latin/touchinputconsumer/NullGestureConsumerTests.java
+++ b/tests/src/com/android/inputmethod/latin/touchinputconsumer/NullGestureConsumerTests.java
@@ -16,18 +16,26 @@
 
 package com.android.inputmethod.latin.touchinputconsumer;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 /**
  * Tests for GestureConsumer.NULL_GESTURE_CONSUMER.
  */
 @SmallTest
-public class NullGestureConsumerTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class NullGestureConsumerTests {
     /**
      * Tests that GestureConsumer.NULL_GESTURE_CONSUMER indicates that it won't consume gesture data
      * and that its methods don't raise exceptions even for invalid data.
      */
+    @Test
     public void testNullGestureConsumer() {
         assertFalse(GestureConsumer.NULL_GESTURE_CONSUMER.willConsume());
         GestureConsumer.NULL_GESTURE_CONSUMER.onInit(null, null);
@@ -40,6 +48,7 @@
     /**
      * Tests that newInstance returns NULL_GESTURE_CONSUMER for invalid input.
      */
+    @Test
     public void testNewInstanceGivesNullGestureConsumerForInvalidInputs() {
         assertSame(GestureConsumer.NULL_GESTURE_CONSUMER,
                 GestureConsumer.newInstance(null, null, null, null));
diff --git a/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java
index 1db8395..ba3951f 100644
--- a/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java
@@ -22,19 +22,28 @@
 import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.IS_ADDITIONAL_SUBTYPE;
 import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
 import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
 import android.os.Build;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
 
 import java.util.Locale;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class AdditionalSubtypeUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class AdditionalSubtypeUtilsTests {
 
     /**
      * Predictable subtype ID for en_US dvorak layout. This is actually a hash code calculated as
@@ -98,10 +107,9 @@
             ",EmojiCapable" +
             ",isAdditionalSubtype";
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        final Context context = getContext();
+    @Before
+    public void setUp() throws Exception {
+        final Context context = InstrumentationRegistry.getTargetContext();
         SubtypeLocaleUtils.init(context);
     }
 
@@ -149,6 +157,7 @@
         assertEquals(SUBTYPE_ID_ZZ_AZERTY, subtype.hashCode());
     }
 
+    @Test
     public void testRestorable() {
         final InputMethodSubtype EN_US_DVORAK =
                 AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
diff --git a/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java b/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java
index c214b5f..f30f666 100644
--- a/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java
@@ -16,12 +16,18 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
+import static org.junit.Assert.assertEquals;
+
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.util.Log;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @MediumTest
-public class AsyncResultHolderTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class AsyncResultHolderTests {
     static final String TAG = AsyncResultHolderTests.class.getSimpleName();
 
     private static final int TIMEOUT_IN_MILLISECONDS = 500;
@@ -44,12 +50,14 @@
         }).start();
     }
 
+    @Test
     public void testGetWithoutSet() {
         final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
         final int resultValue = holder.get(DEFAULT_VALUE, TIMEOUT_IN_MILLISECONDS);
         assertEquals(DEFAULT_VALUE, resultValue);
     }
 
+    @Test
     public void testGetBeforeSet() {
         final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
         setAfterGivenTime(holder, SET_VALUE, TIMEOUT_IN_MILLISECONDS + MARGIN_IN_MILLISECONDS);
@@ -57,6 +65,7 @@
         assertEquals(DEFAULT_VALUE, resultValue);
     }
 
+    @Test
     public void testGetAfterSet() {
         final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
         holder.set(SET_VALUE);
@@ -64,6 +73,7 @@
         assertEquals(SET_VALUE, resultValue);
     }
 
+    @Test
     public void testGetBeforeTimeout() {
         final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
         setAfterGivenTime(holder, SET_VALUE, TIMEOUT_IN_MILLISECONDS - MARGIN_IN_MILLISECONDS);
diff --git a/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
index 9680d85..3a452e4 100644
--- a/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
@@ -16,18 +16,26 @@
 
 package com.android.inputmethod.latin.utils;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.text.TextUtils;
 
 import com.android.inputmethod.latin.common.LocaleUtils;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.util.Locale;
 
 @SmallTest
-public class CapsModeUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class CapsModeUtilsTests {
     private static void onePathForCaps(final CharSequence cs, final int expectedResult,
             final int mask, final SpacingAndPunctuations sp, final boolean hasSpaceBefore) {
         final int oneTimeResult = expectedResult & mask;
@@ -49,6 +57,7 @@
         onePathForCaps(cs, expectedResult, s, sp, hasSpaceBefore);
     }
 
+    @Test
     public void testGetCapsMode() {
         final int c = TextUtils.CAP_MODE_CHARACTERS;
         final int w = TextUtils.CAP_MODE_WORDS;
@@ -59,7 +68,7 @@
                 return new SpacingAndPunctuations(res);
             }
         };
-        final Resources res = getContext().getResources();
+        final Resources res = InstrumentationRegistry.getTargetContext().getResources();
         SpacingAndPunctuations sp = job.runInLocale(res, Locale.ENGLISH);
         allPathsForCaps("", c | w | s, sp, false);
         allPathsForCaps("Word", c, sp, false);
diff --git a/tests/src/com/android/inputmethod/latin/utils/CollectionUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/CollectionUtilsTests.java
index 0cbb02c..96dfa36 100644
--- a/tests/src/com/android/inputmethod/latin/utils/CollectionUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/CollectionUtilsTests.java
@@ -16,11 +16,16 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import com.android.inputmethod.latin.common.CollectionUtils;
 
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -28,15 +33,20 @@
 import java.util.List;
 import java.util.Map;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Tests for {@link CollectionUtils}.
  */
 @SmallTest
-public class CollectionUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class CollectionUtilsTests {
     /**
      * Tests that {@link CollectionUtils#arrayAsList(Object[],int,int)} fails as expected
      * with some invalid inputs.
      */
+    @Test
     public void testArrayAsListFailure() {
         final String[] array = { "0", "1" };
         // Negative start
@@ -66,6 +76,7 @@
      * Tests that {@link CollectionUtils#arrayAsList(Object[],int,int)} gives the expected
      * results for a few valid inputs.
      */
+    @Test
     public void testArrayAsList() {
         final ArrayList<String> empty = new ArrayList<>();
         assertEquals(empty, CollectionUtils.arrayAsList(new String[] {}, 0, 0));
@@ -81,6 +92,7 @@
      * Tests that {@link CollectionUtils#isNullOrEmpty(java.util.Collection)} gives the expected
      * results for a few cases.
      */
+    @Test
     public void testIsNullOrEmpty() {
         assertTrue(CollectionUtils.isNullOrEmpty((List<String>) null));
         assertTrue(CollectionUtils.isNullOrEmpty((Map<String, String>) null));
diff --git a/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java
index 812353c..e24707a 100644
--- a/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java
@@ -16,17 +16,27 @@
 
 package com.android.inputmethod.latin.utils;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.common.LocaleUtils;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
 
 import java.util.Locale;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class DictionaryInfoUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class DictionaryInfoUtilsTests {
+    @Test
     public void testLooksValidForDictionaryInsertion() {
         final RunInLocale<SpacingAndPunctuations> job = new RunInLocale<SpacingAndPunctuations>() {
             @Override
@@ -34,7 +44,7 @@
                 return new SpacingAndPunctuations(res);
             }
         };
-        final Resources res = getContext().getResources();
+        final Resources res = InstrumentationRegistry.getTargetContext().getResources();
         final SpacingAndPunctuations sp = job.runInLocale(res, Locale.ENGLISH);
         assertTrue(DictionaryInfoUtils.looksValidForDictionaryInsertion("aochaueo", sp));
         assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("", sp));
@@ -46,6 +56,7 @@
         assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("!!!", sp));
     }
 
+    @Test
     public void testGetMainDictId() {
         assertEquals("main:en",
                 DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en")));
diff --git a/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java
index 8692305..6118ad8 100644
--- a/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java
@@ -16,24 +16,31 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
+import static org.junit.Assert.assertEquals;
+
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.util.Log;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
  * Unit tests for {@link ExecutorUtils}.
  */
 @MediumTest
-public class ExecutorUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class ExecutorUtilsTests {
     private static final String TAG = ExecutorUtilsTests.class.getSimpleName();
 
     private static final int NUM_OF_TASKS = 10;
     private static final int DELAY_FOR_WAITING_TASKS_MILLISECONDS = 500;
 
+    @Test
     public void testExecute() {
         final ExecutorService executor =
                 ExecutorUtils.getBackgroundExecutor(ExecutorUtils.KEYBOARD);
diff --git a/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java
index df01807..8c004bf 100644
--- a/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java
@@ -17,32 +17,39 @@
 package com.android.inputmethod.latin.utils;
 
 import static com.android.inputmethod.latin.utils.ImportantNoticeUtils.KEY_TIMESTAMP_OF_CONTACTS_NOTICE;
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.text.TextUtils;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.settings.SettingsValues;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
-import java.util.concurrent.TimeUnit;
-
 @MediumTest
-public class ImportantNoticeUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class ImportantNoticeUtilsTests {
 
     private ImportantNoticePreferences mImportantNoticePreferences;
 
     @Mock private SettingsValues mMockSettingsValues;
 
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+
     private static class ImportantNoticePreferences {
         private final SharedPreferences mPref;
 
-        private Integer mVersion;
         private Long mLastTime;
 
         public ImportantNoticePreferences(final Context context) {
@@ -96,21 +103,20 @@
         }
     }
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         mImportantNoticePreferences = new ImportantNoticePreferences(getContext());
         mImportantNoticePreferences.save();
         when(mMockSettingsValues.isPersonalizationEnabled()).thenReturn(true);
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
+    @After
+    public void tearDown() throws Exception {
         mImportantNoticePreferences.restore();
     }
 
+    @Test
     public void testPersonalizationSetting() {
         mImportantNoticePreferences.clear();
 
diff --git a/tests/src/com/android/inputmethod/latin/utils/JsonUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/JsonUtilsTests.java
index 1941120..a9e40a7 100644
--- a/tests/src/com/android/inputmethod/latin/utils/JsonUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/JsonUtilsTests.java
@@ -16,14 +16,21 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import java.util.Arrays;
 import java.util.List;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class JsonUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class JsonUtilsTests {
+    @Test
     public void testJsonUtils() {
         final Object[] objs = new Object[] { 1, "aaa", "bbb", 3 };
         final List<Object> objArray = Arrays.asList(objs);
diff --git a/tests/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtilsTests.java
index e4b6a66..972b783 100644
--- a/tests/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtilsTests.java
@@ -19,10 +19,12 @@
 import static com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils.FORMAT_TYPE_FULL_LOCALE;
 import static com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils.FORMAT_TYPE_LANGUAGE_ONLY;
 import static com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils.FORMAT_TYPE_NONE;
+import static org.junit.Assert.assertEquals;
 
 import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.RichInputMethodManager;
@@ -36,8 +38,13 @@
 
 import javax.annotation.Nonnull;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class LanguageOnSpacebarUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class LanguageOnSpacebarUtilsTests {
     private RichInputMethodManager mRichImm;
 
     RichInputMethodSubtype EN_US_QWERTY;
@@ -50,10 +57,9 @@
     RichInputMethodSubtype IW_HEBREW;
     RichInputMethodSubtype ZZ_QWERTY;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        final Context context = getContext();
+    @Before
+    public void setUp() throws Exception {
+        final Context context = InstrumentationRegistry.getTargetContext();
         RichInputMethodManager.init(context);
         mRichImm = RichInputMethodManager.getInstance();
 
@@ -99,6 +105,7 @@
                 LanguageOnSpacebarUtils.getLanguageOnSpacebarFormatType(subtype));
     }
 
+    @Test
     public void testOneSubtypeImplicitlyEnabled() {
         enableSubtypes(EN_US_QWERTY);
         assertFormatType(EN_US_QWERTY, true, Locale.US,            FORMAT_TYPE_NONE);
@@ -113,6 +120,7 @@
         assertFormatType(FR_CA_QWERTY, true, Locale.CANADA_FRENCH, FORMAT_TYPE_NONE);
     }
 
+    @Test
     public void testOneSubtypeExplicitlyEnabled() {
         enableSubtypes(EN_US_QWERTY);
         assertFormatType(EN_US_QWERTY, false, Locale.UK,     FORMAT_TYPE_LANGUAGE_ONLY);
@@ -131,6 +139,7 @@
         assertFormatType(FR_CA_QWERTY, false, Locale.FRANCE,        FORMAT_TYPE_LANGUAGE_ONLY);
     }
 
+    @Test
     public void testOneSubtypeImplicitlyEnabledWithNoLanguageSubtype() {
         final Locale Locale_IW = new Locale("iw");
         enableSubtypes(IW_HEBREW, ZZ_QWERTY);
@@ -140,6 +149,7 @@
         assertFormatType(ZZ_QWERTY,    true, Locale_IW, FORMAT_TYPE_FULL_LOCALE);
     }
 
+    @Test
     public void testTwoSubtypesExplicitlyEnabled() {
         enableSubtypes(EN_US_QWERTY, FR_AZERTY);
         assertFormatType(EN_US_QWERTY, false, Locale.US,     FORMAT_TYPE_LANGUAGE_ONLY);
@@ -157,6 +167,7 @@
 
     }
 
+    @Test
     public void testMultiSubtypeWithSameLanuageAndSameLayout() {
         // Explicitly enable en_US, en_GB, fr_FR, and no language keyboards.
         enableSubtypes(EN_US_QWERTY, EN_GB_QWERTY, FR_CA_QWERTY, ZZ_QWERTY);
@@ -172,6 +183,7 @@
         assertFormatType(ZZ_QWERTY,    false, Locale.JAPAN, FORMAT_TYPE_FULL_LOCALE);
     }
 
+    @Test
     public void testMultiSubtypesWithSameLanguageButHaveDifferentLayout() {
         enableSubtypes(FR_AZERTY, FR_CA_QWERTY, FR_CH_SWISS, FR_CH_QWERTZ);
 
@@ -191,6 +203,7 @@
         assertFormatType(FR_CH_QWERTZ, false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
     }
 
+    @Test
     public void testMultiSubtypesWithSameLanguageAndMayHaveSameLayout() {
         enableSubtypes(FR_AZERTY, FR_CA_QWERTY, FR_CH_SWISS, FR_CH_QWERTY, FR_CH_QWERTZ);
 
diff --git a/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java b/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
index 9b82683..8224272 100644
--- a/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
@@ -16,17 +16,24 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class RecapitalizeStatusTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class RecapitalizeStatusTests {
     private static final int[] SPACE = { Constants.CODE_SPACE };
 
+    @Test
     public void testTrim() {
         final RecapitalizeStatus status = new RecapitalizeStatus();
         status.start(30, 40, "abcdefghij", Locale.ENGLISH, SPACE);
@@ -54,6 +61,7 @@
         assertEquals(43, status.getNewCursorEnd());
     }
 
+    @Test
     public void testRotate() {
         final RecapitalizeStatus status = new RecapitalizeStatus();
         status.start(29, 40, "abcd efghij", Locale.ENGLISH, SPACE);
diff --git a/tests/src/com/android/inputmethod/latin/utils/ResourceUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/ResourceUtilsTests.java
index 8e764e4..ac05d3c 100644
--- a/tests/src/com/android/inputmethod/latin/utils/ResourceUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/ResourceUtilsTests.java
@@ -16,13 +16,22 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import java.util.HashMap;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class ResourceUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class ResourceUtilsTests {
+    @Test
     public void testFindConstantForKeyValuePairsSimple() {
         final HashMap<String,String> anyKeyValue = new HashMap<>();
         anyKeyValue.put("anyKey", "anyValue");
@@ -69,6 +78,7 @@
         assertNull(ResourceUtils.findConstantForKeyValuePairs(emptyKeyValue, array));
     }
 
+    @Test
     public void testFindConstantForKeyValuePairsCombined() {
         final String HARDWARE_KEY = "HARDWARE";
         final String MODEL_KEY = "MODEL";
@@ -113,6 +123,7 @@
         assertEquals("0.2", ResourceUtils.findConstantForKeyValuePairs(keyValues, failArray));
     }
 
+    @Test
     public void testFindConstantForKeyValuePairsRegexp() {
         final String HARDWARE_KEY = "HARDWARE";
         final String MODEL_KEY = "MODEL";
diff --git a/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java
index 665d81c..9a6b862 100644
--- a/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java
@@ -16,8 +16,13 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.text.style.SuggestionSpan;
 import android.text.style.URLSpan;
 import android.text.SpannableString;
@@ -25,8 +30,18 @@
 import android.text.Spanned;
 import android.text.SpannedString;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class SpannableStringUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SpannableStringUtilsTests {
+
+    private Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+
+    @Test
     public void testConcatWithSuggestionSpansOnly() {
         SpannableStringBuilder s = new SpannableStringBuilder("test string\ntest string\n"
                 + "test string\ntest string\ntest string\ntest string\ntest string\ntest string\n"
@@ -87,6 +102,7 @@
         assertTrue(false);
     }
 
+    @Test
     public void testSplitCharSequenceWithSpan() {
         // text:  " a bcd efg hij  "
         // span1:  ^^^^^^^
@@ -182,6 +198,7 @@
         assertSpanCount(0, charSequencesFromSpanned[6]);
     }
 
+    @Test
     public void testSplitCharSequencePreserveTrailingEmptySegmengs() {
         assertEquals(1, SpannableStringUtils.split("", " ",
                 false /* preserveTrailingEmptySegmengs */).length);
diff --git a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
index 2297cac..8e47f3a 100644
--- a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
@@ -16,10 +16,16 @@
 
 package com.android.inputmethod.latin.utils;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import android.content.Context;
 import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
@@ -30,8 +36,14 @@
 import java.util.ArrayList;
 import java.util.Locale;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
-public class SubtypeLocaleUtilsTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SubtypeLocaleUtilsTests {
     // All input method subtypes of LatinIME.
     private final ArrayList<RichInputMethodSubtype> mSubtypesList = new ArrayList<>();
 
@@ -64,10 +76,9 @@
     InputMethodSubtype HI_LATN_DVORAK; // Hinglis Dvorak
     InputMethodSubtype SR_LATN_QWERTY; // Serbian Latin Qwerty
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        final Context context = getContext();
+    @Before
+    public void setUp() throws Exception {
+        final Context context = InstrumentationRegistry.getTargetContext();
         mRes = context.getResources();
         RichInputMethodManager.init(context);
         mRichImm = RichInputMethodManager.getInstance();
@@ -136,13 +147,13 @@
         }
     }
 
-    @Override
-    protected void tearDown() throws Exception {
+    @After
+    public void tearDown() throws Exception {
         // Restore additional subtypes.
         mRichImm.setAdditionalInputMethodSubtypes(mSavedAddtionalSubtypes);
-        super.tearDown();
     }
 
+    @Test
     public void testAllFullDisplayName() {
         for (final RichInputMethodSubtype subtype : mSubtypesList) {
             final String subtypeName = SubtypeLocaleUtils
@@ -159,6 +170,7 @@
         }
     }
 
+    @Test
     public void testKeyboardLayoutSetName() {
         assertEquals("en_US", "qwerty", SubtypeLocaleUtils.getKeyboardLayoutSetName(EN_US));
         assertEquals("en_GB", "qwerty", SubtypeLocaleUtils.getKeyboardLayoutSetName(EN_GB));
@@ -223,6 +235,7 @@
     //  sr_ZZ qwerty         T  Serbian (QWERTY)        exception
     //  zz    pc             T  Alphabet (PC)
 
+    @Test
     public void testPredefinedSubtypesInEnglishSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
             @Override
@@ -264,6 +277,7 @@
         tests.runInLocale(mRes, Locale.ENGLISH);
     }
 
+    @Test
     public void testAdditionalSubtypesInEnglishSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
             @Override
@@ -323,6 +337,7 @@
     //  sr_ZZ qwerty         T  Serbe (QWERTY)                   exception
     //  zz    pc             T  Alphabet latin (PC)
 
+    @Test
     public void testPredefinedSubtypesInFrenchSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
             @Override
@@ -364,6 +379,7 @@
         tests.runInLocale(mRes, Locale.FRENCH);
     }
 
+    @Test
     public void testAdditionalSubtypesInFrenchSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
             @Override
@@ -405,6 +421,7 @@
     //  hi_ZZ qwerty  F  हिंग्लिश
     //  hi_ZZ dvorak  T  हिंग्लिश (Dvorak)
 
+    @Test
     public void testHinglishSubtypesInHindiSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
             @Override
@@ -432,6 +449,7 @@
     //  sr_ZZ serbian_qwertz F  Српски (латиница)
     //  sr_ZZ qwerty         T  Српски (QWERTY)
 
+    @Test
     public void testSerbianLatinSubtypesInSerbianSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
             @Override
@@ -451,6 +469,7 @@
         tests.runInLocale(mRes, new Locale("sr"));
     }
 
+    @Test
     public void testIsRtlLanguage() {
         // Known Right-to-Left language subtypes.
         final InputMethodSubtype ARABIC = mRichImm
diff --git a/tools/EditTextVariations/Android.mk b/tools/EditTextVariations/Android.mk
new file mode 100644
index 0000000..1f49aa4
--- /dev/null
+++ b/tools/EditTextVariations/Android.mk
@@ -0,0 +1,26 @@
+# 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.
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := EditTextVariations
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/tools/EditTextVariations/AndroidManifest.xml b/tools/EditTextVariations/AndroidManifest.xml
new file mode 100644
index 0000000..7694f4d
--- /dev/null
+++ b/tools/EditTextVariations/AndroidManifest.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 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.
+-->
+
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.inputmethod.tools.edittextvariations"
+    android:versionName="0.67"
+    android:versionCode="67"
+>
+    <supports-screens android:resizeable="true" />
+    <uses-sdk
+        android:targetSdkVersion="27"
+        android:minSdkVersion="11" />
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:allowBackup="false"
+    >
+        <activity
+            android:name=".EditTextVariations"
+            android:windowSoftInputMode="stateHidden|adjustPan"
+            android:theme="@style/defaultActivityTheme"
+            android:label="@string/app_name"
+        >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/tools/EditTextVariations/assets/Theme.css b/tools/EditTextVariations/assets/Theme.css
new file mode 100644
index 0000000..b7aa514
--- /dev/null
+++ b/tools/EditTextVariations/assets/Theme.css
@@ -0,0 +1,56 @@
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+body {
+    background-color: black;
+}
+div.placeholder {
+    color: #a0a0a0;
+    font-size: 18px;
+    margin: 0px 0px -34px 0px;
+    padding: 4px 0px 4px 0px
+}
+div.input {
+    border: none;
+    margin: 4px 0px 4px -8px;
+}
+input {
+    color: black;
+    background-color: white;
+    font-size: 18px;
+    line-height: 200%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: none;
+    border-left: none;
+}
+textarea {
+    color: black;
+    background-color: white;
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: none;
+    border-left: none;
+}
diff --git a/tools/EditTextVariations/assets/Theme_Black.css b/tools/EditTextVariations/assets/Theme_Black.css
new file mode 100644
index 0000000..ce663a1
--- /dev/null
+++ b/tools/EditTextVariations/assets/Theme_Black.css
@@ -0,0 +1,56 @@
+<!--
+/*
+**
+** Copyright 2011, 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.
+*/
+-->
+
+body {
+    background-color: black;
+}
+div.placeholder {
+    color: #a0a0a0;
+    font-size: 18px;
+    margin: 0px 0px -34px 0px;
+    padding: 4px 0px 4px 0px
+}
+div.input {
+    border: none;
+    margin: 4px 0px 4px -8px;
+}
+input {
+    color: black;
+    background-color: white;
+    font-size: 18px;
+    line-height: 200%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: none;
+    border-left: none;
+}
+textarea {
+    color: black;
+    background-color: white;
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: none;
+    border-left: none;
+}
diff --git a/tools/EditTextVariations/assets/Theme_Holo.css b/tools/EditTextVariations/assets/Theme_Holo.css
new file mode 100644
index 0000000..a3afe2e
--- /dev/null
+++ b/tools/EditTextVariations/assets/Theme_Holo.css
@@ -0,0 +1,56 @@
+<!--
+/*
+**
+** Copyright 2011, 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.
+*/
+-->
+
+body {
+    background-color: #16191C;
+}
+div.placeholder {
+    color: #808080;
+    font-size: 18px;
+    margin: 0px 0px -34px 0px;
+    padding: 4px 0px 4px 0px
+}
+div.input {
+    border: none;
+    margin: 4px 0px 4px -8px;
+}
+input {
+    color: white;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 180%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #5E6063;
+    border-left: none;
+}
+textarea {
+    color: white;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #5E6063;
+    border-left: none;
+}
diff --git a/tools/EditTextVariations/assets/Theme_Holo_Light.css b/tools/EditTextVariations/assets/Theme_Holo_Light.css
new file mode 100644
index 0000000..fb3a83c
--- /dev/null
+++ b/tools/EditTextVariations/assets/Theme_Holo_Light.css
@@ -0,0 +1,56 @@
+<!--
+/*
+**
+** Copyright 2011, 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.
+*/
+-->
+
+body {
+    background-color: #F2F2F2;
+}
+div.placeholder {
+    color: #808080;
+    font-size: 18px;
+    margin: 0px 0px -34px 0px;
+    padding: 4px 0px 4px 0px
+}
+div.input {
+    border: none;
+    margin: 4px 0px 4px -8px;
+}
+input {
+    color: black;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #808080;
+    border-left: none;
+}
+textarea {
+    color: black;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #808080;
+    border-left: none;
+}
diff --git a/tools/EditTextVariations/assets/Theme_Light.css b/tools/EditTextVariations/assets/Theme_Light.css
new file mode 100644
index 0000000..4cce0a0
--- /dev/null
+++ b/tools/EditTextVariations/assets/Theme_Light.css
@@ -0,0 +1,56 @@
+<!--
+/*
+**
+** Copyright 2011, 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.
+*/
+-->
+
+body {
+    background-color: #f3f3f3;
+}
+div.placeholder {
+    color: #a0a0a0;
+    font-size: 18px;
+    margin: 0px 0px -34px 0px;
+    padding: 4px 0px 4px 0px
+}
+div.input {
+    border: none;
+    margin: 4px 0px 4px -8px;
+}
+input {
+    color: black;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 200%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: 1px solid #808080;
+    border-right: 1px solid rgba(0, 0, 0, 0.5);
+    border-bottom: 1px solid #808080;
+    border-left: 1px solid rgba(0, 0, 0, 0.5);
+}
+textarea {
+    color: black;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: 1px solid #808080;
+    border-right: 1px solid rgba(0, 0, 0, 0.5);
+    border-bottom: 1px solid #808080;
+    border-left: 1px solid rgba(0, 0, 0, 0.5);
+}
diff --git a/tools/EditTextVariations/assets/Theme_Material.css b/tools/EditTextVariations/assets/Theme_Material.css
new file mode 100644
index 0000000..3581a88
--- /dev/null
+++ b/tools/EditTextVariations/assets/Theme_Material.css
@@ -0,0 +1,56 @@
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+body {
+    background-color: #212121;
+}
+div.placeholder {
+    color: #909090;
+    font-size: 18px;
+    margin: 0px 0px -34px 0px;
+    padding: 4px 0px 4px 0px
+}
+div.input {
+    border: none;
+    margin: 4px 0px 4px -8px;
+}
+input {
+    color: white;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 180%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #757575;
+    border-left: none;
+}
+textarea {
+    color: white;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #757575;
+    border-left: none;
+}
diff --git a/tools/EditTextVariations/assets/Theme_Material_Light.css b/tools/EditTextVariations/assets/Theme_Material_Light.css
new file mode 100644
index 0000000..1a78a2d
--- /dev/null
+++ b/tools/EditTextVariations/assets/Theme_Material_Light.css
@@ -0,0 +1,56 @@
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+body {
+    background-color: #FAFAFA;
+}
+div.placeholder {
+    color: #7D7D7D;
+    font-size: 18px;
+    margin: 0px 0px -34px 0px;
+    padding: 4px 0px 4px 0px
+}
+div.input {
+    border: none;
+    margin: 4px 0px 4px -8px;
+}
+input {
+    color: white;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 180%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #737373;
+    border-left: none;
+}
+textarea {
+    color: white;
+    background-color: rgba(0, 0, 0, 0.0);
+    font-size: 18px;
+    line-height: 150%;
+    vertical-align: center;
+    padding-left: 8px;
+    border-top: none;
+    border-right: none;
+    border-bottom: 1px solid #737373;
+    border-left: none;
+}
diff --git a/tools/EditTextVariations/assets/webview.html b/tools/EditTextVariations/assets/webview.html
new file mode 100644
index 0000000..daf0fdb
--- /dev/null
+++ b/tools/EditTextVariations/assets/webview.html
@@ -0,0 +1,96 @@
+<!--
+/*
+**
+** Copyright 2011, 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.
+*/
+-->
+
+<html>
+    <head>
+        <script type="text/javascript">
+            (function(d, name) {
+                var css = document.createElement('link');
+                css.rel = 'stylesheet';
+                css.href = name + ".css";
+                d.head.appendChild(css);
+            })(document, theme.name());
+        </script>
+    </head>
+    <body>
+    <div
+        class="input"
+        style="margin-top:-8px"
+    >
+        <input
+            type="text"
+            size="80%"
+            name="webtext"
+            placeholder="&lt;input type=&quot;text&quot;/&gt;" />
+    </div>
+    <div class="input">
+        <input
+            type="email"
+            size="80%"
+            name="webemail"
+            placeholder="&lt;input type=&quot;email&quot;/&gt;" />
+    </div>
+    <div class="input">
+        <input
+            type="password"
+            size="80%"
+            name="webpassword"
+            placeholder="&lt;input type=&quot;password&quot;/&gt;" />
+    </div>
+    <div class="input">
+        <input
+            type="url"
+            size="80%"
+            name="weburl"
+            placeholder="&lt;input type=&quot;url&quot;/&gt;" />
+    </div>
+    <div class="input">
+        <input
+            type="number"
+            size="80%"
+            name="webnumber"
+            placeholder="&lt;input type=&quot;number&quot;/&gt;" />
+    </div>
+    <div class="input">
+        <input
+            type="tel"
+            size="80%"
+            name="webtel"
+            placeholder="&lt;input type=&quot;tel&quot;/&gt;" />
+    </div>
+    <div class="input">
+        <input
+            type="search"
+            size="80%"
+            name="websearch"
+            placeholder="&lt;input type=&quot;search&quot;/&gt;" />
+    </div>
+    <div
+        class="input"
+        style="margin-bottom:-4px"
+    >
+        <textarea
+            rows="2"
+            cols="80%"
+            name="webtextarea"
+            placeholder="&lt;textarea&gt;&lt/textarea&gt;"
+        ></textarea>
+    </div>
+  </body>
+</html>
diff --git a/tools/EditTextVariations/res/drawable-hdpi/ic_launcher.png b/tools/EditTextVariations/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..e0923a6
--- /dev/null
+++ b/tools/EditTextVariations/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/tools/EditTextVariations/res/drawable-mdpi/ic_launcher.png b/tools/EditTextVariations/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..9bc0914
--- /dev/null
+++ b/tools/EditTextVariations/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/tools/EditTextVariations/res/drawable-xhdpi/ic_launcher.png b/tools/EditTextVariations/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d60ac3d
--- /dev/null
+++ b/tools/EditTextVariations/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/tools/EditTextVariations/res/drawable-xxhdpi/ic_launcher.png b/tools/EditTextVariations/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..f3069d7
--- /dev/null
+++ b/tools/EditTextVariations/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/tools/EditTextVariations/res/layout/main.xml b/tools/EditTextVariations/res/layout/main.xml
new file mode 100644
index 0000000..99abfb0
--- /dev/null
+++ b/tools/EditTextVariations/res/layout/main.xml
@@ -0,0 +1,298 @@
+<?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.
+*/
+-->
+
+<ScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+>
+    <LinearLayout
+        android:id="@+id/edit_text_list"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+    >
+        <EditText
+            android:id="@+id/text_multi_lines_none"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textMultiLine|textAutoCorrect"
+            android:imeOptions="actionUnspecified" />
+        <EditText
+            android:id="@+id/text_multi_lines_send"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textMultiLine|textAutoCorrect"
+            android:imeOptions="actionSend" />
+        <view
+            class="com.android.inputmethod.tools.edittextvariations.MultiLineShortMessageEditText"
+            android:id="@+id/text_short_message_send_multi_lines"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textShortMessage|textMultiLine|textAutoCorrect|textCapSentences"
+            android:imeOptions="actionSend" />
+        <view
+            class="com.android.inputmethod.tools.edittextvariations.MultiLineShortMessageEditText"
+            android:id="@+id/text_multi_lines_search"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textMultiLine|textAutoCorrect|textCapSentences"
+            android:imeOptions="actionSearch" />
+        <EditText
+            android:id="@+id/text_short_message_send"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textShortMessage|textAutoCorrect|textCapSentences"
+            android:imeOptions="actionSend" />
+        <EditText
+            android:id="@+id/text_autocap_none"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textAutoCorrect|textCapSentences"
+            android:imeOptions="actionNone" />
+        <EditText
+            android:id="@+id/text_autocap_send"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textAutoCorrect|textCapSentences"
+            android:imeOptions="actionSend" />
+        <EditText
+            android:id="@+id/text_uri_go"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textUri"
+            android:imeOptions="actionGo" />
+        <EditText
+            android:id="@+id/text_email_address_done"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textEmailAddress"
+            android:imeOptions="actionDone" />
+        <EditText
+            android:id="@+id/text_auto_correct_search"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textAutoCorrect"
+            android:imeOptions="actionSearch" />
+        <EditText
+            android:id="@+id/text_auto_correct_next"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textAutoCorrect"
+            android:imeOptions="actionNext" />
+        <EditText
+            android:id="@+id/text_auto_correct_previous"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textAutoCorrect" />
+        <EditText
+            android:id="@+id/text_auto_correct_custom"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textAutoCorrect"
+            android:imeActionLabel="@string/custom_action_label"
+            android:imeActionId="100" />
+        <EditText
+            android:id="@+id/phone"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="phone" />
+        <EditText
+            android:id="@+id/phone_no_action"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="phone"
+            android:imeOptions="actionNone" />
+        <EditText
+            android:id="@+id/number_send"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="number"
+            android:imeOptions="actionSend" />
+        <EditText
+            android:id="@+id/number_no_action"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="number"
+            android:imeOptions="actionNone" />
+        <EditText
+            android:id="@+id/text_password_next"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textPassword"
+            android:imeOptions="actionNext" />
+        <EditText
+            android:id="@+id/text_visible_password_done"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textVisiblePassword"
+            android:imeOptions="actionDone" />
+        <EditText
+            android:id="@+id/number_password_send"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="numberPassword"
+            android:imeOptions="actionDone" />
+        <EditText
+            android:id="@+id/text_no_suggestions"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textNoSuggestions"
+            android:imeOptions="actionGo" />
+        <EditText
+            android:id="@+id/text_no_auto_correction"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textShortMessage"
+            android:imeOptions="actionDone" />
+        <WebView
+            android:id="@+id/web_view"
+            android:layout_width="fill_parent"
+            android:layout_height="380sp"
+            android:focusable="true" />
+        <EditText
+            android:id="@+id/text_cap_characters_with_auto_correction"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textCapCharacters|textAutoCorrect" />
+        <EditText
+            android:id="@+id/text_cap_words_with_auto_correction"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textCapWords|textAutoCorrect" />
+        <EditText
+            android:id="@+id/text_cap_sentences_with_auto_correction"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textCapSentences|textAutoCorrect" />
+        <EditText
+            android:id="@+id/text_cap_characters"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textCapCharacters" />
+        <EditText
+            android:id="@+id/text_cap_words"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textCapWords" />
+        <EditText
+            android:id="@+id/text_cap_sentences"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textCapSentences" />
+        <EditText
+            android:id="@+id/text_email_subject"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textEmailSubject" />
+        <EditText
+            android:id="@+id/text_personal_name"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textPersonName" />
+        <EditText
+            android:id="@+id/text_postal_address"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textPostalAddress" />
+        <EditText
+            android:id="@+id/text_phonetic"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textPhonetic" />
+        <EditText
+            android:id="@+id/number_signed"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="numberSigned" />
+        <EditText
+            android:id="@+id/number_decimal"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="numberDecimal" />
+        <EditText
+            android:id="@+id/number_signed_decimal"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="numberSigned|numberDecimal" />
+        <EditText
+            android:id="@+id/date_time"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="datetime" />
+        <EditText
+            android:id="@+id/date"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="date" />
+        <EditText
+            android:id="@+id/time"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="time" />
+        <EditText
+            android:id="@+id/text_no_extract_ui"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="text"
+            android:imeOptions="flagNoExtractUi" />
+        <EditText
+            android:id="@+id/text_no_fullscreen"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textCapSentences"
+            android:imeOptions="flagNoFullscreen" />
+        <EditText
+            android:id="@+id/text_nm"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="text"
+            android:privateImeOptions="nm" />
+        <EditText
+            android:id="@+id/text_force_ascii_flag"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="text" />
+        <AutoCompleteTextView
+            android:id="@+id/text_app_completion"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content" />
+        <AutoCompleteTextView
+            android:id="@+id/text_app_completion_no_fullscreen"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:imeOptions="flagNoFullscreen" />
+        <AutoCompleteTextView
+            android:id="@+id/text_app_compeletion_no_extract_ui"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:imeOptions="flagNoExtractUi" />
+        <EditText
+            android:id="@+id/text_restarting"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="text" />
+        <EditText
+            android:id="@+id/text_null"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:inputType="none" />
+    </LinearLayout>
+</ScrollView>
diff --git a/tools/EditTextVariations/res/values-v11/donottranslate.xml b/tools/EditTextVariations/res/values-v11/donottranslate.xml
new file mode 100644
index 0000000..5b7eb23
--- /dev/null
+++ b/tools/EditTextVariations/res/values-v11/donottranslate.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, 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.
+*/
+-->
+
+<resources>
+    <string name="default_theme">Theme_Holo_Light</string>
+</resources>
diff --git a/tools/EditTextVariations/res/values-v14/themes.xml b/tools/EditTextVariations/res/values-v14/themes.xml
new file mode 100644
index 0000000..22c6016
--- /dev/null
+++ b/tools/EditTextVariations/res/values-v14/themes.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2017, 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.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style name="defaultActivityTheme" parent="@android:style/Theme.DeviceDefault.Light" />
+</resources>
diff --git a/tools/EditTextVariations/res/values-v27/themes.xml b/tools/EditTextVariations/res/values-v27/themes.xml
new file mode 100644
index 0000000..8fd3aae
--- /dev/null
+++ b/tools/EditTextVariations/res/values-v27/themes.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2017, 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.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style name="defaultActivityTheme" parent="@android:style/Theme.DeviceDefault.Light">
+        <item name="android:navigationBarColor">@android:color/white</item>
+        <item name="android:navigationBarDividerColor">#1f000000</item>
+        <item name="android:windowLightNavigationBar">true</item>
+    </style>
+</resources>
diff --git a/tools/EditTextVariations/res/values/countries.xml b/tools/EditTextVariations/res/values/countries.xml
new file mode 100644
index 0000000..6d7e5c1
--- /dev/null
+++ b/tools/EditTextVariations/res/values/countries.xml
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, 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.
+*/
+-->
+
+<resources>
+    <!-- The list of country names. [CHAR LIMIT=100] -->
+    <string-array name="countries_array">
+        <item>Afghanistan</item>
+        <item>Albania</item>
+        <item>Algeria</item>
+        <item>American Samoa</item>
+        <item>Andorra</item>
+        <item>Angola</item>
+        <item>Anguilla</item>
+        <item>Antarctica</item>
+        <item>Antigua and Barbuda</item>
+        <item>Argentina</item>
+        <item>Armenia</item>
+        <item>Aruba</item>
+        <item>Australia</item>
+        <item>Austria</item>
+        <item>Azerbaijan</item>
+        <item>Bahrain</item>
+        <item>Bangladesh</item>
+        <item>Barbados</item>
+        <item>Belarus</item>
+        <item>Belgium</item>
+        <item>Belize</item>
+        <item>Benin</item>
+        <item>Bermuda</item>
+        <item>Bhutan</item>
+        <item>Bolivia</item>
+        <item>Bosnia and Herzegovina</item>
+        <item>Botswana</item>
+        <item>Bouvet Island</item>
+        <item>Brazil</item>
+        <item>British Indian Ocean Territory</item>
+        <item>British Virgin Islands</item>
+        <item>Brunei</item>
+        <item>Bulgaria</item>
+        <item>Burkina Faso</item>
+        <item>Burundi</item>
+        <item>"Cote d'Ivoire"</item>
+        <item>Cambodia</item>
+        <item>Cameroon</item>
+        <item>Canada</item>
+        <item>Cape Verde</item>
+        <item>Cayman Islands</item>
+        <item>Central African Republic</item>
+        <item>Chad</item>
+        <item>Chile</item>
+        <item>China</item>
+        <item>Christmas Island</item>
+        <item>Cocos (Keeling) Islands</item>
+        <item>Colombia</item>
+        <item>Comoros</item>
+        <item>Congo</item>
+        <item>Cook Islands</item>
+        <item>Costa Rica</item>
+        <item>Croatia</item>
+        <item>Cuba</item>
+        <item>Cyprus</item>
+        <item>Czech Republic</item>
+        <item>Democratic Republic of the Congo</item>
+        <item>Denmark</item>
+        <item>Djibouti</item>
+        <item>Dominica</item>
+        <item>Dominican Republic</item>
+        <item>East Timor</item>
+        <item>Ecuador</item>
+        <item>Egypt</item>
+        <item>El Salvador</item>
+        <item>Equatorial Guinea</item>
+        <item>Eritrea</item>
+        <item>Estonia</item>
+        <item>Ethiopia</item>
+        <item>Faeroe Islands</item>
+        <item>Falkland Islands</item>
+        <item>Fiji</item>
+        <item>Finland</item>
+        <item>Republic of Macedonia</item>
+        <item>France</item>
+        <item>French Guiana</item>
+        <item>French Polynesia</item>
+        <item>French Southern Territories</item>
+        <item>Gabon</item>
+        <item>Georgia</item>
+        <item>Germany</item>
+        <item>Ghana</item>
+        <item>Gibraltar</item>
+        <item>Greece</item>
+        <item>Greenland</item>
+        <item>Grenada</item>
+        <item>Guadeloupe</item>
+        <item>Guam</item>
+        <item>Guatemala</item>
+        <item>Guinea</item>
+        <item>Guinea-Bissau</item>
+        <item>Guyana</item>
+        <item>Haiti</item>
+        <item>Heard Island and McDonald Islands</item>
+        <item>Honduras</item>
+        <item>Hong Kong</item>
+        <item>Hungary</item>
+        <item>Iceland</item>
+        <item>India</item>
+        <item>Indonesia</item>
+        <item>Iran</item>
+        <item>Iraq</item>
+        <item>Ireland</item>
+        <item>Israel</item>
+        <item>Italy</item>
+        <item>Jamaica</item>
+        <item>Japan</item>
+        <item>Jordan</item>
+        <item>Kazakhstan</item>
+        <item>Kenya</item>
+        <item>Kiribati</item>
+        <item>Kuwait</item>
+        <item>Kyrgyzstan</item>
+        <item>Laos</item>
+        <item>Latvia</item>
+        <item>Lebanon</item>
+        <item>Lesotho</item>
+        <item>Liberia</item>
+        <item>Libya</item>
+        <item>Liechtenstein</item>
+        <item>Lithuania</item>
+        <item>Luxembourg</item>
+        <item>Macau</item>
+        <item>Madagascar</item>
+        <item>Malawi</item>
+        <item>Malaysia</item>
+        <item>Maldives</item>
+        <item>Mali</item>
+        <item>Malta</item>
+        <item>Marshall Islands</item>
+        <item>Martinique</item>
+        <item>Mauritania</item>
+        <item>Mauritius</item>
+        <item>Mayotte</item>
+        <item>Mexico</item>
+        <item>Micronesia</item>
+        <item>Moldova</item>
+        <item>Monaco</item>
+        <item>Mongolia</item>
+        <item>Montserrat</item>
+        <item>Morocco</item>
+        <item>Mozambique</item>
+        <item>Myanmar</item>
+        <item>Namibia</item>
+        <item>Nauru</item>
+        <item>Nepal</item>
+        <item>Netherlands</item>
+        <item>Netherlands Antilles</item>
+        <item>New Caledonia</item>
+        <item>New Zealand</item>
+        <item>Nicaragua</item>
+        <item>Niger</item>
+        <item>Nigeria</item>
+        <item>Niue</item>
+        <item>Norfolk Island</item>
+        <item>North Korea</item>
+        <item>Northern Marianas</item>
+        <item>Norway</item>
+        <item>Oman</item>
+        <item>Pakistan</item>
+        <item>Palau</item>
+        <item>Panama</item>
+        <item>Papua New Guinea</item>
+        <item>Paraguay</item>
+        <item>Peru</item>
+        <item>Philippines</item>
+        <item>Pitcairn Islands</item>
+        <item>Poland</item>
+        <item>Portugal</item>
+        <item>Puerto Rico</item>
+        <item>Qatar</item>
+        <item>Reunion</item>
+        <item>Romania</item>
+        <item>Russia</item>
+        <item>Rwanda</item>
+        <item>Sao Tome and Principe</item>
+        <item>Saint Helena</item>
+        <item>Saint Kitts and Nevis</item>
+        <item>Saint Lucia</item>
+        <item>Saint Pierre and Miquelon</item>
+        <item>Saint Vincent and the Grenadines</item>
+        <item>Samoa</item>
+        <item>San Marino</item>
+        <item>Saudi Arabia</item>
+        <item>Senegal</item>
+        <item>Seychelles</item>
+        <item>Sierra Leone</item>
+        <item>Singapore</item>
+        <item>Slovakia</item>
+        <item>Slovenia</item>
+        <item>Solomon Islands</item>
+        <item>Somalia</item>
+        <item>South Africa</item>
+        <item>South Georgia and the South Sandwich Islands</item>
+        <item>South Korea</item>
+        <item>Spain</item>
+        <item>Sri Lanka</item>
+        <item>Sudan</item>
+        <item>Suriname</item>
+        <item>Svalbard and Jan Mayen</item>
+        <item>Swaziland</item>
+        <item>Sweden</item>
+        <item>Switzerland</item>
+        <item>Syria</item>
+        <item>Taiwan</item>
+        <item>Tajikistan</item>
+        <item>Tanzania</item>
+        <item>Thailand</item>
+        <item>The Bahamas</item>
+        <item>The Gambia</item>
+        <item>Togo</item>
+        <item>Tokelau</item>
+        <item>Tonga</item>
+        <item>Trinidad and Tobago</item>
+        <item>Tunisia</item>
+        <item>Turkey</item>
+        <item>Turkmenistan</item>
+        <item>Turks and Caicos Islands</item>
+        <item>Tuvalu</item>
+        <item>Virgin Islands</item>
+        <item>Uganda</item>
+        <item>Ukraine</item>
+        <item>United Arab Emirates</item>
+        <item>United Kingdom</item>
+        <item>United States</item>
+        <item>United States Minor Outlying Islands</item>
+        <item>Uruguay</item>
+        <item>Uzbekistan</item>
+        <item>Vanuatu</item>
+        <item>Vatican City</item>
+        <item>Venezuela</item>
+        <item>Vietnam</item>
+        <item>Wallis and Futuna</item>
+        <item>Western Sahara</item>
+        <item>Yemen</item>
+        <item>Zambia</item>
+        <item>Zimbabwe</item>
+        <item>Yemen</item>
+    </string-array>
+</resources>
diff --git a/tools/EditTextVariations/res/values/strings.xml b/tools/EditTextVariations/res/values/strings.xml
new file mode 100644
index 0000000..02387f2
--- /dev/null
+++ b/tools/EditTextVariations/res/values/strings.xml
@@ -0,0 +1,38 @@
+<?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.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- This test application name. -->
+    <string name="app_name" translatable="false">EditTextVariations</string>
+    <!-- The menu title to change color theme of this application. [CHAR LIMIT=20] -->
+    <string name="menu_change_theme">Change Theme</string>
+    <!-- The menu title to display the version name of this application. [CHAR LIMIT=20] -->
+    <string name="menu_version">Version <xliff:g id="VERSION_NAME" example="0.56">%s</xliff:g></string>
+    <!-- The menu title to turn on the text field focus navigation. [CHAR LIMIT=20] -->
+    <string name="menu_navigate_on" translatable="false">Navigate On</string>
+    <!-- The menu title to turn off the text field focus navigation. [CHAR LIMIT=20] -->
+    <string name="menu_navigate_off" translatable="false">Navigate Off</string>
+    <!-- The menu title to show software keyboard when the application is launched. [CHAR LIMIT=20] -->
+    <string name="menu_softinput_visible" translatable="false">Keyboard Visible</string>
+    <!-- The menu title to stay hidden software keyboard when the application is launched. [CHAR LIMIT=20] -->
+    <string name="menu_softinput_hidden" translatable="false">Keyboard Hidden</string>
+    <!-- The example of custom action key label. Must be short to fit on key. 5 chars or less is preferable.  [CHAR LIMIT=7] -->
+    <string name="custom_action_label">Custom</string>
+</resources>
diff --git a/tools/EditTextVariations/res/values/themes.xml b/tools/EditTextVariations/res/values/themes.xml
new file mode 100644
index 0000000..036a711
--- /dev/null
+++ b/tools/EditTextVariations/res/values/themes.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2017, 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.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style name="defaultActivityTheme" parent="@android:style/Theme.Holo" />
+</resources>
diff --git a/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EchoingTextWatcher.java b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EchoingTextWatcher.java
new file mode 100644
index 0000000..1c652c2
--- /dev/null
+++ b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EchoingTextWatcher.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2012 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.tools.edittextvariations;
+
+import android.annotation.SuppressLint;
+import android.os.Handler;
+import android.os.Message;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.widget.EditText;
+
+import java.util.Locale;
+
+final class EchoingTextWatcher implements TextWatcher {
+    private static final int SET_TEXT_DELAY = 500;
+
+    final EditText mEditText;
+    CharSequence mExpected;
+
+    @SuppressLint("HandlerLeak")
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(final Message msg) {
+            final String toBeappended = (String) msg.obj;
+            final CharSequence current = mEditText.getText();
+            final CharSequence newText = TextUtils.concat(current, toBeappended);
+            mExpected = newText;
+            mEditText.setText(newText);
+            mEditText.setSelection(newText.length());
+        }
+    };
+
+    @SuppressWarnings("unused")
+    public static void attachTo(final EditText editText) {
+        final EchoingTextWatcher watcher = new EchoingTextWatcher(editText);
+    }
+
+    public EchoingTextWatcher(final EditText editText) {
+        mEditText = editText;
+        editText.addTextChangedListener(this);
+    }
+
+    @Override
+    public void afterTextChanged(final Editable ss) {
+    }
+
+    @Override
+    public void beforeTextChanged(final CharSequence s, final int start, final int count,
+            final int after) {
+    }
+
+    @Override
+    public void onTextChanged(final CharSequence s, final int start, final int before,
+            final int count) {
+        if (count == 0 || before > 0 || TextUtils.equals(s, mExpected)) {
+            return;
+        }
+        final int len = s.length();
+        if (len > 0) {
+            final String last = s.subSequence(len - 1, len).toString();
+            final char lastChar = last.charAt(0);
+            if (Character.isUpperCase(lastChar)) {
+                final String lowerCase = last.toLowerCase(Locale.getDefault());
+                mHandler.sendMessageDelayed(mHandler.obtainMessage(0, lowerCase), SET_TEXT_DELAY);
+            } else if (Character.isLowerCase(lastChar)) {
+                final String upperCase = last.toUpperCase(Locale.getDefault());
+                mHandler.sendMessageDelayed(mHandler.obtainMessage(0, upperCase), SET_TEXT_DELAY);
+            }
+        }
+    }
+}
diff --git a/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EditTextVariations.java b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EditTextVariations.java
new file mode 100644
index 0000000..44e0a4d
--- /dev/null
+++ b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/EditTextVariations.java
@@ -0,0 +1,473 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.tools.edittextvariations;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.Build;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.text.InputType;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.webkit.JavascriptInterface;
+import android.webkit.WebView;
+import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public final class EditTextVariations extends Activity implements TextView.OnEditorActionListener,
+        DialogInterface.OnClickListener {
+    private static final String TAG = EditTextVariations.class.getSimpleName();
+    private static final boolean DEBUG_INPUT_TEXT = false;
+
+    private static final int MENU_CHANGE_THEME = 0;
+    private static final int MENU_VERSION = 1;
+    private static final int MENU_NAVIGATE_ON = 2;
+    private static final int MENU_NAVIGATE_OFF = 3;
+    private static final int MENU_SOFTINPUT_VISIBLE = 4;
+    private static final int MENU_SOFTINPUT_HIDDEN = 5;
+    private static final String PREF_THEME = "theme";
+    private static final String PREF_NAVIGATE = "navigate";
+    private static final String PREF_SOFTINPUT = "softinput";
+
+    private SharedPreferences prefs;
+    private View[] fields;
+
+    private static final FinalClassField<Integer> ApplicationInfo_FLAG_SUPPORTS_RTL =
+            FinalClassField.newInstance(ApplicationInfo.class, "FLAG_SUPPORTS_RTL", 1 << 22);
+
+    // This flag should be defined IceCreamSandwich and later.
+    // Note that Froyo and Gingerbread have hidden IME_FLAG_NO_FULLSCREEN as
+    // value 0x80000000.
+    private static final FinalClassField<Integer> EditorInfo_IME_FLAG_FORCE_ASCII =
+            FinalClassField.newInstance(EditorInfo.class, "IME_FLAG_FORCE_ASCII",
+                    Build.VERSION.SDK_INT >= /* ICE_CREAM_SANDWICH */14 ? 0x80000000 : 0);
+
+    private ArrayAdapter<String> mAutoCompleteAdapter;
+
+    /** Called when the activity is first created. */
+    @SuppressLint("SetJavaScriptEnabled")
+    @Override
+    public void onCreate(final Bundle savedInstanceState) {
+        getApplicationInfo().flags |= ApplicationInfo_FLAG_SUPPORTS_RTL.value;
+        prefs = PreferenceManager.getDefaultSharedPreferences(this);
+        loadTheme();
+        loadSoftInputMode();
+
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main);
+
+        final String[] countries = getResources().getStringArray(R.array.countries_array);
+        mAutoCompleteAdapter = new ArrayAdapter<>(
+                this, android.R.layout.simple_dropdown_item_1line, countries);
+
+        final boolean navigateMode = getNavigateMode();
+        final ViewGroup vg = (ViewGroup) findViewById(R.id.edit_text_list);
+        final int n = vg.getChildCount();
+        fields = new View[n];
+        for (int i = 0; i < n; i++) {
+            final View v = vg.getChildAt(i);
+            if (v instanceof EditText) {
+                final int id = v.getId();
+                final EditText e = (EditText) v;
+                int inputType = e.getInputType();
+                int imeOptions = e.getImeOptions();
+                if (id == R.id.text_auto_correct_previous) {
+                    imeOptions &= ~EditorInfo.IME_MASK_ACTION;
+                    imeOptions |= EditorInfo.IME_ACTION_PREVIOUS;
+                }
+                if (id == R.id.text_force_ascii_flag) {
+                    imeOptions |= EditorInfo_IME_FLAG_FORCE_ASCII.value;
+                }
+                if (id == R.id.text_null) {
+                    inputType = InputType.TYPE_NULL;
+                }
+                if (id == R.id.text_restarting) {
+                    EchoingTextWatcher.attachTo(e);
+                }
+                if (navigateMode && i > 0) {
+                    imeOptions |= EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS;
+                }
+                if (navigateMode && i < n - 1) {
+                    imeOptions |= EditorInfo.IME_FLAG_NAVIGATE_NEXT;
+                }
+
+                e.setInputType(inputType);
+                e.setImeOptions(imeOptions);
+                setupHintText(e);
+                if (navigateMode) {
+                    e.setOnEditorActionListener(this);
+                }
+            }
+            if (v instanceof AutoCompleteTextView) {
+                final AutoCompleteTextView e = (AutoCompleteTextView) v;
+                e.setAdapter(mAutoCompleteAdapter);
+                e.setThreshold(1);
+            }
+            if (v instanceof WebView) {
+                final WebView wv = (WebView) v;
+                wv.getSettings().setJavaScriptEnabled(true);
+                wv.addJavascriptInterface(new Object() {
+                    @JavascriptInterface
+                    public String name() {
+                        return getThemeName();
+                    }
+                }, "theme");
+                wv.loadUrl("file:///android_asset/webview.html");
+            }
+            fields[i] = v;
+        }
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(final Menu menu) {
+        super.onCreateOptionsMenu(menu);
+
+        menu.add(Menu.NONE, MENU_NAVIGATE_ON, 0, getString(R.string.menu_navigate_on));
+        menu.add(Menu.NONE, MENU_NAVIGATE_OFF, 1, getString(R.string.menu_navigate_off));
+        menu.add(Menu.NONE, MENU_SOFTINPUT_VISIBLE, 2, getString(R.string.menu_softinput_visible));
+        menu.add(Menu.NONE, MENU_SOFTINPUT_HIDDEN, 3, getString(R.string.menu_softinput_hidden));
+        menu.add(Menu.NONE, MENU_CHANGE_THEME, 4, R.string.menu_change_theme);
+        try {
+            final PackageInfo pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
+            menu.add(Menu.NONE, MENU_VERSION, 5,
+                    getString(R.string.menu_version, pinfo.versionName))
+                    .setEnabled(false);
+        } catch (NameNotFoundException e) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(final MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == MENU_CHANGE_THEME) {
+            final List<CharSequence> items = new ArrayList<>();
+            for (final ThemeItem theme : ThemeItem.THEME_LIST) {
+                items.add(theme.name);
+            }
+            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+            builder.setTitle(R.string.menu_change_theme);
+            builder.setCancelable(true);
+            builder.setNegativeButton(android.R.string.cancel, null);
+            builder.setItems(items.toArray(new CharSequence[items.size()]), this);
+            builder.show();
+        } else if (itemId == MENU_NAVIGATE_ON || itemId == MENU_NAVIGATE_OFF) {
+            saveNavigateMode(itemId == MENU_NAVIGATE_ON);
+            restartActivity();
+        } else if (itemId == MENU_SOFTINPUT_VISIBLE || itemId == MENU_SOFTINPUT_HIDDEN) {
+            saveSoftInputMode(itemId == MENU_SOFTINPUT_VISIBLE);
+            restartActivity();
+        }
+        return true;
+    }
+
+    @Override
+    public void onClick(final DialogInterface dialog, final int which) {
+        saveTheme(ThemeItem.THEME_LIST.get(which));
+        restartActivity();
+    }
+
+    private void restartActivity() {
+        final Intent intent = getIntent();
+        finish();
+        startActivity(intent);
+    }
+
+    private static void setupHintText(final EditText e) {
+        final int imeOptions = e.getImeOptions();
+        String hint = (e instanceof MultiLineShortMessageEditText) ? "*" : "";
+        hint += inputTypeToString(e.getInputType());
+        String text;
+        if (e.getImeActionLabel() != null) {
+            text = "actionLabel<" + e.getImeActionLabel() + ":" + e.getImeActionId() + ">";
+        } else {
+            text = actionName(imeOptions & EditorInfo.IME_MASK_ACTION);
+        }
+        text = appendFlagText(text,
+                (imeOptions & EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0, "flagNoExtractUi");
+        text = appendFlagText(text,
+                (imeOptions & EditorInfo.IME_FLAG_NO_FULLSCREEN) != 0, "flagNoFullscreen");
+        text = appendFlagText(text,
+                (imeOptions & EditorInfo_IME_FLAG_FORCE_ASCII.value) != 0, "flagForceAscii");
+        text = appendFlagText(text,
+                (imeOptions & EditorInfo.IME_FLAG_NAVIGATE_NEXT) != 0, ">");
+        text = appendFlagText(text,
+                (imeOptions & EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS) != 0, "<");
+        if (text.length() > 0)
+            hint += " " + text;
+        final String privateOptions = e.getPrivateImeOptions();
+        if (!TextUtils.isEmpty(privateOptions)) {
+            hint += " (";
+            String sep = "";
+            for (final String opt : privateOptions.trim().split(",")) {
+                final String[] elem = opt.trim().split("\\.");
+                hint += sep + elem[elem.length - 1];
+                sep = ",";
+            }
+            hint += ")";
+        }
+        if (DEBUG_INPUT_TEXT) {
+            Log.d(TAG, String.format("class=0x%08x variation=0x%08x flags=0x%08x hint=%s",
+                    e.getInputType() & InputType.TYPE_MASK_CLASS,
+                    e.getInputType() & InputType.TYPE_MASK_VARIATION,
+                    e.getInputType() & InputType.TYPE_MASK_FLAGS, hint));
+        }
+        if (e.getId() == R.id.text_restarting) {
+            hint += " restarting";
+        }
+        e.setHint(hint);
+    }
+
+    private void saveBooleanPreference(final String key, final boolean value) {
+        final SharedPreferences.Editor editor = prefs.edit();
+        editor.putBoolean(key, value);
+        editor.apply();
+    }
+
+    private void saveStringPreference(final String key, final String value) {
+        final SharedPreferences.Editor editor = prefs.edit();
+        editor.putString(key, value);
+        editor.apply();
+    }
+
+    private void saveNavigateMode(final boolean enabled) {
+        saveBooleanPreference(PREF_NAVIGATE, enabled);
+    }
+
+    private boolean getNavigateMode() {
+        return prefs.getBoolean(PREF_NAVIGATE, false);
+    }
+
+    private void saveSoftInputMode(final boolean visible) {
+        saveBooleanPreference(PREF_SOFTINPUT, visible);
+    }
+
+    private void loadSoftInputMode() {
+        final boolean visible = prefs.getBoolean(PREF_SOFTINPUT, false);
+        final Window w = getWindow();
+        w.setSoftInputMode(visible
+                ? WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE
+                : WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
+    }
+
+    private void saveTheme(final ThemeItem theme) {
+        saveStringPreference(PREF_THEME, theme.name);
+    }
+
+    String getThemeName() {
+        return prefs.getString(PREF_THEME, ThemeItem.getDefaultThemeName());
+    }
+
+    private void loadTheme() {
+        final String themeName = getThemeName();
+        for (final ThemeItem theme : ThemeItem.THEME_LIST) {
+            if (themeName.equals(theme.name)) {
+                setTheme(theme.id);
+                return;
+            }
+        }
+    }
+
+    @Override
+    public boolean onEditorAction(final TextView v, final int action, final KeyEvent event) {
+        for (int i = 0; i < fields.length; i++) {
+            if (v == fields[i]) {
+                final int direction;
+                if (action == EditorInfo.IME_ACTION_PREVIOUS) {
+                    direction = -1;
+                } else {
+                    direction = +1;
+                }
+
+                final int target = i + direction;
+                if (target < 0 || target >= fields.length)
+                    return false;
+
+                final View targetView = fields[target];
+                targetView.requestFocus();
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static String actionName(final int action) {
+        switch (action & EditorInfo.IME_MASK_ACTION) {
+        case EditorInfo.IME_ACTION_UNSPECIFIED:
+            return "actionUnspecified";
+        case EditorInfo.IME_ACTION_NONE:
+            return "actionNone";
+        case EditorInfo.IME_ACTION_GO:
+            return "actionGo";
+        case EditorInfo.IME_ACTION_SEARCH:
+            return "actionSearch";
+        case EditorInfo.IME_ACTION_SEND:
+            return "actionSend";
+        case EditorInfo.IME_ACTION_NEXT:
+            return "actionNext";
+        case EditorInfo.IME_ACTION_DONE:
+            return "actionDone";
+        case EditorInfo.IME_ACTION_PREVIOUS:
+            return "actionPrevious";
+        default:
+            return "actionUnknown(" + action + ")";
+        }
+    }
+
+    private static String inputTypeToString(final int inputType) {
+        if (inputType == InputType.TYPE_NULL) {
+            return "TYPE_NULL";
+        }
+        final int clazz = inputType & InputType.TYPE_MASK_CLASS;
+        final int variation = inputType & InputType.TYPE_MASK_VARIATION;
+        final int flags = inputType & InputType.TYPE_MASK_FLAGS;
+        String base = "unknown(class=" + clazz + " variation=" + variation + " flag=0x"
+                + Integer.toHexString(flags);
+
+        switch (clazz) {
+        case InputType.TYPE_CLASS_TEXT:
+            switch (variation) {
+            case InputType.TYPE_TEXT_VARIATION_NORMAL:
+                base = "text";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_URI:
+                base = "textUri";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS:
+                base = "textEmailAddress";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT:
+                base = "textEmailSubject";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE:
+                base = "textShortMessage";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE:
+                base = "textLongMessage";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_PERSON_NAME:
+                base = "textPersonName";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS:
+                base = "textPostalAddress";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_PASSWORD:
+                base = "textPassword";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD:
+                base = "textVisiblePassword";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT:
+                base = "textWebEditText";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_FILTER:
+                base = "textFilter";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_PHONETIC:
+                base = "textPhonetic";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS:
+                base = "textWebEmailAddress";
+                break;
+            case InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD:
+                base = "textWebPassword";
+                break;
+            }
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS) != 0,
+                    "textCapCharacters");
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_CAP_WORDS) != 0,
+                    "textCapWords");
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_CAP_SENTENCES) != 0,
+                    "textCapSentences");
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) != 0,
+                    "textAutoCorrect");
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE) != 0,
+                    "textAutoComplete");
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_MULTI_LINE) != 0,
+                    "textMultiLine");
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE) != 0,
+                    "textImeMultiLine");
+            base = appendFlagText(base, (flags & InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) != 0,
+                    "textNoSuggestions");
+            break;
+
+        case InputType.TYPE_CLASS_NUMBER:
+            if (variation == InputType.TYPE_NUMBER_VARIATION_NORMAL) {
+                base = "number";
+            } else if (variation == InputType.TYPE_NUMBER_VARIATION_PASSWORD) {
+                base = "numberPassword";
+            }
+            base = appendFlagText(base, (flags & InputType.TYPE_NUMBER_FLAG_SIGNED) != 0,
+                    "numberSigned");
+            base = appendFlagText(base, (flags & InputType.TYPE_NUMBER_FLAG_DECIMAL) != 0,
+                    "numberDecimal");
+            break;
+
+        case InputType.TYPE_CLASS_PHONE:
+            base = "phone";
+            break;
+
+        case InputType.TYPE_CLASS_DATETIME:
+            switch (variation) {
+            case InputType.TYPE_DATETIME_VARIATION_NORMAL:
+                base = "datetime";
+                break;
+            case InputType.TYPE_DATETIME_VARIATION_DATE:
+                base = "date";
+                break;
+            case InputType.TYPE_DATETIME_VARIATION_TIME:
+                base = "time";
+                break;
+            }
+            break;
+        }
+
+        return base;
+    }
+
+    private static String appendFlagText(final String text, final boolean flag, final String name) {
+        if (flag) {
+            if (text.length() == 0 || name.startsWith(text))
+                return name;
+            return text + "|" + name;
+        }
+        return text;
+    }
+}
diff --git a/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/FinalClassField.java b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/FinalClassField.java
new file mode 100644
index 0000000..14c556a
--- /dev/null
+++ b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/FinalClassField.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2012 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.tools.edittextvariations;
+
+import java.lang.reflect.Field;
+
+public final class FinalClassField<T> {
+    public final boolean defined;
+    public final String name;
+    public final String className;
+    public final T value;
+
+    @SuppressWarnings("unchecked")
+    private FinalClassField(final Field field, final String className, final String fieldName,
+            final T compatValue) {
+        this.defined = field != null;
+        this.name = fieldName;
+        this.className = className;
+        T v = null;
+        try {
+            final Object obj = field.get(null);
+            v = (T) obj;
+        } catch (final Exception e) {
+            v = compatValue;
+        }
+        this.value = v;
+    }
+
+    public static <T> FinalClassField<T> newInstance(final Class<?> definedClass, final String name,
+            final T compatValue) {
+        if (definedClass == null)
+            throw new NullPointerException("defined class");
+        String className = definedClass.getCanonicalName();
+        try {
+            return new FinalClassField<>(
+                    definedClass.getField(name), className, name, compatValue);
+        } catch (Exception e) {
+            return new FinalClassField<>(null, className, name, compatValue);
+        }
+    }
+
+    public static <T> FinalClassField<T> newInstance(final String className, final String fieldName,
+            final T compatValue) {
+        try {
+            return newInstance(Class.forName(className), fieldName, compatValue);
+        } catch (ClassNotFoundException e) {
+            return new FinalClassField<>(null, className, fieldName, compatValue);
+        }
+    }
+}
diff --git a/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/InstanceMethod.java b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/InstanceMethod.java
new file mode 100644
index 0000000..05dc0d6
--- /dev/null
+++ b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/InstanceMethod.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2011 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.tools.edittextvariations;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public final class InstanceMethod {
+    public final boolean defined;
+    public final String name;
+    public final String className;
+
+    private final Class<?> clazz;
+    private final Method method;
+
+    private InstanceMethod(final Class<?> receiverClass, final Method instanceMethod,
+            final String receiverName, final String methodName) {
+        this.defined = instanceMethod != null;
+        this.clazz = receiverClass;
+        this.method = instanceMethod;
+        this.name = methodName;
+        this.className = receiverName;
+    }
+
+    public Object invoke(final Object receiverObject, final Object... args) {
+        if (!defined)
+            throw new RuntimeException("method " + name + " not defined");
+        if (receiverObject == null)
+            throw new NullPointerException("receiver object");
+        if (clazz.isInstance(receiverObject)) {
+            try {
+                if (args.length == 0) {
+                    return method.invoke(receiverObject);
+                }
+                return method.invoke(clazz, args);
+            } catch (IllegalArgumentException e) {
+                throw new RuntimeException("IllegalArgumentException");
+            } catch (IllegalAccessException e) {
+                throw new RuntimeException("IllegalAccessException");
+            } catch (InvocationTargetException e) {
+                throw new RuntimeException("InvocationTargetException");
+            }
+        }
+        throw new RuntimeException("receiver type not matched: method=" + name
+                + " actual receiver=" + receiverObject.getClass().getCanonicalName());
+    }
+
+    public static InstanceMethod newInstance(final Class<?> receiverClass, final String methodName,
+            final Class<?>... parameterTypes) {
+        if (receiverClass == null)
+            throw new NullPointerException("receiver class");
+        final String className = receiverClass.getCanonicalName();
+        try {
+            return new InstanceMethod(receiverClass,
+                    receiverClass.getMethod(methodName, parameterTypes), className, methodName);
+        } catch (Exception e) {
+            return new InstanceMethod(receiverClass, null, className, methodName);
+        }
+    }
+
+    public static InstanceMethod newInstance(final String className, final String methodName,
+            final Class<?>... parameterTypes) {
+        try {
+            return newInstance(Class.forName(className), methodName, parameterTypes);
+        } catch (ClassNotFoundException e) {
+            return new InstanceMethod(null, null, className, methodName);
+        }
+    }
+}
diff --git a/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/MultiLineShortMessageEditText.java b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/MultiLineShortMessageEditText.java
new file mode 100644
index 0000000..7ab7007
--- /dev/null
+++ b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/MultiLineShortMessageEditText.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2012 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.tools.edittextvariations;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputConnection;
+import android.widget.EditText;
+
+public final class MultiLineShortMessageEditText extends EditText {
+
+    public MultiLineShortMessageEditText(final Context context) {
+        super(context);
+    }
+
+    public MultiLineShortMessageEditText(final Context context, final AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public MultiLineShortMessageEditText(final Context context, final AttributeSet attrs,
+            final int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    public InputConnection onCreateInputConnection(final EditorInfo outAttrs) {
+        final InputConnection ic = super.onCreateInputConnection(outAttrs);
+        outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
+        return ic;
+    }
+}
diff --git a/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/ThemeItem.java b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/ThemeItem.java
new file mode 100644
index 0000000..f3c6d4f
--- /dev/null
+++ b/tools/EditTextVariations/src/com/android/inputmethod/tools/edittextvariations/ThemeItem.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011 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.tools.edittextvariations;
+
+import android.os.Build;
+
+import com.android.inputmethod.tools.edittextvariations.R;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public final class ThemeItem {
+    public final int id;
+    public final String name;
+
+    private ThemeItem(final String name, final int resId) {
+        this.id = resId;
+        this.name = name;
+    }
+
+    private static final String THEME_DEFAULT = "Default";
+    private static final String THEME_HOLO = "Theme_Holo";
+    private static final String THEME_HOLO_LIGHT = "Theme_Holo_Light";
+    private static final String THEME_DEVICE_DEFAULT = "Theme_DeviceDefault";
+    private static final String THEME_DEVICE_DEFAULT_LIGHT = "Theme_DeviceDefault_Light";
+    private static final String THEME_MATERIAL = "Theme_Material";
+    private static final String THEME_MATERIAL_LIGHT = "Theme_Material_Light";
+
+    public static String getDefaultThemeName() {
+        return THEME_DEFAULT;
+    }
+
+    public static final List<ThemeItem> THEME_LIST = createThemeList(
+            THEME_HOLO, THEME_HOLO_LIGHT, THEME_DEVICE_DEFAULT, THEME_DEVICE_DEFAULT_LIGHT,
+            THEME_MATERIAL, THEME_MATERIAL_LIGHT);
+
+    private static List<ThemeItem> createThemeList(final String... candidateList) {
+        final ArrayList<ThemeItem> list = new ArrayList<>();
+
+        // Default theme is always available as it's defined in our resource.
+        list.add(new ThemeItem(THEME_DEFAULT, R.style.defaultActivityTheme));
+
+        for (final String name : candidateList) {
+            final FinalClassField<Integer> constant =
+                    FinalClassField.newInstance(android.R.style.class, name, 0);
+            if (constant.defined) {
+                list.add(new ThemeItem(name, constant.value));
+            }
+        }
+
+        return Collections.unmodifiableList(list);
+    }
+}
