package com.yaoyumeng.v2ex.ui.widget;
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import com.yaoyumeng.v2ex.R;
import com.yaoyumeng.v2ex.utils.InputUtils;
import com.yaoyumeng.v2ex.utils.SimpleTextWatcher;
public class EnterLayout {
private Context mContext;
private View mRootView;
public ImageButton send;
public EditText content;
private String hint;
public EnterLayout(Context context, View rootView, View.OnClickListener sendTextOnClick) {
mRootView = rootView;
mContext = context;
send = (ImageButton) mRootView.findViewById(R.id.send);
send.setOnClickListener(sendTextOnClick);
send.setVisibility(View.VISIBLE);
content = (EditText) mRootView.findViewById(R.id.comment);
content.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void afterTextChanged(Editable s) {
updateSendButtonStyleAndHint();
}
});
content.setText("");
}
public void updateSendButtonStyleAndHint() {
if (sendButtonEnable()) {
send.setEnabled(true);
} else {
send.setEnabled(false);
content.setHint(hint);
}
}
protected boolean sendButtonEnable() {
return content.getText().length() > 0;
}
public void hideKeyboard() {
InputUtils.popSoftkeyboard(mContext, content, false);
}
public void popKeyboard() {
content.requestFocus();
InputUtils.popSoftkeyboard(mContext, content, true);
}
public void insertText(String s) {
content.requestFocus();
int insertPos = content.getSelectionStart();
String insertString = s + " ";
Editable editable = content.getText();
editable.insert(insertPos, insertString);
}
public void setText(String s) {
content.requestFocus();
Editable editable = content.getText();
editable.clear();
editable.insert(0, s);
}
public void setDefaultHint(String hint) {
this.hint = hint;
}
public void deleteOneChar() {
KeyEvent event = new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
content.dispatchKeyEvent(event);
}
public void clearContent() {
content.setText("");
content.setHint(hint);
}
public String getContent() {
return content.getText().toString();
}
public void hide() {
View root = mRootView.findViewById(R.id.commonEnterRoot);
root.setVisibility(View.GONE);
}
public void show() {
View root = mRootView.findViewById(R.id.commonEnterRoot);
root.setVisibility(View.VISIBLE);
}
public void restoreSaveStart() {
content.addTextChangedListener(restoreWatcher);
}
public void restoreSaveStop() {
content.removeTextChangedListener(restoreWatcher);
}
private TextWatcher restoreWatcher = new SimpleTextWatcher() {
@Override
public void afterTextChanged(Editable s) {
Object tag = content.getTag();
if (tag == null) {
return;
}
}
};
}