package org.carelife.creader.ui.activity;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.regex.Pattern;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.carelife.creader.dao.UrlHelper;
import org.carelife.creader.util.FileUtil;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.carelife.creader.R;
public class Advisor extends Activity {
private EditText e1, e2;
private Button commit, cancer;
private ProgressDialog prgDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.advise);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle("�������");
e1 = (EditText) findViewById(R.id.editText1);
e2 = (EditText) findViewById(R.id.editText2);
commit = (Button) findViewById(R.id.advise_commit);
cancer = (Button) findViewById(R.id.advise_cancer);
commit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
final String msg = e1.getText().toString();
final String userinfo = e2.getText().toString();
if (null == msg || "".equals(msg.trim())) {
Toast.makeText(Advisor.this, "�ף�������Ϣ����Ϊ��",
Toast.LENGTH_SHORT).show();
} else {
Pattern pattern = Pattern.compile("[0-9]*");
if (null == userinfo || "".equals(userinfo.trim())) {
Toast.makeText(Advisor.this, "�ף���ϵ��ʽ����Ϊ��",
Toast.LENGTH_SHORT).show();
} else if (!(pattern.matcher(userinfo).matches() || FileUtil
.isEmail(userinfo))) {
Toast.makeText(Advisor.this, "�ף��绰����������д�!", 500)
.show();
} else {
if (prgDialog == null)
prgDialog = new ProgressDialog(Advisor.this);
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (!Thread.currentThread().isInterrupted()) {
switch (msg.what) {
case 0:
prgDialog.show();
break;
case 1:
prgDialog.dismiss();
Toast.makeText(Advisor.this, "��л�����ύ",
Toast.LENGTH_SHORT).show();
finish();
break;
case 2:
if (null != prgDialog)
prgDialog.dismiss();
Toast.makeText(Advisor.this, "��Ǹ�ύʧ��",
Toast.LENGTH_SHORT).show();
break;
}
}
super.handleMessage(msg);
}
};
prgDialog.setTitle("���Ե�");
prgDialog.setMessage("�����ύ����");
prgDialog.setCancelable(true);
handler.sendEmptyMessage(0);
new Thread() {
public void run() {
if (sendMessage(msg, userinfo))
handler.sendEmptyMessage(1);
else
handler.sendEmptyMessage(2);
}
}.start();
}
}
}
});
cancer.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Advisor.this.finish();
}
});
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
public boolean sendMessage(final String msg, final String userinfo) {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(UrlHelper.feedback_url);
// ���httpͷ��Ϣ
httppost.addHeader("Content-TYPE",
"application/x-www-form-urlencoded");
// httppost.addHeader("Authorization", "your token"); //��֤token
// httppost.addHeader("Content-Type", "application/json");
// httppost.addHeader("User-Agent", "SogouSearch Android");
// httppost.addHeader()
// http post��json���ݸ�ʽ�� {"name": "your name","parentId":
// "id_of_parent"}
// JSONObject obj = new JSONObject();
// obj.put("feedback_msg", msg);
// obj.put("feedback_userinfo", userinfo);
// httppost.setEntity(new StringEntity(obj.toString()));
// httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
// Log.i("msg",msg);
// Log.i("user",userinfo);
ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("feedback_msg", msg));
nameValuePair.add(new BasicNameValuePair("feedback_userinfo",
userinfo));
nameValuePair.add(new BasicNameValuePair("model",
android.os.Build.MODEL));
String appVer = getPackageManager().getPackageInfo("com.sogou", 0).versionName;
nameValuePair.add(new BasicNameValuePair("version", ""
+ android.os.Build.VERSION.SDK_INT + ";"
+ android.os.Build.VERSION.RELEASE + ";" + appVer));
InetAddress localMachine = null;
String ip = "";
try {
localMachine = InetAddress.getLocalHost();
if (null != localMachine)
ip = localMachine.getHostAddress();
// ��ȡip��ַ
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception err) {
err.printStackTrace();
}
nameValuePair.add(new BasicNameValuePair("ip", ip));
String num = "";
try {
TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// ��ȡ�豸�ĵ绰����
num = telManager.getLine1Number();
if (null == num)
num = "";
int phoneTYPE = telManager.getPhoneType();
if (phoneTYPE == TelephonyManager.PHONE_TYPE_CDMA) {
if ("".equals(num))
num += "CDMA";
else
num += ";CDMA";
} else if (phoneTYPE == TelephonyManager.PHONE_TYPE_GSM) {
if ("".equals(num))
num += "GSM";
else
num += ";GSM";
} else {
if ("".equals(num))
num += "NONE";
else
num += ";NONE";
}
} catch (Exception err) {
err.printStackTrace();
}
nameValuePair.add(new BasicNameValuePair("phone", num));
// HttpPost httpPost = new
// HttpPost("http://192.168.1.103/webservice/index.php");
/* ������������� */
// Log.i("",new
// UrlEncodedFormEntity(nameValuePair).getContent().toString());
httppost.setEntity(new UrlEncodedFormEntity(nameValuePair,
HTTP.UTF_8));
// httppost.getParams().setParameter("feedback_msg", msg);
// httppost.getParams().setParameter("feedback_userinfo", userinfo);
HttpResponse response;
response = httpclient.execute(httppost);
// ����״̬�룬����ɹ���������
int code = response.getStatusLine().getStatusCode();
if (code == 200) {
// String rev =
// EntityUtils.toString(response.getEntity());//����json��ʽ�� {"id":
// "27JpL~j4vsL0LX00E00005","version": "abc"}
// obj = new JSONObject(rev);
// String id = obj.getString("id");
// String version = obj.getString("version");
return true;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
return false;
} catch (IOException e1) {
e1.printStackTrace();
return false;
} catch (Exception e2) {
e2.printStackTrace();
return false;
}
return false;
}
}