diff --git a/java/res/drawable-hdpi/btn_candidate_pressed.9.png b/java/res/drawable-hdpi/btn_suggestion_pressed.9.png
similarity index 100%
rename from java/res/drawable-hdpi/btn_candidate_pressed.9.png
rename to java/res/drawable-hdpi/btn_suggestion_pressed.9.png
diff --git a/java/res/drawable-hdpi/candidate_feedback_background.9.png b/java/res/drawable-hdpi/suggestion_feedback_background.9.png
similarity index 100%
rename from java/res/drawable-hdpi/candidate_feedback_background.9.png
rename to java/res/drawable-hdpi/suggestion_feedback_background.9.png
diff --git a/java/res/drawable-mdpi/btn_candidate_pressed.9.png b/java/res/drawable-mdpi/btn_suggestion_pressed.9.png
similarity index 100%
rename from java/res/drawable-mdpi/btn_candidate_pressed.9.png
rename to java/res/drawable-mdpi/btn_suggestion_pressed.9.png
diff --git a/java/res/drawable-mdpi/candidate_feedback_background.9.png b/java/res/drawable-mdpi/suggestion_feedback_background.9.png
similarity index 100%
rename from java/res/drawable-mdpi/candidate_feedback_background.9.png
rename to java/res/drawable-mdpi/suggestion_feedback_background.9.png
diff --git a/java/res/drawable-xhdpi/btn_candidate_pressed.9.png b/java/res/drawable-xhdpi/btn_suggestion_pressed.9.png
similarity index 100%
rename from java/res/drawable-xhdpi/btn_candidate_pressed.9.png
rename to java/res/drawable-xhdpi/btn_suggestion_pressed.9.png
diff --git a/java/res/drawable-xhdpi/candidate_feedback_background.9.png b/java/res/drawable-xhdpi/suggestion_feedback_background.9.png
similarity index 100%
rename from java/res/drawable-xhdpi/candidate_feedback_background.9.png
rename to java/res/drawable-xhdpi/suggestion_feedback_background.9.png
diff --git a/java/res/drawable/btn_candidate.xml b/java/res/drawable/btn_suggestion.xml
similarity index 86%
rename from java/res/drawable/btn_candidate.xml
rename to java/res/drawable/btn_suggestion.xml
index efcee9f54bbabbd6e5eec0315c758cdd9e0276ac..cde12fe552c6e9b9c9aa9cf7724d42a10a98c8ed 100644
--- a/java/res/drawable/btn_candidate.xml
+++ b/java/res/drawable/btn_suggestion.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2010, The Android Open Source Project
+** 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.
@@ -23,5 +23,5 @@
 >
     <item
         android:state_pressed="true"
-        android:drawable="@drawable/btn_candidate_pressed" />
+        android:drawable="@drawable/btn_suggestion_pressed" />
 </selector>
diff --git a/java/res/drawable/btn_candidate_ics.xml b/java/res/drawable/btn_suggestion_ics.xml
similarity index 100%
rename from java/res/drawable/btn_candidate_ics.xml
rename to java/res/drawable/btn_suggestion_ics.xml
diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml
index 821082f916628c68bba4296767350bb5c1abb4f2..328469517cbf8bd447ec7daa1fe7a6942f338c9c 100644
--- a/java/res/layout/input_view.xml
+++ b/java/res/layout/input_view.xml
@@ -25,55 +25,34 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
 >
-    <!-- On tablets, the candidate strip is centered with horizontal paddings on both sides because
-         width of the landscape mode is too long for the candidate strip. This LinearLayout is
-         required to hold the paddings. -->
+    <!-- On tablets, the suggestions strip is centered with horizontal paddings on both sides
+         because width of the landscape mode is too long for the suggestions strip. This
+         LinearLayout is required to hold the paddings. -->
     <LinearLayout
-        android:id="@+id/candidates_container"
+        android:id="@+id/suggestions_container"
         android:orientation="horizontal"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:minHeight="@dimen/candidate_strip_minimum_height"
+        android:minHeight="@dimen/suggestions_strip_minimum_height"
         android:gravity="bottom"
     >
         <View
-            android:layout_width="@dimen/candidate_strip_padding"
-            android:layout_height="@dimen/candidate_strip_height"
+            android:layout_width="@dimen/suggestions_strip_padding"
+            android:layout_height="@dimen/suggestions_strip_height"
             style="?attr/suggestionsStripBackgroundStyle" />
-        <com.android.inputmethod.latin.CandidateView
-            android:id="@+id/candidates"
+        <com.android.inputmethod.latin.SuggestionsView
+            android:id="@+id/suggestions_view"
             android:layout_weight="1.0"
             android:layout_width="0dp"
-            android:layout_height="@dimen/candidate_strip_height"
+            android:layout_height="@dimen/suggestions_strip_height"
             android:gravity="center_vertical"
-            style="?attr/candidateViewStyle" />
+            style="?attr/suggestionsViewStyle" />
         <View
-            android:layout_width="@dimen/candidate_strip_padding"
-            android:layout_height="@dimen/candidate_strip_height"
+            android:layout_width="@dimen/suggestions_strip_padding"
+            android:layout_height="@dimen/suggestions_strip_height"
             style="?attr/suggestionsStripBackgroundStyle" />
     </LinearLayout>
 
-    <LinearLayout
-        android:id="@+id/candidates_pane_container"
-        android:orientation="horizontal"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:visibility="gone"
-        style="?attr/suggestionsStripBackgroundStyle"
-    >
-        <View
-            android:layout_width="@dimen/candidate_strip_padding"
-            android:layout_height="@dimen/candidate_strip_height" />
-        <FrameLayout
-            android:id="@+id/candidates_pane"
-            android:layout_weight="1.0"
-            android:layout_width="0dp"
-            android:layout_height="match_parent" />
-        <View
-            android:layout_width="@dimen/candidate_strip_padding"
-            android:layout_height="@dimen/candidate_strip_height" />
-    </LinearLayout>
-
     <com.android.inputmethod.keyboard.LatinKeyboardView
         android:id="@+id/keyboard_view"
         android:layout_alignParentBottom="true"
diff --git a/java/res/layout/more_suggestions.xml b/java/res/layout/more_suggestions.xml
index d387a1573a9d7bb4b1b9f3e85287b5b8adef7a72..6aa82e19766c9780a47f7b1c0339341837b50c5f 100644
--- a/java/res/layout/more_suggestions.xml
+++ b/java/res/layout/more_suggestions.xml
@@ -30,7 +30,7 @@
             android:layout_alignParentBottom="true"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            latin:keyLabelSize="@dimen/candidate_text_size"
+            latin:keyLabelSize="@dimen/suggestion_text_size"
             latin:keyHintLetterRatio="@fraction/more_suggestions_info_ratio"
             latin:keyHintLetterColor="@android:color/white"
             />
diff --git a/java/res/layout/candidate_divider.xml b/java/res/layout/suggestion_divider.xml
similarity index 94%
rename from java/res/layout/candidate_divider.xml
rename to java/res/layout/suggestion_divider.xml
index dc5e779663fee7ce568460058581295c878c654c..e38a725b1725165f1140c5c7c71d4b33c12dd3e1 100644
--- a/java/res/layout/candidate_divider.xml
+++ b/java/res/layout/suggestion_divider.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2010, The Android Open Source Project
+** 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.
diff --git a/java/res/layout/candidate_info.xml b/java/res/layout/suggestion_info.xml
similarity index 100%
rename from java/res/layout/candidate_info.xml
rename to java/res/layout/suggestion_info.xml
diff --git a/java/res/layout/candidate_preview.xml b/java/res/layout/suggestion_preview.xml
similarity index 81%
rename from java/res/layout/candidate_preview.xml
rename to java/res/layout/suggestion_preview.xml
index 32705c996cd54c2c59afd98dfb00034707e43cb4..3c026ae0e6ad329591d70273e50b942570ad5061 100644
--- a/java/res/layout/candidate_preview.xml
+++ b/java/res/layout/suggestion_preview.xml
@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-/* 
+/*
 **
-** Copyright 2008, The Android Open Source Project
+** 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 
+** 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 
+**     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 
+** 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.
 */
 -->
diff --git a/java/res/layout/candidate_word.xml b/java/res/layout/suggestion_word.xml
similarity index 79%
rename from java/res/layout/candidate_word.xml
rename to java/res/layout/suggestion_word.xml
index b711e8f2917b4d7646be6e148370848dcfa4e7f4..d64cacf04b6105a0f43df57bc543e2ae01854ca2 100644
--- a/java/res/layout/candidate_word.xml
+++ b/java/res/layout/suggestion_word.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2010, The Android Open Source Project
+** 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.
@@ -22,12 +22,12 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:minWidth="@dimen/candidate_min_width"
-    android:textSize="@dimen/candidate_text_size"
+    android:minWidth="@dimen/suggestion_min_width"
+    android:textSize="@dimen/suggestion_text_size"
     android:gravity="center"
-    android:paddingLeft="@dimen/candidate_padding"
+    android:paddingLeft="@dimen/suggestion_padding"
     android:paddingTop="0dp"
-    android:paddingRight="@dimen/candidate_padding"
+    android:paddingRight="@dimen/suggestion_padding"
     android:paddingBottom="0dp"
     android:focusable="false"
     android:clickable="false"
diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/suggestions_strip.xml
similarity index 92%
rename from java/res/layout/candidates_strip.xml
rename to java/res/layout/suggestions_strip.xml
index fdb13f73ec1d661cbc364143cd40c1d44b4530df..9252017b480fef9bdc1262ac75bf4adb66c00db9 100644
--- a/java/res/layout/candidates_strip.xml
+++ b/java/res/layout/suggestions_strip.xml
@@ -24,12 +24,12 @@
 >
     <!-- Placer for debug information -->
     <RelativeLayout
-        android:id="@+id/candidates_placer"
+        android:id="@+id/suggestions_placer"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
     >
         <LinearLayout
-            android:id="@+id/candidates_strip"
+            android:id="@+id/suggestions_strip"
             android:orientation="horizontal"
             android:layout_width="match_parent"
             android:layout_height="match_parent" />
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index 4bf0e2092f1c3614073e250c7e76fcf931818fdc..322b6a63b550758515436c37cf087df20263bebc 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -58,10 +58,9 @@
 
     <dimen name="key_preview_offset_ics">0.01in</dimen>
 
-    <dimen name="candidate_strip_height">36dip</dimen>
+    <dimen name="suggestions_strip_height">36dip</dimen>
     <dimen name="more_suggestions_row_height">36dip</dimen>
-    <dimen name="candidate_strip_minimum_height">160sp</dimen>
-    <dimen name="candidate_strip_fading_edge_length">63dip</dimen>
+    <dimen name="suggestions_strip_minimum_height">160sp</dimen>
     <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
     <!-- popup_key_height x 1.2 -->
     <dimen name="mini_keyboard_slide_allowance">0.336in</dimen>
diff --git a/java/res/values-sw600dp-land/dimens.xml b/java/res/values-sw600dp-land/dimens.xml
index 1d26338c5eafca265951fd038b51cc22dbde300e..f1715af642638f4322f4ae793eeb993d6c84ab44 100644
--- a/java/res/values-sw600dp-land/dimens.xml
+++ b/java/res/values-sw600dp-land/dimens.xml
@@ -50,5 +50,5 @@
     <fraction name="key_hint_label_ratio">34%</fraction>
     <fraction name="key_uppercase_letter_ratio">29%</fraction>
 
-    <dimen name="candidate_strip_padding">40.0mm</dimen>
+    <dimen name="suggestions_strip_padding">40.0mm</dimen>
 </resources>
diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml
index 6ce23cc70ada2d87c4776f39f344df42e92b21c0..6955736b36e1532d37d7c6c4a72ac9b3ef07ce7c 100644
--- a/java/res/values-sw600dp/dimens.xml
+++ b/java/res/values-sw600dp/dimens.xml
@@ -66,10 +66,10 @@
     <dimen name="key_preview_height_ics">15.0mm</dimen>
     <dimen name="key_preview_offset_ics">0.05in</dimen>
 
-    <dimen name="candidate_strip_height">44dip</dimen>
+    <dimen name="suggestions_strip_height">44dip</dimen>
     <dimen name="more_suggestions_row_height">44dip</dimen>
-    <dimen name="candidate_strip_padding">15.0mm</dimen>
-    <dimen name="candidate_min_width">0.3in</dimen>
-    <dimen name="candidate_padding">12dip</dimen>
-    <dimen name="candidate_text_size">22dip</dimen>
+    <dimen name="suggestions_strip_padding">15.0mm</dimen>
+    <dimen name="suggestion_min_width">0.3in</dimen>
+    <dimen name="suggestion_padding">12dip</dimen>
+    <dimen name="suggestion_text_size">22dip</dimen>
 </resources>
diff --git a/java/res/values-sw768dp-land/dimens.xml b/java/res/values-sw768dp-land/dimens.xml
index 0cfdffddddfe3460516f37225e42e3267bda4a41..7303ea1e787eb72e943fd9dda5f50f25d3b43af3 100644
--- a/java/res/values-sw768dp-land/dimens.xml
+++ b/java/res/values-sw768dp-land/dimens.xml
@@ -58,5 +58,5 @@
     <dimen name="key_preview_height_ics">26.5mm</dimen>
     <dimen name="key_preview_offset_ics">0.05in</dimen>
 
-    <dimen name="candidate_strip_padding">40.0mm</dimen>
+    <dimen name="suggestions_strip_padding">40.0mm</dimen>
 </resources>
diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml
index 9b307e6f3e885ba44ed59df20df33cfd0898def0..7db1df7b4b7c1446bfe6f343ba8d79aea1a4ffc7 100644
--- a/java/res/values-sw768dp/dimens.xml
+++ b/java/res/values-sw768dp/dimens.xml
@@ -69,11 +69,11 @@
     <dimen name="key_preview_height_ics">15.0mm</dimen>
     <dimen name="key_preview_offset_ics">0.05in</dimen>
 
-    <dimen name="candidate_strip_height">44dip</dimen>
+    <dimen name="suggestions_strip_height">44dip</dimen>
     <dimen name="more_suggestions_row_height">44dip</dimen>
-    <dimen name="candidate_strip_minimum_height">200sp</dimen>
-    <dimen name="candidate_strip_padding">15.0mm</dimen>
-    <dimen name="candidate_min_width">46dip</dimen>
-    <dimen name="candidate_padding">8dip</dimen>
-    <dimen name="candidate_text_size">22dip</dimen>
+    <dimen name="suggestions_strip_minimum_height">200sp</dimen>
+    <dimen name="suggestions_strip_padding">15.0mm</dimen>
+    <dimen name="suggestion_min_width">46dip</dimen>
+    <dimen name="suggestion_padding">8dip</dimen>
+    <dimen name="suggestion_text_size">22dip</dimen>
 </resources>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 9d34268420cee0556f6cf66dd85c7031ac145182..fa6b2eb392bb2e00281d954b4d0afb8056f0e381 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -30,7 +30,7 @@
         <attr name="suggestionsPaneViewStyle" format="reference" />
         <attr name="suggestionBackgroundStyle" format="reference" />
         <attr name="suggestionPreviewBackgroundStyle" format="reference" />
-        <attr name="candidateViewStyle" format="reference" />
+        <attr name="suggestionsViewStyle" format="reference" />
     </declare-styleable>
 
     <declare-styleable name="KeyboardView">
@@ -112,7 +112,7 @@
         </attr>
     </declare-styleable>
 
-    <declare-styleable name="CandidateView">
+    <declare-styleable name="SuggestionsView">
         <attr name="suggestionStripOption" format="integer">
             <flag name="autoCorrectBold" value="0x01" />
             <flag name="autoCorrectUnderline" value="0x02" />
@@ -122,8 +122,8 @@
         <attr name="colorTypedWord" format="color" />
         <attr name="colorAutoCorrect" format="color" />
         <attr name="colorSuggested" format="color" />
-        <attr name="candidateCountInStrip" format="integer" />
-        <attr name="centerCandidatePercentile" format="integer" />
+        <attr name="suggestionsCountInStrip" format="integer" />
+        <attr name="centerSuggestionPercentile" format="integer" />
     </declare-styleable>
 
     <declare-styleable name="Keyboard">
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 923e37d85f2cc2a1ffa4fd8042a47110a0725327..1ffbbacbe12c359389f80b6f5383b680e9964ea3 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -30,11 +30,11 @@
     <bool name="config_digit_more_keys_enabled">true</bool>
     <!-- Whether or not Popup on key press is enabled by default -->
     <bool name="config_default_popup_preview">true</bool>
-    <!-- Default value for bigram suggestion: while showing candidates for a word should we weigh
+    <!-- Default value for bigram suggestion: while showing suggestions for a word should we weigh
          in the previous word? -->
     <bool name="config_default_bigram_suggestions">true</bool>
     <!-- Default value for bigram prediction: after entering a word and a space only, should we look
-         at input history to suggest a hopefully helpful candidate for the next word? -->
+         at input history to suggest a hopefully helpful suggestions for the next word? -->
     <bool name="config_default_bigram_prediction">false</bool>
     <bool name="config_default_compat_recorrection_enabled">true</bool>
     <bool name="config_default_sound_enabled">false</bool>
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index b7609a4acd395712925f288d6a819d4f5fd0d5de..bd8c1565a49cb696c1b336ba7b849eafa3f13500 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -76,19 +76,18 @@
     <dimen name="key_preview_height_ics">80sp</dimen>
     <dimen name="key_preview_offset_ics">0.05in</dimen>
 
-    <dimen name="candidate_strip_height">40dip</dimen>
+    <dimen name="suggestions_strip_height">40dip</dimen>
     <dimen name="more_suggestions_key_horizontal_padding">12dip</dimen>
     <dimen name="more_suggestions_row_height">40dip</dimen>
     <dimen name="more_suggestions_slide_allowance">0.2in</dimen>
     <fraction name="more_suggestions_info_ratio">12%</fraction>
-    <dimen name="candidate_strip_minimum_height">200sp</dimen>
-    <dimen name="candidate_strip_fading_edge_length">63dip</dimen>
-    <dimen name="candidate_strip_padding">0dip</dimen>
-    <dimen name="candidate_min_width">44dip</dimen>
-    <dimen name="candidate_padding">6dip</dimen>
-    <dimen name="candidate_text_size">18dip</dimen>
-    <integer name="candidate_count_in_strip">3</integer>
-    <integer name="center_candidate_percentile">36</integer>
+    <dimen name="suggestions_strip_minimum_height">200sp</dimen>
+    <dimen name="suggestions_strip_padding">0dip</dimen>
+    <dimen name="suggestion_min_width">44dip</dimen>
+    <dimen name="suggestion_padding">6dip</dimen>
+    <dimen name="suggestion_text_size">18dip</dimen>
+    <integer name="suggestions_count_in_strip">3</integer>
+    <integer name="center_suggestion_percentile">36</integer>
 
     <!-- If the screen height in landscape is larger than the below value, then the keyboard
          will not go into extract (fullscreen) mode. -->
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index 5cd995be9d58c746006972c98db941c745ebf4c9..228380da74cec7449742163eae4b4ce87f200a1d 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -44,13 +44,6 @@
     <!-- Label for "switch to phone symbols" key.  Must be short to fit on key! -->
     <string name="label_to_phone_symbols_key">\uff0a\uff03</string>
 
-    <!-- Character for candidate divider (BOX DRAWINGS LIGHT VERTICAL) -->
-    <string name="label_candidate_divider">\u2502</string>
-    <!-- Character for expand candidates pane (BLACK DOWN-POINTING TRIANGLE) -->
-    <string name="label_expand_candidates_pane">\u25bc</string>
-    <!-- Character for close candidates pane (BLACK UP-POINTING TRIANGLE) -->
-    <string name="label_close_candidates_pane">\u25b2</string>
-
     <!--  Always show the suggestion strip -->
     <string name="prefs_suggestion_visibility_show_value">0</string>
     <!--  Show the suggestion strip only on portrait mode -->
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 2a3d705b0758992eb55f4c5a3e7d5a817dd3b24b..fa80519f7f0eb8f91fad02461d2aa23be553c542 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -99,11 +99,11 @@
     <string name="auto_correction_summary">Spacebar and punctuation automatically correct mistyped words</string>
     <!-- Option to disable auto correction. [CHAR LIMIT=20] -->
     <string name="auto_correction_threshold_mode_off">Off</string>
-    <!-- Option to suggest auto correction candidates modestly. Auto-corrects only to a word which has small edit distance from typed word. [CHAR LIMIT=20] -->
+    <!-- Option to suggest auto correction suggestions modestly. Auto-corrects only to a word which has small edit distance from typed word. [CHAR LIMIT=20] -->
     <string name="auto_correction_threshold_mode_modest">Modest</string>
-    <!-- Option to suggest auto correction candidates aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] -->
+    <!-- Option to suggest auto correction suggestions aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] -->
     <string name="auto_correction_threshold_mode_aggeressive">Aggressive</string>
-    <!-- Option to suggest auto correction candidates very aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] -->
+    <!-- Option to suggest auto correction suggestions very aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] -->
     <string name="auto_correction_threshold_mode_very_aggeressive">Very aggressive</string>
 
     <!-- Option to enable bigram correction -->
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 4cc2a530664f6c58eb256db79e6b3942e865018e..17b3d14abf01d27f9e632682a0ae699d9e23d389 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -88,21 +88,21 @@
         <item name="android:background">@drawable/keyboard_suggest_strip</item>
     </style>
     <style name="SuggestionBackgroundStyle">
-        <item name="android:background">@drawable/btn_candidate</item>
+        <item name="android:background">@drawable/btn_suggestion</item>
     </style>
     <style name="SuggestionPreviewBackgroundStyle">
-        <item name="android:background">@drawable/candidate_feedback_background</item>
+        <item name="android:background">@drawable/suggestion_feedback_background</item>
     </style>
     <style
-        name="CandidateViewStyle"
+        name="SuggestionsViewStyle"
         parent="SuggestionsStripBackgroundStyle"
     >
         <item name="suggestionStripOption">autoCorrectBold</item>
         <item name="colorTypedWord">#FFFFFFFF</item>
         <item name="colorAutoCorrect">#FFFCAE00</item>
         <item name="colorSuggested">#FFFCAE00</item>
-        <item name="candidateCountInStrip">@integer/candidate_count_in_strip</item>
-        <item name="centerCandidatePercentile">@integer/center_candidate_percentile</item>
+        <item name="suggestionsCountInStrip">@integer/suggestions_count_in_strip</item>
+        <item name="centerSuggestionPercentile">@integer/center_suggestion_percentile</item>
     </style>
     <!-- Theme "Basic high contrast" -->
     <style
@@ -233,7 +233,7 @@
         <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
     </style>
     <style name="SuggestionBackgroundStyle.IceCreamSandwich">
-        <item name="android:background">@drawable/btn_candidate_ics</item>
+        <item name="android:background">@drawable/btn_suggestion_ics</item>
     </style>
     <style
         name="SuggestionPreviewBackgroundStyle.IceCreamSandwich"
@@ -246,15 +246,15 @@
     >
     </style>
     <style
-        name="CandidateViewStyle.IceCreamSandwich"
+        name="SuggestionsViewStyle.IceCreamSandwich"
         parent="SuggestionsStripBackgroundStyle.IceCreamSandwich"
     >
         <item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item>
         <item name="colorTypedWord">#FFBCBEC0</item>
         <item name="colorAutoCorrect">#FF0099CC</item>
         <item name="colorSuggested">#FFA7A9AC</item>
-        <item name="candidateCountInStrip">@integer/candidate_count_in_strip</item>
-        <item name="centerCandidatePercentile">@integer/center_candidate_percentile</item>
+        <item name="suggestionsCountInStrip">@integer/suggestions_count_in_strip</item>
+        <item name="centerSuggestionPercentile">@integer/center_suggestion_percentile</item>
     </style>
     <style name="MiniKeyboardAnimation">
         <item name="android:windowEnterAnimation">@anim/mini_keyboard_fadein</item>
diff --git a/java/res/values/themes-basic-highcontrast.xml b/java/res/values/themes-basic-highcontrast.xml
index 51bf2f1d26f5199965db30b607ceb7d58abf4c40..ee41093268597c5e958397fc39307f17b14c8e1d 100644
--- a/java/res/values/themes-basic-highcontrast.xml
+++ b/java/res/values/themes-basic-highcontrast.xml
@@ -25,6 +25,6 @@
         <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
-        <item name="candidateViewStyle">@style/CandidateViewStyle</item>
+        <item name="suggestionsViewStyle">@style/SuggestionsViewStyle</item>
     </style>
 </resources>
diff --git a/java/res/values/themes-basic.xml b/java/res/values/themes-basic.xml
index 7288dbacbd023e295ece4eff85914d0a09dc2f5d..ff7f9ed357b46f4c297b20550599e2f91bc236f7 100644
--- a/java/res/values/themes-basic.xml
+++ b/java/res/values/themes-basic.xml
@@ -25,6 +25,6 @@
         <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
-        <item name="candidateViewStyle">@style/CandidateViewStyle</item>
+        <item name="suggestionsViewStyle">@style/SuggestionsViewStyle</item>
     </style>
 </resources>
diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml
index 5b62378f65aed53476cf0d7ec0e025a662b5d158..af91c3bedfade01f1a2edf8103f50cc971d5020b 100644
--- a/java/res/values/themes-gingerbread.xml
+++ b/java/res/values/themes-gingerbread.xml
@@ -25,6 +25,6 @@
         <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
-        <item name="candidateViewStyle">@style/CandidateViewStyle</item>
+        <item name="suggestionsViewStyle">@style/SuggestionsViewStyle</item>
     </style>
 </resources>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 597d87b4c1e2f0577848e1ed764b55002d98b2b3..341afcc5329b7395ea5bb258e02a05d8671ca6a5 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -25,6 +25,6 @@
         <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle.IceCreamSandwich</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.IceCreamSandwich</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle.IceCreamSandwich</item>
-        <item name="candidateViewStyle">@style/CandidateViewStyle.IceCreamSandwich</item>
+        <item name="suggestionsViewStyle">@style/SuggestionsViewStyle.IceCreamSandwich</item>
     </style>
 </resources>
diff --git a/java/res/values/themes-stone-bold.xml b/java/res/values/themes-stone-bold.xml
index ff7107d3288d224343498c1a01b5cb85698cad99..915f2263e606031f5afdf3aa39437d5360699bef 100644
--- a/java/res/values/themes-stone-bold.xml
+++ b/java/res/values/themes-stone-bold.xml
@@ -25,6 +25,6 @@
         <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
             <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
-        <item name="candidateViewStyle">@style/CandidateViewStyle</item>
+        <item name="suggestionsViewStyle">@style/SuggestionsViewStyle</item>
     </style>
 </resources>
diff --git a/java/res/values/themes-stone.xml b/java/res/values/themes-stone.xml
index 35390d1116b0b9ed35e10f6f68a3a0c185a38090..6d5b9dbaec0d10f3b0a20220eed087127d787cb0 100644
--- a/java/res/values/themes-stone.xml
+++ b/java/res/values/themes-stone.xml
@@ -25,6 +25,6 @@
         <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
-        <item name="candidateViewStyle">@style/CandidateViewStyle</item>
+        <item name="suggestionsViewStyle">@style/SuggestionsViewStyle</item>
     </style>
 </resources>
diff --git a/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java b/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java
index bf2512d7b03a384f1f16d916cb4c3dc872b196bb..75efa52f2bbfc08f0c46969bc6a9db904e76beb2 100644
--- a/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java
+++ b/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java
@@ -16,28 +16,28 @@
 
 package com.android.inputmethod.deprecated.recorrection;
 
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.text.TextUtils;
+import android.view.inputmethod.ExtractedText;
+import android.view.inputmethod.ExtractedTextRequest;
+import android.view.inputmethod.InputConnection;
+
 import com.android.inputmethod.compat.InputConnectionCompatUtils;
 import com.android.inputmethod.compat.SuggestionSpanUtils;
 import com.android.inputmethod.deprecated.VoiceProxy;
 import com.android.inputmethod.keyboard.KeyboardSwitcher;
 import com.android.inputmethod.latin.AutoCorrection;
-import com.android.inputmethod.latin.CandidateView;
 import com.android.inputmethod.latin.EditingUtils;
 import com.android.inputmethod.latin.LatinIME;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.Settings;
 import com.android.inputmethod.latin.Suggest;
 import com.android.inputmethod.latin.SuggestedWords;
+import com.android.inputmethod.latin.SuggestionsView;
 import com.android.inputmethod.latin.TextEntryState;
 import com.android.inputmethod.latin.WordComposer;
 
-import android.content.SharedPreferences;
-import android.content.res.Resources;
-import android.text.TextUtils;
-import android.view.inputmethod.ExtractedText;
-import android.view.inputmethod.ExtractedTextRequest;
-import android.view.inputmethod.InputConnection;
-
 import java.util.ArrayList;
 
 /**
@@ -107,7 +107,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL
     }
 
     public void updateRecorrectionSelection(KeyboardSwitcher keyboardSwitcher,
-            CandidateView candidateView, int candidatesStart, int candidatesEnd,
+            SuggestionsView suggestionsView, int candidatesStart, int candidatesEnd,
             int newSelStart, int newSelEnd, int oldSelStart, int lastSelectionStart,
             int lastSelectionEnd, boolean hasUncommittedTypedChars) {
         if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED || !mRecorrectionEnabled) return;
@@ -127,7 +127,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL
                 // If showing the "touch again to save" hint, do not replace it. Else,
                 // show the bigrams if we are at the end of the text, punctuation
                 // otherwise.
-                if (candidateView != null && !candidateView.isShowingAddToDictionaryHint()) {
+                if (suggestionsView != null && !suggestionsView.isShowingAddToDictionaryHint()) {
                     InputConnection ic = mService.getCurrentInputConnection();
                     if (null == ic || !TextUtils.isEmpty(ic.getTextAfterCursor(1, 0))) {
                         if (!mService.isShowingPunctuationList()) {
@@ -219,13 +219,13 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL
     }
 
     public void fetchAndDisplayRecorrectionSuggestions(VoiceProxy voiceProxy,
-            CandidateView candidateView, Suggest suggest, KeyboardSwitcher keyboardSwitcher,
+            SuggestionsView suggestionsView, Suggest suggest, KeyboardSwitcher keyboardSwitcher,
             WordComposer word, boolean hasUncommittedTypedChars, int lastSelectionStart,
             int lastSelectionEnd, String wordSeparators) {
         if (!InputConnectionCompatUtils.RECORRECTION_SUPPORTED) return;
         if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED || !mRecorrectionEnabled) return;
         voiceProxy.setShowingVoiceSuggestions(false);
-        if (candidateView != null && candidateView.isShowingAddToDictionaryHint()) {
+        if (suggestionsView != null && suggestionsView.isShowingAddToDictionaryHint()) {
             return;
         }
         InputConnection ic = mService.getCurrentInputConnection();
@@ -260,7 +260,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL
         if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED) return;
         if (force || TextEntryState.isRecorrecting()) {
             TextEntryState.onAbortRecorrection();
-            mService.setCandidatesViewShown(mService.isCandidateStripVisible());
+            mService.setCandidatesViewShown(mService.isSuggestionsStripVisible());
             mService.getCurrentInputConnection().finishComposingText();
             mService.clearSuggestions();
         }
diff --git a/java/src/com/android/inputmethod/latin/AutoCorrection.java b/java/src/com/android/inputmethod/latin/AutoCorrection.java
index d3119792cd3676137113dae54f438aa651d9ecd4..e6ae2c5c7dd4901a015ce7f6221e58ff2a66e20b 100644
--- a/java/src/com/android/inputmethod/latin/AutoCorrection.java
+++ b/java/src/com/android/inputmethod/latin/AutoCorrection.java
@@ -119,15 +119,15 @@ public class AutoCorrection {
         if (wordComposer.size() > 1 && (correctionMode == Suggest.CORRECTION_FULL
                 || correctionMode == Suggest.CORRECTION_FULL_BIGRAM)
                 && typedWord != null && suggestions.size() > 0 && sortedScores.length > 0) {
-            final CharSequence autoCorrectionCandidate = suggestions.get(0);
-            final int autoCorrectionCandidateScore = sortedScores[0];
+            final CharSequence autoCorrectionSuggestion = suggestions.get(0);
+            final int autoCorrectionSuggestionScore = sortedScores[0];
             // TODO: when the normalized score of the first suggestion is nearly equals to
             //       the normalized score of the second suggestion, behave less aggressive.
             mNormalizedScore = Utils.calcNormalizedScore(
-                    typedWord,autoCorrectionCandidate, autoCorrectionCandidateScore);
+                    typedWord,autoCorrectionSuggestion, autoCorrectionSuggestionScore);
             if (DBG) {
-                Log.d(TAG, "Normalized " + typedWord + "," + autoCorrectionCandidate + ","
-                        + autoCorrectionCandidateScore + ", " + mNormalizedScore
+                Log.d(TAG, "Normalized " + typedWord + "," + autoCorrectionSuggestion + ","
+                        + autoCorrectionSuggestionScore + ", " + mNormalizedScore
                         + "(" + autoCorrectionThreshold + ")");
             }
             if (mNormalizedScore >= autoCorrectionThreshold) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index da6c22107d3db9692cb9f4c03145e44f1020ce63..85363fd36416d3e26abac74fc0c89c66abb4a95c 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -77,7 +77,7 @@ import java.util.Locale;
  * Input method implementation for Qwerty'ish keyboard.
  */
 public class LatinIME extends InputMethodServiceCompatWrapper implements KeyboardActionListener,
-        CandidateView.Listener {
+        SuggestionsView.Listener {
     private static final String TAG = LatinIME.class.getSimpleName();
     private static final boolean PERF_DEBUG = false;
     private static final boolean TRACE = false;
@@ -157,9 +157,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
     private Settings.Values mSettingsValues;
 
-    private View mCandidateViewContainer;
-    private int mCandidateStripHeight;
-    private CandidateView mCandidateView;
+    private View mSuggestionsContainer;
+    private int mSuggestionsStripHeight;
+    private SuggestionsView mSuggestionsView;
     private Suggest mSuggest;
     private CompletionInfo[] mApplicationSpecifiedCompletions;
 
@@ -254,7 +254,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
                 break;
             case MSG_UPDATE_OLD_SUGGESTIONS:
                 latinIme.mRecorrection.fetchAndDisplayRecorrectionSuggestions(
-                        latinIme.mVoiceProxy, latinIme.mCandidateView,
+                        latinIme.mVoiceProxy, latinIme.mSuggestionsView,
                         latinIme.mSuggest, latinIme.mKeyboardSwitcher, latinIme.mWordComposer,
                         latinIme.mHasUncommittedTypedChars, latinIme.mLastSelectionStart,
                         latinIme.mLastSelectionEnd, latinIme.mSettingsValues.mWordSeparators);
@@ -607,11 +607,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     @Override
     public void setInputView(View view) {
         super.setInputView(view);
-        mCandidateViewContainer = view.findViewById(R.id.candidates_container);
-        mCandidateView = (CandidateView) view.findViewById(R.id.candidates);
-        if (mCandidateView != null)
-            mCandidateView.setListener(this, view);
-        mCandidateStripHeight = (int)mResources.getDimension(R.dimen.candidate_strip_height);
+        mSuggestionsContainer = view.findViewById(R.id.suggestions_container);
+        mSuggestionsView = (SuggestionsView) view.findViewById(R.id.suggestions_view);
+        if (mSuggestionsView != null)
+            mSuggestionsView.setListener(this, view);
+        mSuggestionsStripHeight = (int)mResources.getDimension(R.dimen.suggestions_strip_height);
     }
 
     @Override
@@ -678,9 +678,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             switcher.loadKeyboard(attribute, mSettingsValues);
         }
 
-        if (mCandidateView != null)
-            mCandidateView.clear();
-        setSuggestionStripShownInternal(isCandidateStripVisible(), /* needsInputViewShown */ false);
+        if (mSuggestionsView != null)
+            mSuggestionsView.clear();
+        setSuggestionStripShownInternal(
+                isSuggestionsStripVisible(), /* needsInputViewShown */ false);
         // Delay updating suggestions because keyboard input view may not be shown at this point.
         mHandler.postUpdateSuggestions();
 
@@ -708,7 +709,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
         if ((inputType & InputType.TYPE_MASK_CLASS) == InputType.TYPE_CLASS_TEXT) {
             mIsSettingsSuggestionStripOn = true;
-            // Make sure that passwords are not displayed in candidate view
+            // Make sure that passwords are not displayed in {@link SuggestionsView}.
             if (InputTypeCompatUtils.isPasswordInputType(inputType)
                     || InputTypeCompatUtils.isVisiblePasswordInputType(inputType)) {
                 mIsSettingsSuggestionStripOn = false;
@@ -819,7 +820,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
                 && (selectionChanged || candidatesCleared)) {
             if (candidatesCleared) {
                 // If the composing span has been cleared, save the typed word in the history for
-                // recorrection before we reset the candidate strip.  Then, we'll be able to show
+                // recorrection before we reset the suggestions strip.  Then, we'll be able to show
                 // suggestions for recorrection right away.
                 mRecorrection.saveRecorrectionSuggestion(mWordComposer, mComposingStringBuilder);
             }
@@ -853,7 +854,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         mLastSelectionEnd = newSelEnd;
 
         mRecorrection.updateRecorrectionSelection(mKeyboardSwitcher,
-                mCandidateView, candidatesStart, candidatesEnd, newSelStart,
+                mSuggestionsView, candidatesStart, candidatesEnd, newSelStart,
                 newSelEnd, oldSelStart, mLastSelectionStart,
                 mLastSelectionEnd, mHasUncommittedTypedChars);
     }
@@ -866,10 +867,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     /**
      * This is called when the user has clicked on the extracted text view,
      * when running in fullscreen mode.  The default implementation hides
-     * the candidates view when this happens, but only if the extracted text
+     * the suggestions view when this happens, but only if the extracted text
      * editor has a vertical scroll bar because its text doesn't fit.
      * Here we override the behavior due to the possibility that a re-correction could
-     * cause the candidate strip to disappear and re-appear.
+     * cause the suggestions strip to disappear and re-appear.
      */
     @Override
     public void onExtractedTextClicked() {
@@ -881,11 +882,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     /**
      * This is called when the user has performed a cursor movement in the
      * extracted text view, when it is running in fullscreen mode.  The default
-     * implementation hides the candidates view when a vertical movement
+     * implementation hides the suggestions view when a vertical movement
      * happens, but only if the extracted text editor has a vertical scroll bar
      * because its text doesn't fit.
      * Here we override the behavior due to the possibility that a re-correction could
-     * cause the candidate strip to disappear and re-appear.
+     * cause the suggestions strip to disappear and re-appear.
      */
     @Override
     public void onExtractedCursorMovement(int dx, int dy) {
@@ -938,20 +939,20 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     }
 
     private void setSuggestionStripShownInternal(boolean shown, boolean needsInputViewShown) {
-        // TODO: Modify this if we support candidates with hard keyboard
-        if (onEvaluateInputViewShown() && mCandidateViewContainer != null) {
-            final boolean shouldShowCandidates = shown
+        // TODO: Modify this if we support suggestions with hard keyboard
+        if (onEvaluateInputViewShown() && mSuggestionsContainer != null) {
+            final boolean shouldShowSuggestions = shown
                     && (needsInputViewShown ? mKeyboardSwitcher.isInputViewShown() : true);
             if (isFullscreenMode()) {
                 // No need to have extra space to show the key preview.
-                mCandidateViewContainer.setMinimumHeight(0);
-                mCandidateViewContainer.setVisibility(
-                        shouldShowCandidates ? View.VISIBLE : View.GONE);
+                mSuggestionsContainer.setMinimumHeight(0);
+                mSuggestionsContainer.setVisibility(
+                        shouldShowSuggestions ? View.VISIBLE : View.GONE);
             } else {
                 // We must control the visibility of the suggestion strip in order to avoid clipped
                 // key previews, even when we don't show the suggestion strip.
-                mCandidateViewContainer.setVisibility(
-                        shouldShowCandidates ? View.VISIBLE : View.INVISIBLE);
+                mSuggestionsContainer.setVisibility(
+                        shouldShowSuggestions ? View.VISIBLE : View.INVISIBLE);
             }
         }
     }
@@ -964,14 +965,14 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     public void onComputeInsets(InputMethodService.Insets outInsets) {
         super.onComputeInsets(outInsets);
         final KeyboardView inputView = mKeyboardSwitcher.getKeyboardView();
-        if (inputView == null || mCandidateViewContainer == null)
+        if (inputView == null || mSuggestionsContainer == null)
             return;
-        final int containerHeight = mCandidateViewContainer.getHeight();
+        final int containerHeight = mSuggestionsContainer.getHeight();
         int touchY = containerHeight;
         // Need to set touchable region only if input view is being shown
         if (mKeyboardSwitcher.isInputViewShown()) {
-            if (mCandidateViewContainer.getVisibility() == View.VISIBLE) {
-                touchY -= mCandidateStripHeight;
+            if (mSuggestionsContainer.getVisibility() == View.VISIBLE) {
+                touchY -= mSuggestionsStripHeight;
             }
             final int touchWidth = inputView.getWidth();
             final int touchHeight = inputView.getHeight() + containerHeight
@@ -1321,7 +1322,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) {
             ic.deleteSurroundingText(mEnteredText.length(), 0);
         } else if (deleteChar) {
-            if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
+            if (mSuggestionsView != null && mSuggestionsView.dismissAddToDictionaryHint()) {
                 // Go back to the suggestion mode if the user canceled the
                 // "Touch again to save".
                 // NOTE: In gerenal, we don't revert the word when backspacing
@@ -1440,7 +1441,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         mVoiceProxy.handleSeparator();
 
         // Should dismiss the "Touch again to save" message when handling separator
-        if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
+        if (mSuggestionsView != null && mSuggestionsView.dismissAddToDictionaryHint()) {
             mHandler.cancelUpdateBigramPredictions();
             mHandler.postUpdateSuggestions();
         }
@@ -1491,8 +1492,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             if (!TextUtils.isEmpty(typedWord) && !typedWord.equals(mBestWord)) {
                 InputConnectionCompatUtils.commitCorrection(
                         ic, mLastSelectionEnd - typedWord.length(), typedWord, mBestWord);
-                if (mCandidateView != null)
-                    mCandidateView.onAutoCorrectionInverted(mBestWord);
+                if (mSuggestionsView != null)
+                    mSuggestionsView.onAutoCorrectionInverted(mBestWord);
             }
         }
         if (Keyboard.CODE_SPACE == primaryCode) {
@@ -1527,7 +1528,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     }
 
     public boolean isShowingPunctuationList() {
-        return mSettingsValues.mSuggestPuncList == mCandidateView.getSuggestions();
+        return mSettingsValues.mSuggestPuncList == mSuggestionsView.getSuggestions();
     }
 
     public boolean isShowingSuggestionsStrip() {
@@ -1536,10 +1537,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
                         && mDisplayOrientation == Configuration.ORIENTATION_PORTRAIT);
     }
 
-    public boolean isCandidateStripVisible() {
-        if (mCandidateView == null)
+    public boolean isSuggestionsStripVisible() {
+        if (mSuggestionsView == null)
             return false;
-        if (mCandidateView.isShowingAddToDictionaryHint() || TextEntryState.isRecorrecting())
+        if (mSuggestionsView.isShowingAddToDictionaryHint() || TextEntryState.isRecorrecting())
             return true;
         if (!isShowingSuggestionsStrip())
             return false;
@@ -1561,7 +1562,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             }
             setInputView(v);
         }
-        setSuggestionStripShown(isCandidateStripVisible());
+        setSuggestionStripShown(isSuggestionsStripVisible());
         updateInputViewShown();
         mHandler.postUpdateSuggestions();
     }
@@ -1571,8 +1572,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
     }
 
     public void setSuggestions(SuggestedWords words) {
-        if (mCandidateView != null) {
-            mCandidateView.setSuggestions(words);
+        if (mSuggestionsView != null) {
+            mSuggestionsView.setSuggestions(words);
             mKeyboardSwitcher.onAutoCorrectionStateChanged(
                     words.hasWordAboveAutoCorrectionScoreThreshold());
         }
@@ -1625,11 +1626,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         // length == 1).
         if (typedWord != null) {
             if (builder.size() > 1 || typedWord.length() == 1 || typedWordValid
-                    || mCandidateView.isShowingAddToDictionaryHint()) {
+                    || mSuggestionsView.isShowingAddToDictionaryHint()) {
                 builder.setTypedWordValid(typedWordValid).setHasMinimalSuggestion(
                         autoCorrectionAvailable);
             } else {
-                final SuggestedWords previousSuggestions = mCandidateView.getSuggestions();
+                final SuggestedWords previousSuggestions = mSuggestionsView.getSuggestions();
                 if (previousSuggestions == mSettingsValues.mSuggestPuncList)
                     return;
                 builder.addTypedWordAndPreviousSuggestions(typedWord, previousSuggestions);
@@ -1651,11 +1652,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         } else {
             mBestWord = null;
         }
-        setSuggestionStripShown(isCandidateStripVisible());
+        setSuggestionStripShown(isSuggestionsStripVisible());
     }
 
     private boolean pickDefaultSuggestion(int separatorCode) {
-        // Complete any pending candidate query first
+        // Complete any pending suggestions query first
         if (mHandler.hasPendingUpdateSuggestions()) {
             mHandler.cancelUpdateSuggestions();
             updateSuggestions();
@@ -1674,7 +1675,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
     @Override
     public void pickSuggestionManually(int index, CharSequence suggestion) {
-        SuggestedWords suggestions = mCandidateView.getSuggestions();
+        SuggestedWords suggestions = mSuggestionsView.getSuggestions();
         mVoiceProxy.flushAndLogAllTextModificationCounters(index, suggestion,
                 mSettingsValues.mWordSeparators);
 
@@ -1690,8 +1691,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
                 ic.commitCompletion(completionInfo);
             }
             mCommittedLength = suggestion.length();
-            if (mCandidateView != null) {
-                mCandidateView.clear();
+            if (mSuggestionsView != null) {
+                mSuggestionsView.clear();
             }
             mKeyboardSwitcher.updateShiftState();
             if (ic != null) {
@@ -1786,7 +1787,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         }
         if (showingAddToDictionaryHint) {
             if (mIsUserDictionaryAvaliable) {
-                mCandidateView.showAddToDictionaryHint(suggestion);
+                mSuggestionsView.showAddToDictionaryHint(suggestion);
             } else {
                 mHandler.postUpdateSuggestions();
             }
@@ -1806,7 +1807,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         final InputConnection ic = getCurrentInputConnection();
         if (ic != null) {
             mVoiceProxy.rememberReplacedWord(bestWord, mSettingsValues.mWordSeparators);
-            SuggestedWords suggestedWords = mCandidateView.getSuggestions();
+            SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
             ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
                     this, bestWord, suggestedWords), 1);
         }
@@ -1842,7 +1843,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
     public void setPunctuationSuggestions() {
         setSuggestions(mSettingsValues.mSuggestPuncList);
-        setSuggestionStripShown(isCandidateStripVisible());
+        setSuggestionStripShown(isSuggestionsStripVisible());
     }
 
     private void addToUserUnigramAndBigramDictionaries(CharSequence suggestion,
diff --git a/java/src/com/android/inputmethod/latin/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/MoreSuggestions.java
index 0446fb2a87ad426dfe41199253be8c711a938ad3..a9e75b7b3478ee988423f3aca5edbae60f183789 100644
--- a/java/src/com/android/inputmethod/latin/MoreSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/MoreSuggestions.java
@@ -43,10 +43,10 @@ public class MoreSuggestions extends Keyboard {
         private int mToPos;
 
         public static class MoreSuggestionsParam extends KeyboardParams {
-            private final int[] mWidths = new int[CandidateView.MAX_SUGGESTIONS];
-            private final int[] mRowNumbers = new int[CandidateView.MAX_SUGGESTIONS];
-            private final int[] mColumnOrders = new int[CandidateView.MAX_SUGGESTIONS];
-            private final int[] mNumColumnsInRow = new int[CandidateView.MAX_SUGGESTIONS];
+            private final int[] mWidths = new int[SuggestionsView.MAX_SUGGESTIONS];
+            private final int[] mRowNumbers = new int[SuggestionsView.MAX_SUGGESTIONS];
+            private final int[] mColumnOrders = new int[SuggestionsView.MAX_SUGGESTIONS];
+            private final int[] mNumColumnsInRow = new int[SuggestionsView.MAX_SUGGESTIONS];
             private static final int MAX_COLUMNS_IN_ROW = 3;
             private int mNumRows;
 
@@ -60,7 +60,7 @@ public class MoreSuggestions extends Keyboard {
 
                 int row = 0;
                 int pos = fromPos, rowStartPos = fromPos;
-                final int size = Math.min(suggestions.size(), CandidateView.MAX_SUGGESTIONS);
+                final int size = Math.min(suggestions.size(), SuggestionsView.MAX_SUGGESTIONS);
                 while (pos < size) {
                     final CharSequence word = suggestions.getWord(pos);
                     // TODO: Should take care of text x-scaling.
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/SuggestionsView.java
similarity index 82%
rename from java/src/com/android/inputmethod/latin/CandidateView.java
rename to java/src/com/android/inputmethod/latin/SuggestionsView.java
index fe48f0bc18899a999277360180cedbf6a1cb86cf..617d7f1f2a73478e27646d42192c3be5845aa0a7 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/SuggestionsView.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * 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
@@ -57,7 +57,7 @@ import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 import java.util.ArrayList;
 import java.util.List;
 
-public class CandidateView extends LinearLayout implements OnClickListener, OnLongClickListener {
+public class SuggestionsView extends LinearLayout implements OnClickListener, OnLongClickListener {
     public interface Listener {
         public boolean addWordToDictionary(String word);
         public void pickSuggestionManually(int index, CharSequence word);
@@ -68,8 +68,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
     private static final boolean DBG = LatinImeLogger.sDBG;
 
-    private final ViewGroup mCandidatesPlacer;
-    private final ViewGroup mCandidatesStrip;
+    private final ViewGroup mSuggestionsPlacer;
+    private final ViewGroup mSuggestionsStrip;
     private View mKeyboardView;
 
     private final View mMoreSuggestionsContainer;
@@ -93,26 +93,26 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
     private final UiHandler mHandler = new UiHandler(this);
 
-    private static class UiHandler extends StaticInnerHandlerWrapper<CandidateView> {
+    private static class UiHandler extends StaticInnerHandlerWrapper<SuggestionsView> {
         private static final int MSG_HIDE_PREVIEW = 0;
         private static final int MSG_UPDATE_SUGGESTION = 1;
 
         private static final long DELAY_HIDE_PREVIEW = 1300;
         private static final long DELAY_UPDATE_SUGGESTION = 300;
 
-        public UiHandler(CandidateView outerInstance) {
+        public UiHandler(SuggestionsView outerInstance) {
             super(outerInstance);
         }
 
         @Override
         public void dispatchMessage(Message msg) {
-            final CandidateView candidateView = getOuterInstance();
+            final SuggestionsView suggestionsView = getOuterInstance();
             switch (msg.what) {
             case MSG_HIDE_PREVIEW:
-                candidateView.hidePreview();
+                suggestionsView.hidePreview();
                 break;
             case MSG_UPDATE_SUGGESTION:
-                candidateView.updateSuggestions();
+                suggestionsView.updateSuggestions();
                 break;
             }
         }
@@ -142,16 +142,16 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         }
     }
 
-    private static class CandidateViewParams {
+    private static class SuggestionsViewParams {
         public final int mPadding;
         public final int mDividerWidth;
-        public final int mCandidateStripHeight;
+        public final int mSuggestionsStripHeight;
 
         protected final List<TextView> mWords;
         protected final List<View> mDividers;
         protected final List<TextView> mInfos;
 
-        protected CandidateViewParams(List<TextView> words, List<View> dividers,
+        protected SuggestionsViewParams(List<TextView> words, List<View> dividers,
                 List<TextView> infos) {
             mWords = words;
             mDividers = dividers;
@@ -165,22 +165,22 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             mDividerWidth = divider.getMeasuredWidth();
 
             final Resources res = word.getResources();
-            mCandidateStripHeight = res.getDimensionPixelSize(R.dimen.candidate_strip_height);
+            mSuggestionsStripHeight = res.getDimensionPixelSize(R.dimen.suggestions_strip_height);
         }
     }
 
-    private static class SuggestionsStripParams extends CandidateViewParams {
-        private static final int DEFAULT_CANDIDATE_COUNT_IN_STRIP = 3;
-        private static final int DEFAULT_CENTER_CANDIDATE_PERCENTILE = 40;
+    private static class SuggestionsStripParams extends SuggestionsViewParams {
+        private static final int DEFAULT_SUGGESTIONS_COUNT_IN_STRIP = 3;
+        private static final int DEFAULT_CENTER_SUGGESTION_PERCENTILE = 40;
         private static final int PUNCTUATIONS_IN_STRIP = 6;
 
         private final int mColorTypedWord;
         private final int mColorAutoCorrect;
-        private final int mColorSuggestedCandidate;
-        public final int mCandidateCountInStrip;
-        private final float mCenterCandidateWeight;
-        private final int mCenterCandidateIndex;
-        private final Drawable mMoreCandidateHint;
+        private final int mColorSuggested;
+        public final int mSuggestionsCountInStrip;
+        private final float mCenterSuggestionWeight;
+        private final int mCenterSuggestionIndex;
+        private final Drawable mMoreSuggestionsHint;
 
         private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD);
         private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
@@ -205,33 +205,33 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
                 List<TextView> words, List<View> dividers, List<TextView> infos) {
             super(words, dividers, infos);
             final TypedArray a = context.obtainStyledAttributes(
-                    attrs, R.styleable.CandidateView, defStyle, R.style.CandidateViewStyle);
-            mSuggestionStripOption = a.getInt(R.styleable.CandidateView_suggestionStripOption, 0);
-            mColorTypedWord = a.getColor(R.styleable.CandidateView_colorTypedWord, 0);
-            mColorAutoCorrect = a.getColor(R.styleable.CandidateView_colorAutoCorrect, 0);
-            mColorSuggestedCandidate = a.getColor(R.styleable.CandidateView_colorSuggested, 0);
-            mCandidateCountInStrip = a.getInt(
-                    R.styleable.CandidateView_candidateCountInStrip,
-                    DEFAULT_CANDIDATE_COUNT_IN_STRIP);
-            mCenterCandidateWeight = a.getInt(
-                    R.styleable.CandidateView_centerCandidatePercentile,
-                    DEFAULT_CENTER_CANDIDATE_PERCENTILE) / 100.0f;
+                    attrs, R.styleable.SuggestionsView, defStyle, R.style.SuggestionsViewStyle);
+            mSuggestionStripOption = a.getInt(R.styleable.SuggestionsView_suggestionStripOption, 0);
+            mColorTypedWord = a.getColor(R.styleable.SuggestionsView_colorTypedWord, 0);
+            mColorAutoCorrect = a.getColor(R.styleable.SuggestionsView_colorAutoCorrect, 0);
+            mColorSuggested = a.getColor(R.styleable.SuggestionsView_colorSuggested, 0);
+            mSuggestionsCountInStrip = a.getInt(
+                    R.styleable.SuggestionsView_suggestionsCountInStrip,
+                    DEFAULT_SUGGESTIONS_COUNT_IN_STRIP);
+            mCenterSuggestionWeight = a.getInt(
+                    R.styleable.SuggestionsView_centerSuggestionPercentile,
+                    DEFAULT_CENTER_SUGGESTION_PERCENTILE) / 100.0f;
             a.recycle();
 
-            mCenterCandidateIndex = mCandidateCountInStrip / 2;
+            mCenterSuggestionIndex = mSuggestionsCountInStrip / 2;
             final Resources res = context.getResources();
-            mMoreCandidateHint = res.getDrawable(R.drawable.more_suggestions_hint);
+            mMoreSuggestionsHint = res.getDrawable(R.drawable.more_suggestions_hint);
 
             mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorTypedWord ^ 0x00ffffff);
             mInvertedBackgroundColorSpan = new BackgroundColorSpan(mColorTypedWord);
 
             final LayoutInflater inflater = LayoutInflater.from(context);
-            mWordToSaveView = (TextView)inflater.inflate(R.layout.candidate_word, null);
-            mHintToSaveView = (TextView)inflater.inflate(R.layout.candidate_word, null);
+            mWordToSaveView = (TextView)inflater.inflate(R.layout.suggestion_word, null);
+            mHintToSaveView = (TextView)inflater.inflate(R.layout.suggestion_word, null);
             mHintToSaveText = context.getText(R.string.hint_add_to_dictionary);
         }
 
-        private CharSequence getStyledCandidateWord(SuggestedWords suggestions, int pos) {
+        private CharSequence getStyledSuggestionWord(SuggestedWords suggestions, int pos) {
             final CharSequence word = suggestions.getWord(pos);
             final boolean isAutoCorrect = pos == 1 && willAutoCorrect(suggestions);
             final boolean isTypedWordValid = pos == 0 && suggestions.mTypedWordValid;
@@ -259,24 +259,24 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             // TODO: This works for 3 suggestions. Revisit this algorithm when there are 5 or more
             // suggestions.
             final int centerPos = willAutoCorrect(suggestions) ? 1 : 0;
-            if (index == mCenterCandidateIndex) {
+            if (index == mCenterSuggestionIndex) {
                 return centerPos;
             } else if (index == centerPos) {
-                return mCenterCandidateIndex;
+                return mCenterSuggestionIndex;
             } else {
                 return index;
             }
         }
 
-        private int getCandidateTextColor(int index, SuggestedWords suggestions, int pos) {
+        private int getSuggestionTextColor(int index, SuggestedWords suggestions, int pos) {
             // TODO: Need to revisit this logic with bigram suggestions
-            final boolean isSuggestedCandidate = (pos != 0);
+            final boolean isSuggested = (pos != 0);
 
             final int color;
-            if (index == mCenterCandidateIndex && willAutoCorrect(suggestions)) {
+            if (index == mCenterSuggestionIndex && willAutoCorrect(suggestions)) {
                 color = mColorAutoCorrect;
-            } else if (isSuggestedCandidate) {
-                color = mColorSuggestedCandidate;
+            } else if (isSuggested) {
+                color = mColorSuggested;
             } else {
                 color = mColorTypedWord;
             }
@@ -312,7 +312,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
                 return;
             }
 
-            final int countInStrip = mCandidateCountInStrip;
+            final int countInStrip = mSuggestionsCountInStrip;
             setupTexts(suggestions, countInStrip);
             mMoreSuggestionsAvailable = (suggestions.size() > countInStrip);
             int x = 0;
@@ -321,34 +321,34 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
                 if (index != 0) {
                     final View divider = mDividers.get(pos);
-                    // Add divider if this isn't the left most suggestion in candidate strip.
+                    // Add divider if this isn't the left most suggestion in suggestions strip.
                     stripView.addView(divider);
                     x += divider.getMeasuredWidth();
                 }
 
                 final CharSequence styled = mTexts.get(pos);
                 final TextView word = mWords.get(pos);
-                if (index == mCenterCandidateIndex && mMoreSuggestionsAvailable) {
+                if (index == mCenterSuggestionIndex && mMoreSuggestionsAvailable) {
                     // TODO: This "more suggestions hint" should have nicely designed icon.
                     word.setCompoundDrawablesWithIntrinsicBounds(
-                            null, null, null, mMoreCandidateHint);
+                            null, null, null, mMoreSuggestionsHint);
                     // HACK: To align with other TextView that has no compound drawables.
-                    word.setCompoundDrawablePadding(-mMoreCandidateHint.getIntrinsicHeight());
+                    word.setCompoundDrawablePadding(-mMoreSuggestionsHint.getIntrinsicHeight());
                 } else {
                     word.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
                 }
 
-                // Disable this candidate if the suggestion is null or empty.
+                // Disable this suggestion if the suggestion is null or empty.
                 word.setEnabled(!TextUtils.isEmpty(styled));
-                word.setTextColor(getCandidateTextColor(index, suggestions, pos));
-                final int width = getCandidateWidth(index, stripWidth);
+                word.setTextColor(getSuggestionTextColor(index, suggestions, pos));
+                final int width = getSuggestionWidth(index, stripWidth);
                 final CharSequence text = getEllipsizedText(styled, width, word.getPaint());
                 final float scaleX = word.getTextScaleX();
                 word.setText(text); // TextView.setText() resets text scale x to 1.0.
                 word.setTextScaleX(scaleX);
                 stripView.addView(word);
                 setLayoutWeight(
-                        word, getCandidateWeight(index), ViewGroup.LayoutParams.MATCH_PARENT);
+                        word, getSuggestionWeight(index), ViewGroup.LayoutParams.MATCH_PARENT);
                 x += word.getMeasuredWidth();
 
                 if (DBG) {
@@ -368,19 +368,19 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             }
         }
 
-        private int getCandidateWidth(int index, int maxWidth) {
-            final int paddings = mPadding * mCandidateCountInStrip;
-            final int dividers = mDividerWidth * (mCandidateCountInStrip - 1);
+        private int getSuggestionWidth(int index, int maxWidth) {
+            final int paddings = mPadding * mSuggestionsCountInStrip;
+            final int dividers = mDividerWidth * (mSuggestionsCountInStrip - 1);
             final int availableWidth = maxWidth - paddings - dividers;
-            return (int)(availableWidth * getCandidateWeight(index));
+            return (int)(availableWidth * getSuggestionWeight(index));
         }
 
-        private float getCandidateWeight(int index) {
-            if (index == mCenterCandidateIndex) {
-                return mCenterCandidateWeight;
+        private float getSuggestionWeight(int index) {
+            if (index == mCenterSuggestionIndex) {
+                return mCenterSuggestionWeight;
             } else {
                 // TODO: Revisit this for cases of 5 or more suggestions
-                return (1.0f - mCenterCandidateWeight) / (mCandidateCountInStrip - 1);
+                return (1.0f - mCenterSuggestionWeight) / (mSuggestionsCountInStrip - 1);
             }
         }
 
@@ -388,7 +388,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             mTexts.clear();
             final int count = Math.min(suggestions.size(), countInStrip);
             for (int pos = 0; pos < count; pos++) {
-                final CharSequence styled = getStyledCandidateWord(suggestions, pos);
+                final CharSequence styled = getStyledSuggestionWord(suggestions, pos);
                 mTexts.add(styled);
             }
             for (int pos = count; pos < countInStrip; pos++) {
@@ -401,7 +401,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             final int countInStrip = Math.min(suggestions.size(), PUNCTUATIONS_IN_STRIP);
             for (int index = 0; index < countInStrip; index++) {
                 if (index != 0) {
-                    // Add divider if this isn't the left most suggestion in candidate strip.
+                    // Add divider if this isn't the left most suggestion in suggestions strip.
                     stripView.addView(mDividers.get(index));
                 }
 
@@ -413,7 +413,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
                 word.setTextScaleX(1.0f);
                 word.setCompoundDrawables(null, null, null, null);
                 stripView.addView(word);
-                setLayoutWeight(word, 1.0f, mCandidateStripHeight);
+                setLayoutWeight(word, 1.0f, mSuggestionsStripHeight);
             }
             mMoreSuggestionsAvailable = false;
         }
@@ -424,14 +424,14 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
             final TextView wordView = mWordToSaveView;
             wordView.setTextColor(mColorTypedWord);
-            final int wordWidth = (int)(width * mCenterCandidateWeight);
+            final int wordWidth = (int)(width * mCenterSuggestionWeight);
             final CharSequence text = getEllipsizedText(word, wordWidth, wordView.getPaint());
             final float wordScaleX = wordView.getTextScaleX();
             wordView.setTag(word);
             wordView.setText(text);
             wordView.setTextScaleX(wordScaleX);
             stripView.addView(wordView);
-            setLayoutWeight(wordView, mCenterCandidateWeight, ViewGroup.LayoutParams.MATCH_PARENT);
+            setLayoutWeight(wordView, mCenterSuggestionWeight, ViewGroup.LayoutParams.MATCH_PARENT);
 
             stripView.addView(mDividers.get(0));
 
@@ -443,56 +443,56 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             hintView.setTextScaleX(hintScaleX);
             stripView.addView(hintView);
             setLayoutWeight(
-                    hintView, 1.0f - mCenterCandidateWeight, ViewGroup.LayoutParams.MATCH_PARENT);
+                    hintView, 1.0f - mCenterSuggestionWeight, ViewGroup.LayoutParams.MATCH_PARENT);
         }
     }
 
     /**
-     * Construct a CandidateView for showing suggested words for completion.
+     * Construct a {@link SuggestionsView} for showing suggested words for completion.
      * @param context
      * @param attrs
      */
-    public CandidateView(Context context, AttributeSet attrs) {
-        this(context, attrs, R.attr.candidateViewStyle);
+    public SuggestionsView(Context context, AttributeSet attrs) {
+        this(context, attrs, R.attr.suggestionsViewStyle);
     }
 
-    public CandidateView(Context context, AttributeSet attrs, int defStyle) {
+    public SuggestionsView(Context context, AttributeSet attrs, int defStyle) {
         // Note: Up to version 10 (Gingerbread) of the API, LinearLayout doesn't have 3-argument
         // constructor.
         // TODO: Call 3-argument constructor, super(context, attrs, defStyle), when we abandon
         // backward compatibility with the version 10 or earlier of the API.
         super(context, attrs);
-        if (defStyle != R.attr.candidateViewStyle) {
+        if (defStyle != R.attr.suggestionsViewStyle) {
             throw new IllegalArgumentException(
-                    "can't accept defStyle other than R.attr.candidateViewStyle: defStyle="
+                    "can't accept defStyle other than R.attr.suggestionsViewStyle: defStyle="
                     + defStyle);
         }
         setBackgroundDrawable(LinearLayoutCompatUtils.getBackgroundDrawable(
-                context, attrs, defStyle, R.style.CandidateViewStyle));
+                context, attrs, defStyle, R.style.SuggestionsViewStyle));
 
         final LayoutInflater inflater = LayoutInflater.from(context);
-        inflater.inflate(R.layout.candidates_strip, this);
+        inflater.inflate(R.layout.suggestions_strip, this);
 
         mPreviewPopup = new PopupWindow(context);
-        mPreviewText = (TextView) inflater.inflate(R.layout.candidate_preview, null);
+        mPreviewText = (TextView) inflater.inflate(R.layout.suggestion_preview, null);
         mPreviewPopup.setWindowLayoutMode(
                 ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
         mPreviewPopup.setContentView(mPreviewText);
         mPreviewPopup.setBackgroundDrawable(null);
 
-        mCandidatesPlacer = (ViewGroup)findViewById(R.id.candidates_placer);
-        mCandidatesStrip = (ViewGroup)findViewById(R.id.candidates_strip);
+        mSuggestionsPlacer = (ViewGroup)findViewById(R.id.suggestions_placer);
+        mSuggestionsStrip = (ViewGroup)findViewById(R.id.suggestions_strip);
         for (int pos = 0; pos < MAX_SUGGESTIONS; pos++) {
-            final TextView word = (TextView)inflater.inflate(R.layout.candidate_word, null);
+            final TextView word = (TextView)inflater.inflate(R.layout.suggestion_word, null);
             word.setTag(pos);
             word.setOnClickListener(this);
             word.setOnLongClickListener(this);
             mWords.add(word);
-            final View divider = inflater.inflate(R.layout.candidate_divider, null);
+            final View divider = inflater.inflate(R.layout.suggestion_divider, null);
             divider.setTag(pos);
             divider.setOnClickListener(this);
             mDividers.add(divider);
-            mInfos.add((TextView)inflater.inflate(R.layout.candidate_info, null));
+            mInfos.add((TextView)inflater.inflate(R.layout.suggestion_info, null));
         }
 
         mStripParams = new SuggestionsStripParams(context, attrs, defStyle, mWords, mDividers,
@@ -534,7 +534,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         if (mSuggestions.size() == 0)
             return;
 
-        mStripParams.layout(mSuggestions, mCandidatesStrip, mCandidatesPlacer, getWidth());
+        mStripParams.layout(mSuggestions, mSuggestionsStrip, mSuggestionsPlacer, getWidth());
     }
 
     private static CharSequence getDebugInfo(SuggestedWords suggestions, int pos) {
@@ -632,13 +632,13 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
     }
 
     public boolean isShowingAddToDictionaryHint() {
-        return mCandidatesStrip.getChildCount() > 0
-                && mCandidatesStrip.getChildAt(0) == mStripParams.mWordToSaveView;
+        return mSuggestionsStrip.getChildCount() > 0
+                && mSuggestionsStrip.getChildAt(0) == mStripParams.mWordToSaveView;
     }
 
     public void showAddToDictionaryHint(CharSequence word) {
         clear();
-        mStripParams.layoutAddToDictionaryHint(word, mCandidatesStrip, getWidth());
+        mStripParams.layoutAddToDictionaryHint(word, mSuggestionsStrip, getWidth());
     }
 
     public boolean dismissAddToDictionaryHint() {
@@ -655,9 +655,9 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
     public void clear() {
         mShowingAutoCorrectionInverted = false;
-        mCandidatesPlacer.removeAllViews();
-        mCandidatesPlacer.addView(mCandidatesStrip);
-        mCandidatesStrip.removeAllViews();
+        mSuggestionsPlacer.removeAllViews();
+        mSuggestionsPlacer.addView(mSuggestionsStrip);
+        mSuggestionsStrip.removeAllViews();
         mMoreSuggestionsWindow.dismiss();
     }
 
@@ -736,7 +736,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             // TODO: Revise how we determine the height
             final int maxHeight = dm.heightPixels - mKeyboardView.getHeight() - getHeight() * 3;
             final MoreSuggestions.Builder builder = mMoreSuggestionsBuilder;
-            builder.layout(mSuggestions, params.mCandidateCountInStrip, maxWidth, maxHeight);
+            builder.layout(mSuggestions, params.mSuggestionsCountInStrip, maxWidth, maxHeight);
             mMoreSuggestionsView.setKeyboard(builder.build());
             container.measure(
                     ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
diff --git a/java/src/com/android/inputmethod/latin/Utils.java b/java/src/com/android/inputmethod/latin/Utils.java
index 60a4cfb389c16a52b2d8384b53b974fd75443fb8..6263ebefad2eb43e7a39e56c8456dc7adf9f87ad 100644
--- a/java/src/com/android/inputmethod/latin/Utils.java
+++ b/java/src/com/android/inputmethod/latin/Utils.java
@@ -16,15 +16,7 @@
 
 package com.android.inputmethod.latin;
 
-import com.android.inputmethod.compat.InputMethodInfoCompatWrapper;
-import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
-import com.android.inputmethod.compat.InputMethodSubtypeCompatWrapper;
-import com.android.inputmethod.compat.InputTypeCompatUtils;
-import com.android.inputmethod.keyboard.Keyboard;
-import com.android.inputmethod.keyboard.KeyboardId;
-
 import android.content.Context;
-import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.inputmethodservice.InputMethodService;
 import android.os.AsyncTask;
@@ -37,6 +29,13 @@ import android.text.format.DateUtils;
 import android.util.Log;
 import android.view.inputmethod.EditorInfo;
 
+import com.android.inputmethod.compat.InputMethodInfoCompatWrapper;
+import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
+import com.android.inputmethod.compat.InputMethodSubtypeCompatWrapper;
+import com.android.inputmethod.compat.InputTypeCompatUtils;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.keyboard.KeyboardId;
+
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -47,7 +46,6 @@ import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 
@@ -175,21 +173,21 @@ public class Utils {
         // If user selected aggressive auto correction mode, there is no need to use the safety
         // net.
         if (suggest.isAggressiveAutoCorrectionMode()) return false;
-        CharSequence typedWord = suggestions.getWord(0);
+        final CharSequence typedWord = suggestions.getWord(0);
         // If the length of typed word is less than MINIMUM_SAFETY_NET_CHAR_LENGTH,
         // we should not use net because relatively edit distance can be big.
         if (typedWord.length() < MINIMUM_SAFETY_NET_CHAR_LENGTH) return false;
-        CharSequence candidateWord = suggestions.getWord(1);
+        final CharSequence suggestionWord = suggestions.getWord(1);
         final int typedWordLength = typedWord.length();
         final int maxEditDistanceOfNativeDictionary = typedWordLength < 5 ? 2 : typedWordLength / 2;
-        final int distance = Utils.editDistance(typedWord, candidateWord);
+        final int distance = Utils.editDistance(typedWord, suggestionWord);
         if (DBG) {
             Log.d(TAG, "Autocorrected edit distance = " + distance
                     + ", " + maxEditDistanceOfNativeDictionary);
         }
         if (distance > maxEditDistanceOfNativeDictionary) {
             if (DBG) {
-                Log.d(TAG, "Safety net: before = " + typedWord + ", after = " + candidateWord);
+                Log.d(TAG, "Safety net: before = " + typedWord + ", after = " + suggestionWord);
                 Log.w(TAG, "(Error) The edit distance of this correction exceeds limit. "
                         + "Turning off auto-correction.");
             }
@@ -717,7 +715,7 @@ public class Utils {
         // Don't cache suggestions.size(), since we may be removing items
         while (i < suggestions.size()) {
             final CharSequence cur = suggestions.get(i);
-            // Compare each candidate with each previous candidate
+            // Compare each suggestion with each previous suggestion
             for (int j = 0; j < i; j++) {
                 CharSequence previous = suggestions.get(j);
                 if (TextUtils.equals(cur, previous)) {