From c04bbc1ae9be81d25a356407c27a8e7fa22028bf Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Fri, 26 Aug 2011 15:13:30 +0900
Subject: [PATCH] Fix "touch to save" colors

Bug: 5218662
Change-Id: I094b2ceb7438148eb5bdf620b188f598e8442a07
---
 ...keyboard_popup_panel_background_holo.9.png | Bin 4047 -> 0 bytes
 ...keyboard_popup_panel_background_holo.9.png | Bin 3730 -> 0 bytes
 java/res/layout/candidates_strip.xml          |  31 +-----
 java/res/values/styles.xml                    |  89 +++++++++++++----
 .../inputmethod/latin/CandidateView.java      |  93 ++++++++++++------
 5 files changed, 133 insertions(+), 80 deletions(-)
 delete mode 100644 java/res/drawable-hdpi/keyboard_popup_panel_background_holo.9.png
 delete mode 100644 java/res/drawable-mdpi/keyboard_popup_panel_background_holo.9.png

diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background_holo.9.png
deleted file mode 100644
index 4002dbe65384b708c0b80bf1e47582207e624924..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4047
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

diff --git a/java/res/drawable-mdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-mdpi/keyboard_popup_panel_background_holo.9.png
deleted file mode 100644
index 7be7ab7e228efeecff57d4f44d7d9e61c703117b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3730
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

diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/candidates_strip.xml
index bcc1322b6f..46cd691a7e 100644
--- a/java/res/layout/candidates_strip.xml
+++ b/java/res/layout/candidates_strip.xml
@@ -25,35 +25,6 @@
     <LinearLayout
         android:id="@+id/candidates_strip"
         android:orientation="horizontal"
-        android:layout_weight="1.0"
-        android:layout_width="0dp"
-        android:layout_height="match_parent" />
-    <LinearLayout
-        android:id="@+id/touch_to_save"
-        android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone"
-    >
-        <Button
-            android:id="@+id/word_to_save"
-            android:layout_weight="1.0"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_gravity="center_vertical"
-            android:textSize="@dimen/candidate_text_size"
-            android:singleLine="true"
-            android:ellipsize="middle"
-            style="?attr/suggestionBackgroundStyle" />
-        <include
-            layout="@layout/candidate_divider" />
-        <TextView
-            android:layout_weight="2.0"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:gravity="left|center_vertical"
-            android:text="@string/hint_add_to_dictionary"
-            android:textSize="@dimen/candidate_text_size"
-            android:background="@null" />
-    </LinearLayout>
+        android:layout_height="match_parent" />
 </merge>
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index cb9edb0b88..7936f3c3c6 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -29,7 +29,8 @@
         <item name="maxPopupKeyboardColumn">@integer/config_max_popup_keyboard_column</item>
     </style>
     <style name="LatinKeyboard">
-        <item name="autoCorrectionSpacebarLedEnabled">@bool/config_auto_correction_spacebar_led_enabled</item>
+        <item name="autoCorrectionSpacebarLedEnabled">@bool/config_auto_correction_spacebar_led_enabled
+        </item>
         <item name="spacebarTextColor">#FFC0C0C0</item>
         <item name="spacebarTextShadowColor">#80000000</item>
     </style>
@@ -66,7 +67,10 @@
         <item name="shadowRadius">2.75</item>
         <item name="backgroundDimAmount">0.5</item>
     </style>
-    <style name="PopupMiniKeyboardView" parent="KeyboardView">
+    <style
+        name="PopupMiniKeyboardView"
+        parent="KeyboardView"
+    >
         <item name="keyBackground">@drawable/btn_keyboard_key_popup</item>
         <item name="verticalCorrection">@dimen/mini_keyboard_vertical_correction</item>
     </style>
@@ -84,7 +88,10 @@
     <style name="SuggestionPreviewBackgroundStyle">
         <item name="android:background">@drawable/candidate_feedback_background</item>
     </style>
-    <style name="CandidateViewStyle" parent="SuggestionsStripBackgroundStyle">
+    <style
+        name="CandidateViewStyle"
+        parent="SuggestionsStripBackgroundStyle"
+    >
         <item name="suggestionStripOption">autoCorrectBold</item>
         <item name="colorTypedWord">#FFFFFFFF</item>
         <item name="colorAutoCorrect">#FFFCAE00</item>
@@ -93,23 +100,35 @@
         <item name="centerCandidatePercentile">@integer/center_candidate_percentile</item>
     </style>
     <!-- Theme "Basic high contrast" -->
-    <style name="KeyboardView.HighContrast" parent="KeyboardView">
+    <style
+        name="KeyboardView.HighContrast"
+        parent="KeyboardView"
+    >
         <item name="android:background">@android:color/black</item>
         <item name="keyBackground">@drawable/btn_keyboard_key3</item>
     </style>
     <!-- Theme "Stone" -->
-    <style name="Keyboard.Stone" parent="Keyboard">
+    <style
+        name="Keyboard.Stone"
+        parent="Keyboard"
+    >
         <item name="keyboardHeight">@dimen/keyboardHeight_stone</item>
         <item name="keyboardTopPadding">@fraction/keyboard_top_padding_stone</item>
         <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_stone</item>
         <item name="horizontalGap">@fraction/key_horizontal_gap_stone</item>
         <item name="verticalGap">@fraction/key_bottom_gap_stone</item>
     </style>
-    <style name="LatinKeyboard.Stone" parent="LatinKeyboard">
+    <style
+        name="LatinKeyboard.Stone"
+        parent="LatinKeyboard"
+    >
         <item name="spacebarTextColor">#FF000000</item>
         <item name="spacebarTextShadowColor">#D0FFFFFF</item>
     </style>
-    <style name="KeyboardView.Stone" parent="KeyboardView">
+    <style
+        name="KeyboardView.Stone"
+        parent="KeyboardView"
+    >
         <item name="keyBackground">@drawable/btn_keyboard_key_stone</item>
         <item name="keyTextColor">#FF000000</item>
         <item name="keyTextInactivatedColor">#FF808080</item>
@@ -119,39 +138,63 @@
         <item name="keyUppercaseLetterActivatedColor">#CC000000</item>
         <item name="shadowColor">#FFFFFFFF</item>
     </style>
-    <style name="PopupMiniKeyboardView.Stone" parent="PopupMiniKeyboardView">
+    <style
+        name="PopupMiniKeyboardView.Stone"
+        parent="PopupMiniKeyboardView"
+    >
         <item name="keyBackground">@drawable/btn_keyboard_key_stone</item>
         <item name="keyTextColor">#FF000000</item>
         <item name="shadowColor">#FFFFFFFF</item>
     </style>
     <!-- Theme "Stone bold" -->
-    <style name="KeyboardView.Stone.Bold" parent="KeyboardView.Stone">
+    <style
+        name="KeyboardView.Stone.Bold"
+        parent="KeyboardView.Stone"
+    >
         <item name="keyTextStyle">bold</item>
     </style>
     <!-- Theme "Gingerbread" -->
-    <style name="Keyboard.Gingerbread" parent="Keyboard">
+    <style
+        name="Keyboard.Gingerbread"
+        parent="Keyboard"
+    >
         <item name="horizontalGap">@fraction/key_horizontal_gap_gb</item>
         <item name="verticalGap">@fraction/key_bottom_gap_gb</item>
     </style>
-    <style name="KeyboardView.Gingerbread" parent="KeyboardView">
+    <style
+        name="KeyboardView.Gingerbread"
+        parent="KeyboardView"
+    >
         <item name="android:background">@drawable/keyboard_dark_background</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_gingerbread</item>
         <item name="keyTextStyle">bold</item>
     </style>
-    <style name="PopupMiniKeyboardView.Gingerbread" parent="PopupMiniKeyboardView">
+    <style
+        name="PopupMiniKeyboardView.Gingerbread"
+        parent="PopupMiniKeyboardView"
+    >
         <item name="android:background">@null</item>
     </style>
     <!-- Theme "IceCreamSandwich" -->
-    <style name="Keyboard.IceCreamSandwich" parent="Keyboard" >
+    <style
+        name="Keyboard.IceCreamSandwich"
+        parent="Keyboard"
+    >
         <item name="keyboardTopPadding">@fraction/keyboard_top_padding_ics</item>
         <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_ics</item>
         <item name="horizontalGap">@fraction/key_horizontal_gap_ics</item>
         <item name="verticalGap">@fraction/key_bottom_gap_ics</item>
     </style>
-    <style name="LatinKeyboard.IceCreamSandwich" parent="LatinKeyboard">
+    <style
+        name="LatinKeyboard.IceCreamSandwich"
+        parent="LatinKeyboard"
+    >
         <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item>
     </style>
-    <style name="KeyboardView.IceCreamSandwich" parent="KeyboardView">
+    <style
+        name="KeyboardView.IceCreamSandwich"
+        parent="KeyboardView"
+    >
         <item name="android:background">@drawable/keyboard_background_holo</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_ics</item>
         <item name="keyTextStyle">bold</item>
@@ -169,7 +212,10 @@
         <item name="shadowColor">#00000000</item>
         <item name="shadowRadius">0.0</item>
     </style>
-    <style name="PopupMiniKeyboardView.IceCreamSandwich" parent="PopupMiniKeyboardView">
+    <style
+        name="PopupMiniKeyboardView.IceCreamSandwich"
+        parent="PopupMiniKeyboardView"
+    >
         <item name="android:background">@null</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item>
     </style>
@@ -184,10 +230,15 @@
     <style name="SuggestionBackgroundStyle.IceCreamSandwich">
         <item name="android:background">@drawable/btn_candidate_ics</item>
     </style>
-    <style name="SuggestionPreviewBackgroundStyle.IceCreamSandwich">
-        <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item>
+    <style
+        name="SuggestionPreviewBackgroundStyle.IceCreamSandwich"
+        parent="PopupMiniKeyboardPanelStyle.IceCreamSandwich"
+    >
     </style>
-    <style name="CandidateViewStyle.IceCreamSandwich" parent="SuggestionsStripBackgroundStyle.IceCreamSandwich">
+    <style
+        name="CandidateViewStyle.IceCreamSandwich"
+        parent="SuggestionsStripBackgroundStyle.IceCreamSandwich"
+    >
         <item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item>
         <item name="colorTypedWord">#FFBCBEC0</item>
         <item name="colorAutoCorrect">#FF0099CC</item>
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index 5f20c70b48..85870f38e6 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -76,13 +76,9 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
     private final PopupWindow mPreviewPopup;
     private final TextView mPreviewText;
 
-    private final View mTouchToSave;
-    private final TextView mWordToSave;
-
     private Listener mListener;
     private SuggestedWords mSuggestions = SuggestedWords.EMPTY;
     private boolean mShowingAutoCorrectionInverted;
-    private boolean mShowingAddToDictionary;
 
     private final SuggestionsStripParams mStripParams;
     private final SuggestionsPaneParams mPaneParams;
@@ -94,7 +90,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         private static final int MSG_HIDE_PREVIEW = 0;
         private static final int MSG_UPDATE_SUGGESTION = 1;
 
-        private static final long DELAY_HIDE_PREVIEW = 1000;
+        private static final long DELAY_HIDE_PREVIEW = 1300;
         private static final long DELAY_UPDATE_SUGGESTION = 300;
 
         public UiHandler(CandidateView outerInstance) {
@@ -274,13 +270,16 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         private static final int AUTO_CORRECT_INVERT = 0x04;
         private static final int VALID_TYPED_WORD_BOLD = 0x08;
 
-        private final TextPaint mPaint;
         private final int mSuggestionStripOption;
 
         private final ArrayList<CharSequence> mTexts = new ArrayList<CharSequence>();
 
         public boolean mMoreSuggestionsAvailable;
 
+        public final TextView mWordToSaveView;
+        private final TextView mHintToSaveView;
+        private final CharSequence mHintToSaveText;
+
         public SuggestionsStripParams(Context context, AttributeSet attrs, int defStyle,
                 List<TextView> words, List<View> dividers, List<TextView> infos) {
             super(words, dividers, infos);
@@ -305,9 +304,10 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorTypedWord ^ 0x00ffffff);
             mInvertedBackgroundColorSpan = new BackgroundColorSpan(mColorTypedWord);
 
-            mPaint = new TextPaint();
-            final float textSize = res.getDimension(R.dimen.candidate_text_size);
-            mPaint.setTextSize(textSize);
+            final LayoutInflater inflater = LayoutInflater.from(context);
+            mWordToSaveView = (TextView)inflater.inflate(R.layout.candidate_word, null);
+            mHintToSaveView = (TextView)inflater.inflate(R.layout.candidate_word, null);
+            mHintToSaveText = context.getText(R.string.hint_add_to_dictionary);
         }
 
         public int getTextColor() {
@@ -498,6 +498,33 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             mMoreSuggestionsAvailable = false;
             return countInStrip;
         }
+
+        public void layoutAddToDictionaryHint(CharSequence word, ViewGroup stripView,
+                int stripWidth) {
+            final int width = stripWidth - mDividerWidth - mPadding * 2;
+
+            final TextView wordView = mWordToSaveView;
+            wordView.setTextColor(mColorTypedWord);
+            final int wordWidth = (int)(width * mCenterCandidateWeight);
+            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, MATCH_PARENT);
+
+            stripView.addView(mDividers.get(0));
+
+            final TextView hintView = mHintToSaveView;
+            hintView.setTextColor(mColorAutoCorrect);
+            final int hintWidth = width - wordWidth;
+            final float hintScaleX = getTextScaleX(mHintToSaveText, hintWidth, hintView.getPaint());
+            hintView.setText(mHintToSaveText);
+            hintView.setTextScaleX(hintScaleX);
+            stripView.addView(hintView);
+            setLayoutWeight(hintView, 1.0f - mCenterCandidateWeight, MATCH_PARENT);
+        }
     }
 
     /**
@@ -517,7 +544,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         super(context, attrs);
         if (defStyle != R.attr.candidateViewStyle) {
             throw new IllegalArgumentException(
-                    "can't accept defStyle other than R.attr.candidayeViewStyle: defStyle="
+                    "can't accept defStyle other than R.attr.candidateViewStyle: defStyle="
                     + defStyle);
         }
         setBackgroundDrawable(LinearLayoutCompatUtils.getBackgroundDrawable(
@@ -546,13 +573,10 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
             mInfos.add((TextView)inflater.inflate(R.layout.candidate_info, null));
         }
 
-        mTouchToSave = findViewById(R.id.touch_to_save);
-        mWordToSave = (TextView)findViewById(R.id.word_to_save);
-        mWordToSave.setOnClickListener(this);
-
         mStripParams = new SuggestionsStripParams(context, attrs, defStyle, mWords, mDividers,
                 mInfos);
         mPaneParams = new SuggestionsPaneParams(mWords, mDividers, mInfos);
+        mStripParams.mWordToSaveView.setOnClickListener(this);
     }
 
     /**
@@ -636,6 +660,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         }
     }
 
+    private static float getTextScaleX(CharSequence text, int maxWidth, TextPaint paint) {
+        paint.setTextScaleX(1.0f);
+        final int width = getTextWidth(text, paint);
+        if (width <= maxWidth) {
+            return 1.0f;
+        }
+        return maxWidth / (float)width;
+    }
+
     private static CharSequence getEllipsizedText(CharSequence text, int maxWidth,
             TextPaint paint) {
         if (text == null) return null;
@@ -718,20 +751,21 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
     }
 
     public boolean isShowingAddToDictionaryHint() {
-        return mShowingAddToDictionary;
+        return mCandidatesStrip.getChildCount() > 0
+                && mCandidatesStrip.getChildAt(0) == mStripParams.mWordToSaveView;
     }
 
     public void showAddToDictionaryHint(CharSequence word) {
-        mWordToSave.setText(word);
-        mShowingAddToDictionary = true;
-        mCandidatesStrip.setVisibility(GONE);
-        mTouchToSave.setVisibility(VISIBLE);
+        clear();
+        mStripParams.layoutAddToDictionaryHint(word, mCandidatesStrip, getWidth());
     }
 
     public boolean dismissAddToDictionaryHint() {
-        if (!mShowingAddToDictionary) return false;
-        clear();
-        return true;
+        if (isShowingAddToDictionaryHint()) {
+            clear();
+            return true;
+        }
+        return false;
     }
 
     public SuggestedWords getSuggestions() {
@@ -739,10 +773,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
     }
 
     public void clear() {
-        mShowingAddToDictionary = false;
         mShowingAutoCorrectionInverted = false;
-        mTouchToSave.setVisibility(GONE);
-        mCandidatesStrip.setVisibility(VISIBLE);
         mCandidatesStrip.removeAllViews();
         mCandidatesPane.removeAllViews();
         closeCandidatesPane();
@@ -752,7 +783,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         mPreviewPopup.dismiss();
     }
 
-    private void showPreview(int index, CharSequence word) {
+    private void showPreview(View view, CharSequence word) {
         if (TextUtils.isEmpty(word))
             return;
 
@@ -761,9 +792,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
         previewText.setText(word);
         previewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
                 MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
-        View v = mWords.get(index);
         final int[] offsetInWindow = new int[2];
-        v.getLocationInWindow(offsetInWindow);
+        view.getLocationInWindow(offsetInWindow);
         final int posX = offsetInWindow[0];
         final int posY = offsetInWindow[1] - previewText.getMeasuredHeight();
         final PopupWindow previewPopup = mPreviewPopup;
@@ -778,7 +808,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
     private void addToDictionary(CharSequence word) {
         if (mListener.addWordToDictionary(word.toString())) {
-            showPreview(0, getContext().getString(R.string.added_word, word));
+            final CharSequence message = getContext().getString(R.string.added_word, word);
+            showPreview(mStripParams.mWordToSaveView, message);
         }
     }
 
@@ -793,8 +824,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
 
     @Override
     public void onClick(View view) {
-        if (view == mWordToSave) {
-            addToDictionary(((TextView)view).getText());
+        if (view == mStripParams.mWordToSaveView) {
+            addToDictionary((CharSequence)view.getTag());
             clear();
             return;
         }
-- 
GitLab