Opensource a test tool called EditTextVariations

This CL opensouces a testing tool called EditTextVariations that has
been used internally to test IME behaviors on various
EditorInfo#inputType and EditorInfo#imeOptions.

Bug: 80039502
Test: Manually verified as follows.
 1. tapas EditTextVariations
 2. make -j
 3. adb install -r $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk
Change-Id: Ia87e655573c2fd1fc09d56e4af90bfb1dfd65f9b
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>