From 2eb8781dc2e42d55474fb6e5c461c56c066b8363 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Thu, 29 Mar 2012 15:58:26 +0900
Subject: [PATCH] Separate leftward arrow from "add to dictionary" hint text

Bug: 6008875
Change-Id: I2be1698e485bc6541163771f41b8b82eaa3cee7a
---
 java/res/layout/hint_add_to_dictionary.xml    | 36 +++++++++++++++++++
 java/res/values/strings.xml                   |  2 +-
 .../latin/suggestions/SuggestionsView.java    | 13 +++++--
 3 files changed, 48 insertions(+), 3 deletions(-)
 create mode 100644 java/res/layout/hint_add_to_dictionary.xml

diff --git a/java/res/layout/hint_add_to_dictionary.xml b/java/res/layout/hint_add_to_dictionary.xml
new file mode 100644
index 000000000..73de44fae
--- /dev/null
+++ b/java/res/layout/hint_add_to_dictionary.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- This is derived from suggestion_word.xml without minWidth attribute and padding -->
+<TextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:textSize="@dimen/suggestion_text_size"
+    android:gravity="center"
+    android:paddingLeft="0dp"
+    android:paddingTop="0dp"
+    android:paddingRight="0dp"
+    android:paddingBottom="0dp"
+    android:focusable="false"
+    android:clickable="false"
+    android:singleLine="true"
+    android:ellipsize="none"
+    style="?attr/suggestionBackgroundStyle" />
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index f2c02d014..e1ac387fa 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -307,7 +307,7 @@
     <string name="select_language">Input languages</string>
 
     <!-- Add to dictionary hint -->
-    <string name="hint_add_to_dictionary">&#x2190; Touch again to save</string>
+    <string name="hint_add_to_dictionary">Touch again to save</string>
 
     <!-- Inform the user that a particular language has an available dictionary -->
     <string name="has_dictionary">Dictionary available</string>
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java
index 06fda44fa..ca253543e 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java
@@ -155,6 +155,7 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
         private final int mCenterSuggestionIndex;
         private final Drawable mMoreSuggestionsHint;
         private static final String MORE_SUGGESTIONS_HINT = "\u2026";
+        private static final String LEFTWARDS_ARROW = "\u2190";
 
         private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD);
         private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
@@ -169,6 +170,7 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
         public boolean mMoreSuggestionsAvailable;
 
         public final TextView mWordToSaveView;
+        private final TextView mLeftwardsArrowView;
         private final TextView mHintToSaveView;
 
         public SuggestionsViewParams(Context context, AttributeSet attrs, int defStyle,
@@ -231,7 +233,8 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
 
             final LayoutInflater inflater = LayoutInflater.from(context);
             mWordToSaveView = (TextView)inflater.inflate(R.layout.suggestion_word, null);
-            mHintToSaveView = (TextView)inflater.inflate(R.layout.suggestion_word, null);
+            mLeftwardsArrowView = (TextView)inflater.inflate(R.layout.hint_add_to_dictionary, null);
+            mHintToSaveView = (TextView)inflater.inflate(R.layout.hint_add_to_dictionary, null);
         }
 
         public int getMaxMoreSuggestionsRow() {
@@ -488,9 +491,15 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
 
             stripView.addView(mDividers.get(0));
 
+            final TextView leftArrowView = mLeftwardsArrowView;
+            leftArrowView.setTextColor(mColorAutoCorrect);
+            leftArrowView.setText(LEFTWARDS_ARROW);
+            stripView.addView(leftArrowView);
+
             final TextView hintView = mHintToSaveView;
+            hintView.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
             hintView.setTextColor(mColorAutoCorrect);
-            final int hintWidth = width - wordWidth;
+            final int hintWidth = width - wordWidth - leftArrowView.getWidth();
             final float hintScaleX = getTextScaleX(hintText, hintWidth, hintView.getPaint());
             hintView.setText(hintText);
             hintView.setTextScaleX(hintScaleX);