diff options
Diffstat (limited to 'libs/emojicon/src/main/java/com/rockerhieu/emojicon/EmojiconEditText.java')
-rw-r--r-- | libs/emojicon/src/main/java/com/rockerhieu/emojicon/EmojiconEditText.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/libs/emojicon/src/main/java/com/rockerhieu/emojicon/EmojiconEditText.java b/libs/emojicon/src/main/java/com/rockerhieu/emojicon/EmojiconEditText.java new file mode 100644 index 00000000..2d009ce5 --- /dev/null +++ b/libs/emojicon/src/main/java/com/rockerhieu/emojicon/EmojiconEditText.java @@ -0,0 +1,84 @@ +/* + * Copyright 2014 Hieu Rocker + * + * 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. + */ + +package com.rockerhieu.emojicon; + +import android.content.Context; +import android.content.res.TypedArray; +import android.text.style.DynamicDrawableSpan; +import android.util.AttributeSet; +import android.widget.EditText; + +/** + * @author Hieu Rocker (rockerhieu@gmail.com). + */ +public class EmojiconEditText extends EditText { + private int mEmojiconSize; + private int mEmojiconAlignment; + private int mEmojiconTextSize; + private boolean mUseSystemDefault = false; + + public EmojiconEditText(Context context) { + super(context); + mEmojiconSize = (int) getTextSize(); + mEmojiconTextSize = (int) getTextSize(); + } + + public EmojiconEditText(Context context, AttributeSet attrs) { + super(context, attrs); + init(attrs); + } + + public EmojiconEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(attrs); + } + + private void init(AttributeSet attrs) { + TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.Emojicon); + mEmojiconSize = (int) a.getDimension(R.styleable.Emojicon_emojiconSize, getTextSize()); + mEmojiconAlignment = a.getInt(R.styleable.Emojicon_emojiconAlignment, DynamicDrawableSpan.ALIGN_BASELINE); + mUseSystemDefault = a.getBoolean(R.styleable.Emojicon_emojiconUseSystemDefault, false); + a.recycle(); + mEmojiconTextSize = (int) getTextSize(); + setText(getText()); + } + + @Override + protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) { + updateText(); + } + + /** + * Set the size of emojicon in pixels. + */ + public void setEmojiconSize(int pixels) { + mEmojiconSize = pixels; + + updateText(); + } + + private void updateText() { + EmojiconHandler.addEmojis(getContext(), getText(), mEmojiconSize, mEmojiconAlignment, mEmojiconTextSize, mUseSystemDefault); + } + + /** + * Set whether to use system default emojicon + */ + public void setUseSystemDefault(boolean useSystemDefault) { + mUseSystemDefault = useSystemDefault; + } +} |