Workaround to draw spacebar icon of emoji palettes

Bug: 15321822
Change-Id: Iab7cef83ffdf91c877c3ed2e59d412496b516e1c
This commit is contained in:
Tadashi G. Takaoka 2014-05-29 23:24:08 +09:00
parent ba8836a926
commit 3558505bee
3 changed files with 25 additions and 9 deletions

View file

@ -63,6 +63,7 @@
android:layout_width="2dip" android:layout_width="2dip"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/suggestions_strip_divider" /> android:background="@drawable/suggestions_strip_divider" />
<!-- TODO: Implement KeyView and replace this. -->
<ImageButton <ImageButton
android:id="@+id/emoji_keyboard_delete" android:id="@+id/emoji_keyboard_delete"
android:layout_width="0dip" android:layout_width="0dip"
@ -86,18 +87,30 @@
android:layout_height="0dip" android:layout_height="0dip"
android:layout_weight="1" android:layout_weight="1"
> >
<!-- TODO: Implement a KeyView and replace this. -->
<TextView <TextView
android:id="@+id/emoji_keyboard_alphabet_left" android:id="@+id/emoji_keyboard_alphabet_left"
android:layout_width="0dip" android:layout_width="0dip"
android:layout_weight="0.15" android:layout_weight="0.15"
android:gravity="center" android:gravity="center"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
<ImageButton <!-- TODO: Implement KeyView and replace this. -->
<RelativeLayout
android:id="@+id/emoji_keyboard_space" android:id="@+id/emoji_keyboard_space"
android:layout_width="0dip" android:layout_width="0dip"
android:layout_weight="0.70" android:layout_weight="0.70"
android:layout_height="match_parent" android:layout_height="match_parent"
android:contentDescription="@string/spoken_description_space"/> android:contentDescription="@string/spoken_description_space">
<!-- WORKAROUND: Show the spacebar icon as a bacground of this View. -->
<View
android:id="@+id/emoji_keyboard_space_icon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_centerInParent="true" />
</RelativeLayout>
<!-- TODO: Implement KeyView and replace this. -->
<TextView <TextView
android:id="@+id/emoji_keyboard_alphabet_right" android:id="@+id/emoji_keyboard_alphabet_right"
android:layout_width="0dip" android:layout_width="0dip"

View file

@ -19,7 +19,6 @@ package com.android.inputmethod.keyboard.emoji;
import android.content.res.Resources; import android.content.res.Resources;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.view.View; import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
@ -84,10 +83,10 @@ final class EmojiLayoutParams {
ll.setLayoutParams(lp); ll.setLayoutParams(lp);
} }
public void setKeyProperties(final ImageView ib) { public void setKeyProperties(final View v) {
final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) ib.getLayoutParams(); final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) v.getLayoutParams();
lp.leftMargin = mKeyHorizontalGap / 2; lp.leftMargin = mKeyHorizontalGap / 2;
lp.rightMargin = mKeyHorizontalGap / 2; lp.rightMargin = mKeyHorizontalGap / 2;
ib.setLayoutParams(lp); v.setLayoutParams(lp);
} }
} }

View file

@ -75,7 +75,9 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
private ImageButton mDeleteKey; private ImageButton mDeleteKey;
private TextView mAlphabetKeyLeft; private TextView mAlphabetKeyLeft;
private TextView mAlphabetKeyRight; private TextView mAlphabetKeyRight;
private ImageButton mSpacebar; private View mSpacebar;
// TODO: Remove this workaround.
private View mSpacebarIcon;
private TabHost mTabHost; private TabHost mTabHost;
private ViewPager mEmojiPager; private ViewPager mEmojiPager;
private int mCurrentPagerPosition = 0; private int mCurrentPagerPosition = 0;
@ -195,12 +197,13 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
mAlphabetKeyRight.setTag(Constants.CODE_ALPHA_FROM_EMOJI); mAlphabetKeyRight.setTag(Constants.CODE_ALPHA_FROM_EMOJI);
mAlphabetKeyRight.setOnTouchListener(this); mAlphabetKeyRight.setOnTouchListener(this);
mAlphabetKeyRight.setOnClickListener(this); mAlphabetKeyRight.setOnClickListener(this);
mSpacebar = (ImageButton)findViewById(R.id.emoji_keyboard_space); mSpacebar = findViewById(R.id.emoji_keyboard_space);
mSpacebar.setBackgroundResource(mSpacebarBackgroundId); mSpacebar.setBackgroundResource(mSpacebarBackgroundId);
mSpacebar.setTag(Constants.CODE_SPACE); mSpacebar.setTag(Constants.CODE_SPACE);
mSpacebar.setOnTouchListener(this); mSpacebar.setOnTouchListener(this);
mSpacebar.setOnClickListener(this); mSpacebar.setOnClickListener(this);
mEmojiLayoutParams.setKeyProperties(mSpacebar); mEmojiLayoutParams.setKeyProperties(mSpacebar);
mSpacebarIcon = findViewById(R.id.emoji_keyboard_space_icon);
} }
@Override @Override
@ -349,7 +352,8 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
} }
final int spacebarResId = iconSet.getIconResourceId(KeyboardIconsSet.NAME_SPACE_KEY); final int spacebarResId = iconSet.getIconResourceId(KeyboardIconsSet.NAME_SPACE_KEY);
if (spacebarResId != 0) { if (spacebarResId != 0) {
mSpacebar.setImageResource(spacebarResId); // TODO: Remove this workaround to place the spacebar icon.
mSpacebarIcon.setBackgroundResource(spacebarResId);
} }
final KeyDrawParams params = new KeyDrawParams(); final KeyDrawParams params = new KeyDrawParams();
params.updateParams(mEmojiLayoutParams.getActionBarHeight(), keyVisualAttr); params.updateParams(mEmojiLayoutParams.getActionBarHeight(), keyVisualAttr);