package coolbuy360.searchhealth;
import coolbuy360.logic.AppVersion;
import coolbuy360.searchhealth.R.color;
import coolbuy360.service.searchApp;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputFilter;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.View.OnKeyListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
public class Feedback extends Activity {
private static final long MAX_COUNT = 500;
private Boolean isEmpty = true;
private EditText mEditText = null;
private ImageButton actionbar_pre_btn=null;
private TextView mTextView = null;
String curtxtstring = "";
public ProgressDialog pBarupcontent = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Ϊ�˳�����
searchApp.getInstance().addActivity(this);
setContentView(R.layout.feedback);
mEditText = (EditText) this.findViewById(R.id.feedback_txtcontent_edit);
mTextView = (TextView) this.findViewById(R.id.feedback_txtcount_text);
actionbar_pre_btn=(ImageButton)this.findViewById(R.id.actionbar_pre_btn);
mEditText.addTextChangedListener(mTextWatcher);
mEditText.setSelection(mEditText.length());
Button btnup = (Button) this.findViewById(R.id.feedback_btntitle_up);
setLeftCount();//ͳ������
/*mEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
EditText edit = (EditText) v;
if (hasFocus == false)// ���ʧȥ����
{
curtxtstring = edit.getText().toString().trim();
if (curtxtstring.length() > 0
&& !curtxtstring
.equals(R.string.feedback_txtcontent)) {
isEmpty = false;
edit.setText(curtxtstring);
} else {
edit.setText(R.string.feedback_txtcontent);
}
}
// �����ý���
else {
if (isEmpty == true) {
edit.setTextColor(color.blue);
edit.setText("");
}
}
}
});*/
actionbar_pre_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Feedback.this.finish();
}
});
btnup.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
curtxtstring = mEditText.getText().toString().trim();
if (!curtxtstring.equals("")) {
pBarupcontent = new ProgressDialog(Feedback.this);
pBarupcontent.setMessage("�����ύ����");
pBarupcontent.setIndeterminate(true);
pBarupcontent.setCancelable(true);
pBarupcontent.show();
new AsyncLoader_upcontent().execute();
} else {
Toast.makeText(Feedback.this, "����û��д����Ŷ",
Toast.LENGTH_SHORT).show();
}
}
});
}
/**
* �O�ı����B
*/
private TextWatcher mTextWatcher = new TextWatcher() {
private int editStart;
private int editEnd;
public void afterTextChanged(Editable s) {
editStart = mEditText.getSelectionStart();
editEnd = mEditText.getSelectionEnd();
// ��ȥ������������������ջ���
mEditText.removeTextChangedListener(mTextWatcher);
// ע������ֻ��ÿ�ζ�������EditText�������ȣ����ܶ�ɾ���ĵ����ַ���
// ��Ϊ����Ӣ�Ļ�ϣ������ַ����ԣ�calculateLength�������᷵��1
while (calculateLength(s.toString()) > MAX_COUNT) { // �������ַ������������ƵĴ�Сʱ�����нضϲ���
s.delete(editStart - 1, editEnd);
editStart--;
editEnd--;
}
mEditText.setText(s);
mEditText.setSelection(editStart);
// �ָ�������
mEditText.addTextChangedListener(mTextWatcher);
setLeftCount();
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
};
/**
* ����������ݵ�������һ������=����Ӣ����ĸ��һ�����ı��=����Ӣ�ı�� ע�⣺�ú����IJ������ڶԵ����ַ����м��㣬��Ϊ�����ַ������������1
*
* @param c
* @return
*/
private long calculateLength(CharSequence c) {
double len = 0;
for (int i = 0; i < c.length(); i++) {
int tmp = (int) c.charAt(i);
if (tmp > 0 && tmp < 127) {
len += 0.5;
} else {
len++;
}
}
return Math.round(len);
}
/**
* ˢ��ʣ����������,���ֵ��������140���֣���������200����
*/
private void setLeftCount() {
mTextView.setText(String.valueOf((MAX_COUNT - getInputCount())));
}
/**
* ��ȡ�û�����ķ�����������
*
* @return
*/
private long getInputCount() {
return calculateLength(mEditText.getText().toString());
}
class AsyncLoader_upcontent extends AsyncTask<String, Void, Integer> {
@Override
protected Integer doInBackground(String... params) {
int result = 0;
try {
Boolean upstate = coolbuy360.logic.Feedback
.insert(getBaseContext(), curtxtstring);
if (upstate == true) {
result = 2;
}
} catch (Exception ex) {
result = -1;
}
return result;
}
@Override
// �������
protected void onPostExecute(Integer result) {
if (result == 2) {
pBarupcontent.cancel();
Toast.makeText(Feedback.this, "�ύ�ɹ�,��л����Ľ��顭��", Toast.LENGTH_LONG).show();
mEditText.setText("");
} else {
pBarupcontent.cancel();
Toast.makeText(Feedback.this, "�ύʧ��", Toast.LENGTH_LONG).show();
}
}
}
}