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/Android.bp b/Android.bp
index 0559846..3abd6c1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -30,8 +30,8 @@
         "java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java",
         "java/src/com/android/inputmethod/latin/utils/JniUtils.java",
 
-        "java-overridable/src/com/android/inputmethod/latin/define/DebugFlags.java",
-        "java-overridable/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java",
+        "java/src/com/android/inputmethod/latin/define/DebugFlags.java",
+        "java/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java",
 
         "tests/src/com/android/inputmethod/latin/utils/ByteArrayDictBuffer.java",
         "tests/src/com/android/inputmethod/latin/makedict/**/*.java",
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.bp b/java/Android.bp
index 8681c84..fbf27ce 100644
--- a/java/Android.bp
+++ b/java/Android.bp
@@ -15,10 +15,7 @@
 android_app {
     name: "LatinIME",
 
-    srcs: [
-        "src/**/*.java",
-        ":LatinIME_java-overridable",
-    ],
+    srcs: ["src/**/*.java"],
 
     certificate: "shared",
 
@@ -26,10 +23,9 @@
 
     static_libs: [
         "android-common",
-        "inputmethod-common",
         "jsr305",
         "latinime-common",
-        "android-support-v4",
+        "androidx.legacy_legacy-support-v4",
     ],
 
     // Do not compress dictionary files to mmap dict data runtime
@@ -38,6 +34,8 @@
     // Include all the resources regardless of system supported locales
     aapt_include_all_resources: true,
 
+    min_sdk_version: "14",
+    target_sdk_version: "23",
     sdk_version: "current",
 
     optimize: {
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/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-da/strings.xml b/java/res/values-da/strings.xml
index 2c3546c..5471ea0 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -56,7 +56,7 @@
     <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> ms"</string>
     <string name="settings_system_default" msgid="6268225104743331821">"Systemstandard"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"Foreslå navne på kontakter"</string>
-    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Brug navne fra Kontaktpersoner til forslag og rettelser"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Brug navne fra Kontakter til forslag og rettelser"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Tilpassede forslag"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Gør <xliff:g id="APPLICATION_NAME">%s</xliff:g> bedre"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"To mellemrum for punktum"</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..a44b2fb 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -44,7 +44,7 @@
     <string name="clear_sync_data_ok" msgid="613104067705915132">"Elimina"</string>
     <string name="cloud_sync_cancel" msgid="5877481252150919037">"Annulla"</string>
     <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Il tuo dizionario personale verrà sincronizzato sui server di Google e ne verrà effettuato il backup. Potrebbero essere raccolte informazioni statistiche relative alla frequenza delle parole per migliorare i nostri prodotti. La raccolta e l\'utilizzo di tutte le informazioni saranno conformi alle "<a href="https://www.google.com/policies/privacy">"Norme sulla privacy di Google"</a>"."</string>
-    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Per attivare la funzione, aggiungi un account Google al dispositivo"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Per attivare la funzione, aggiungi un Account Google al dispositivo"</string>
     <string name="cloud_sync_summary_disabled_work_profile" msgid="1381770407303129164">"La sincronizzazione non è disponibile per i dispositivi con account Google Apps for Business"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Altri metodi immissione"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Il tasto per cambiare lingua offre altri metodi di immissione"</string>
@@ -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-ja/strings.xml b/java/res/values-ja/strings.xml
index bce66c0..2fc1133 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/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>
@@ -134,7 +134,7 @@
     <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>
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..437a5a8 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="cloud_sync_summary_disabled" msgid="4553338970382825796">"डिव्‍हाइसेस वरून आपला वैयक्तिक शब्दकोश संकालित करा"</string>
-    <string name="sync_now_title" msgid="3088838136743277721">"आता संकालन करा"</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_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="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..10709bb 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>
@@ -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>
@@ -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-nl/strings.xml b/java/res/values-nl/strings.xml
index 195821b..4951f97 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -89,7 +89,7 @@
     <string name="voice_input_disabled_summary" msgid="6323489602945135165">"Geen spraakinvoermethoden ingeschakeld. Bekijk de instellingen bij \'Talen en invoer\'."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Invoermethoden configureren"</string>
     <string name="language_selection_title" msgid="3666971864764478269">"Talen"</string>
-    <string name="help_and_feedback" msgid="5328219371839879161">"Help en feedback"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Hulp en feedback"</string>
     <string name="select_language" msgid="5709487854987078367">"Talen"</string>
     <string name="hint_add_to_dictionary" msgid="2645988432867033007">"Tik nogmaals om op te slaan"</string>
     <string name="hint_add_to_dictionary_without_word" msgid="6710206006427574423">"Tik hier om op te slaan"</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-pl/strings.xml b/java/res/values-pl/strings.xml
index 81b40f0..3912782 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -57,7 +57,7 @@
     <string name="settings_system_default" msgid="6268225104743331821">"Ustawienie domyślne"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"Proponuj osoby z kontaktów"</string>
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"W podpowiedziach i poprawkach używaj nazwisk z kontaktów"</string>
-    <string name="use_personalized_dicts" msgid="5167396352105467626">"Spersonalizowane sugestie"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"Dostosowane sugestie"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Popraw aplikację <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"Szybka kropka ze spacją"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"Dwukrotne kliknięcie spacji wstawia kropkę ze spacją"</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..24a0154 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -23,15 +23,15 @@
     <string name="english_ime_input_options" msgid="3909945612939668554">"Opções de entrada"</string>
     <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"Buscar nomes de contatos"</string>
     <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"O corretor ortográfico usa entradas de sua lista de contatos"</string>
-    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar a tecla"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao digitar"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Som ao tocar a tecla"</string>
-    <string name="popup_on_keypress" msgid="123894815723512944">"Exibir pop-up ao digitar"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"Mostrar letra em pop-up ao digitar"</string>
     <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferências"</string>
     <string name="settings_screen_accounts" msgid="2786418968536696670">"Contas e privacidade"</string>
     <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-th/strings.xml b/java/res/values-th/strings.xml
index cf2833f..885b633 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -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>
diff --git a/java/res/values-tl/strings-emoji-descriptions.xml b/java/res/values-tl/strings-emoji-descriptions.xml
index 2027920..c364587 100644
--- a/java/res/values-tl/strings-emoji-descriptions.xml
+++ b/java/res/values-tl/strings-emoji-descriptions.xml
@@ -272,10 +272,10 @@
     <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Mahamog"</string>
     <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Nakasarang payong"</string>
     <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Gabi na may mga bituin"</string>
-    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Pagsikat ng araw sa mga bundok"</string>
-    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Pagsikat ng araw"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sunrise sa mga bundok"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sunrise"</string>
     <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Lungsod sa dapit-hapon"</string>
-    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Paglubog ng araw sa mga gusali"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Sunset sa mga gusali"</string>
     <string name="spoken_emoji_1F308" msgid="688704703985173377">"Bahaghari"</string>
     <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Tulay sa gabi"</string>
     <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Alon ng tubig"</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-tr/strings.xml b/java/res/values-tr/strings.xml
index d41ea69..bfebd97 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -62,14 +62,14 @@
     <string name="use_double_space_period" msgid="8781529969425082860">"Çift boşlukla nokta ekle"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"Boşluk çubuğuna iki kez dokunmak nokta ve ardından bir boşluk ekler"</string>
     <string name="auto_cap" msgid="1719746674854628252">"Otomatik büyük harf yap"</string>
-    <string name="auto_cap_summary" msgid="7934452761022946874">"Her cümlenin ilk harfini büyük harf yap"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Her cümlenin ilk harfini büyük harf yapar"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Kişisel sözlük"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"Ek sözlükler"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"Ana sözlük"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Düzeltme önerilerini göster"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Yazarken, önerilen kelimeleri görüntüle"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Rahatsız edici kelimeleri engelle"</string>
-    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Rahatsız edici olabilecek kelimeleri önerme"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Rahatsız edici olabilecek kelimeleri önermez"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Otomatik düzelt"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Boşluk tuşu ve noktalama işaretleri yanlış yazılan kelimeleri otomatikman düzeltir"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Kapalı"</string>
@@ -77,7 +77,7 @@
     <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Geniş ölçekte"</string>
     <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Çok geniş ölçekte"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"Sonraki kelime önerileri"</string>
-    <string name="bigram_prediction_summary" msgid="3896362682751109677">"Öneride bulunurken önceki kelimeyi kullan"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"Öneride bulunurken önceki kelimeyi kullanır"</string>
     <string name="gesture_input" msgid="826951152254563827">"Hareketle yazmayı etkinleştir"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"Kelime girmek için parmağınızı harflerin üzerinde kaydırın"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"Hareket izini göster"</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.bp b/native/jni/Android.bp
index 3bf70ad..9f7dbce 100644
--- a/native/jni/Android.bp
+++ b/native/jni/Android.bp
@@ -123,6 +123,7 @@
         "-Woverloaded-virtual",
         "-Wsign-promo",
         "-Wno-system-headers",
+        "-Wno-format-nonliteral",
 
         // To suppress compiler warnings for unused variables/functions used for debug features etc.
         "-Wno-unused-parameter",
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.bp b/tests/Android.bp
index a99cc5b..7a83597 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -40,5 +40,7 @@
 
     instrumentation_for: "LatinIME",
 
+    min_sdk_version: "14",
+    target_sdk_version: "21",
     sdk_version: "current",
 }
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/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/ContactsContentObserverTest.java b/tests/src/com/android/inputmethod/latin/ContactsContentObserverTest.java
index f90a18b..be039c4 100644
--- a/tests/src/com/android/inputmethod/latin/ContactsContentObserverTest.java
+++ b/tests/src/com/android/inputmethod/latin/ContactsContentObserverTest.java
@@ -24,11 +24,13 @@
 
 import android.content.Context;
 import android.provider.ContactsContract.Contacts;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 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;
 
@@ -38,6 +40,7 @@
  * Tests for {@link ContactsContentObserver}.
  */
 @SmallTest
+@RunWith(AndroidJUnit4.class)
 public class ContactsContentObserverTest {
     private static final int UPDATED_CONTACT_COUNT = 10;
     private static final int STALE_CONTACT_COUNT = 8;
diff --git a/tests/src/com/android/inputmethod/latin/ContactsDictionaryUtilsTest.java b/tests/src/com/android/inputmethod/latin/ContactsDictionaryUtilsTest.java
index 9b49f1a..57d5def 100644
--- a/tests/src/com/android/inputmethod/latin/ContactsDictionaryUtilsTest.java
+++ b/tests/src/com/android/inputmethod/latin/ContactsDictionaryUtilsTest.java
@@ -20,9 +20,11 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-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;
 
 import java.util.Locale;
 
@@ -30,6 +32,7 @@
  * Tests for {@link ContactsDictionaryUtils}
  */
 @SmallTest
+@RunWith(AndroidJUnit4.class)
 public class ContactsDictionaryUtilsTest {
 
     @Test
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/java-overridable/Android.bp b/tools/EditTextVariations/Android.bp
similarity index 81%
rename from java-overridable/Android.bp
rename to tools/EditTextVariations/Android.bp
index 88de244..36296a5 100644
--- a/java-overridable/Android.bp
+++ b/tools/EditTextVariations/Android.bp
@@ -1,4 +1,4 @@
-// Copyright (C) 2018 The Android Open Source Project
+// 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.
@@ -12,7 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-filegroup {
-    name: "LatinIME_java-overridable",
+android_test {
+    name: "EditTextVariations",
+
     srcs: ["src/**/*.java"],
+
+    sdk_version: "current",
 }
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);
+    }
+}
