package net.coding.program.common.widget.input; import android.content.Context; import android.content.res.TypedArray; import android.support.v7.app.AppCompatActivity; import android.text.TextWatcher; import android.util.AttributeSet; import android.view.View; import android.widget.EditText; import android.widget.FrameLayout; import net.coding.program.R; import net.coding.program.common.Global; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; /** * Created by chenchao on 16/1/21. * 私信的输入框 */ @EViewGroup(R.layout.input_view_main) public class MainInputView extends FrameLayout implements KeyboardControl, InputOperate { AppCompatActivity activity; @ViewById TopBar_ topBar; @ViewById VoiceView_ voiceView; @ViewById EmojiKeyboard_ emojiKeyboard; private final boolean showEmojiOnly; public MainInputView(Context context, AttributeSet attrs) { super(context, attrs); TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MainInputView); showEmojiOnly = array.getBoolean(R.styleable.MainInputView_showEmojiOnly, false); array.recycle(); this.activity = (AppCompatActivity) getContext(); } @Override public void setClickSend(OnClickListener click) { topBar.setClickSend(click); } @AfterViews void initMainInputView() { emojiKeyboard.setInputAction(topBar); topBar.setKeyboardControl(this); if (showEmojiOnly) { emojiKeyboard.showEmojiOnly(); } showSystemInput(false); } @Override public void showSystemInput(boolean show) { Global.popSoftkeyboard(activity, topBar.getEditText(), show); voiceView.setVisibility(GONE); emojiKeyboard.setVisibility(GONE); topBar.showSystemInput(show); } @Override public void showVoiceInput() { Global.popSoftkeyboard(activity, topBar.getEditText(), false); voiceView.setVisibility(VISIBLE); emojiKeyboard.setVisibility(View.GONE); topBar.showVoiceInput(); } @Override public void showEmojiInput() { Global.popSoftkeyboard(activity, topBar.getEditText(), false); voiceView.setVisibility(View.GONE); emojiKeyboard.setVisibility(View.VISIBLE); topBar.showEmojiInput(); } @Override public void hideCustomInput() { voiceView.setVisibility(GONE); emojiKeyboard.setVisibility(GONE); topBar.showSystemInput(false); } @Override public void clearContent() { topBar.clearContent(); } @Override public void closeCustomKeyboard() { showSystemInput(false); } @Override public String getContent() { return topBar.getContent(); } @Override public void hideKeyboard() { topBar.hideKeyboard(); } @Override public void insertText(String s) { topBar.insertText(s); } @Override public boolean isPopCustomKeyboard() { return voiceView.getVisibility() == VISIBLE || emojiKeyboard.getVisibility() == VISIBLE; } @Override public void addTextWatcher(TextWatcher textWatcher) { topBar.addTextWatcher(textWatcher); } @Override public void setContent(String s) { topBar.setContent(s); } public void restoreLoad(Object object) { topBar.restoreLoad(object); } public void hide() { setVisibility(GONE); } public void show() { setVisibility(VISIBLE); } public boolean isShow() { return getVisibility() == VISIBLE; } public void restoreSaveStop() { topBar.restoreSaveStop(); } public void restoreDelete(Object comment) { topBar.restoreDelete(comment); } public EditText getEditText() { return topBar.getEditText(); } }