/**
* @Author Benson
* @Time 2013-11-23
*/
package zjut.soft.finalwork.fragment;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import zjut.soft.finalwork.R;
import zjut.soft.finalwork.core.YCApplication;
import zjut.soft.finalwork.core.YCStudentManager;
import zjut.soft.finalwork.ui.SlidingActivity;
import zjut.soft.finalwork.util.Constant;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.text.Html;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/**
* �ɷѲ�ѯFragment
* @author tsw
*
*/
public class PayQueryFragment extends Fragment implements View.OnClickListener {
private ImageView menuIV,aboutTV;
private TextView payInfoTV;
private Button refreshBtn;
private Handler mHandler;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.pay_query_frag, null);
mHandler = new Handler();
menuIV = (ImageView) view.findViewById(R.id.pay_query_frag_menu);
aboutTV = (ImageView) view.findViewById(R.id.pay_query_frag_about_us);
payInfoTV = (TextView) view.findViewById(R.id.pay_query_frag_pay_info);
refreshBtn = (Button) view.findViewById(R.id.pay_query_frag_btn);
refreshBtn.setOnClickListener(this);
TextView file1TV,file2TV;
file1TV = (TextView) view.findViewById(R.id.pay_query_frag_file1);
file2TV = (TextView) view.findViewById(R.id.pay_query_frag_file2);
file1TV.setText(Html.fromHtml("<a href='http://www.ycjw.zjut.edu.cn//news/sfglwj.htm'>�㽭��ҵ��ѧѧ�����շѹ���취(2010��)</a>"));
file2TV.setText(Html.fromHtml("<a href='http://www.ycjw.zjut.edu.cn//news/xfjntz.htm'>����ʵʩע��ѡ����ѧ�ѽ������������֪ͨ </a>"));
file1TV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.ycjw.zjut.edu.cn//news/sfglwj.htm"));
startActivity(i);
}
});
file2TV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.ycjw.zjut.edu.cn//news/xfjntz.htm"));
startActivity(i);
}
});
menuIV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
((SlidingActivity)getActivity()).showLeft();
}
});
aboutTV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
parent.showRight();
}
});
tryToGetPayInfo(); //ֻ����һ�Σ��Ժ��˳�ǰ��ť�ɸ���(��Լ����)
return view;
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
private void tryToGetPayInfo() {
new Thread(new Runnable() {
@Override
public void run() {
YCApplication app = (YCApplication)getActivity().getApplication();
HttpClient client = app.getClient();
HttpGet request = new HttpGet(app.get("selectedIp") + Constant.payQuery);
InputStream is = null;
BufferedReader br = null;
try {
is = client.execute(request).getEntity().getContent();
br = new BufferedReader(new InputStreamReader(is,Constant.ENCODING));
String temp = null;
while((temp = br.readLine()) != null) {
System.out.println(temp);
if(temp.contains("lbl_ts")) {
break;
}
}
Document doc = Jsoup.parse(temp);
final String val = doc.select("span font").html();
mHandler.post(new Runnable() {
@Override
public void run() {
payInfoTV.setText(val);
}
});
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
private void buttonToRefreshPay() {
payInfoTV.setText("���ڸ��½ɷ���Ϣ...");
refreshBtn.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
YCApplication app = (YCApplication)getActivity().getApplication();
HttpClient client = app.getClient();
String url = app.get("selectedIp") + Constant.payQuery;
HttpGet request = new HttpGet(url);
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
try {
HttpResponse response = client.execute(request);
InputStream is = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is,Constant.ENCODING));
StringBuilder sb = new StringBuilder();
String temp = null;
while((temp = br.readLine()) != null) {
if(temp.contains("<script language")) {
break; // ��Լʱ��
}
sb.append(temp);
}
Document doc = Jsoup.parse(sb.toString());
Elements elements = doc.select("input");
for(Element element : elements ) {
if("__EVENTTARGET".equals(element.attr("name"))) {
urlParameters.add(new BasicNameValuePair("__EVENTTARGET", element.val()));
} else if("__EVENTARGUMENT".equals(element.attr("name"))) {
urlParameters.add(new BasicNameValuePair("__EVENTARGUMENT", element.val()));
} else if("__VIEWSTATE".equals(element.attr("name"))) {
urlParameters.add(new BasicNameValuePair("__VIEWSTATE", element.val()));
}
}
urlParameters.add(new BasicNameValuePair("Btn_jf", "���½ɷ���Ϣ"));
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// ������Ϣ
for(NameValuePair pair : urlParameters) {
Log.i(YCStudentManager.class.getName(),pair.getName() + ":" + pair.getValue());
}
HttpPost post = new HttpPost(url);
try {
post.setEntity(new UrlEncodedFormEntity(urlParameters,Constant.ENCODING));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
HttpResponse response = null;
try {
response = app.getClient().execute(post);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader rd = null;
try {
rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),Constant.ENCODING),8192);
String temp = null;
while((temp = rd.readLine()) != null) {
if(temp.contains("lbl_ts")) {
System.out.print(temp);
break;
}
System.out.print(temp);
}
final String val = Jsoup.parse(temp).select("span font").html();
mHandler.post(new Runnable() {
@Override
public void run() {
payInfoTV.setText(val);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
refreshBtn.setEnabled(true);
}
}, 1500);
}
});
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
@Override
public void onResume() {
super.onResume();
}
private SlidingActivity parent;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
parent = (SlidingActivity)activity;
}
@Override
public void onClick(View v) {
buttonToRefreshPay();
}
}