package com.example.yesminetest;

import java.io.IOException;
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.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.apache.http.util.EntityUtils;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends Activity {
    private ImageButton bt_login; 
	private EditText txt_id;
	private EditText txt_pwd;
	String id = "";
	String password = "";
	private static final String uriStr="http://....../test_select.php";
	protected static final int REFRESH_DATA=0x00000001;
	
	Handler mHandler=new Handler(){

		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			switch(msg.what)
			{
			//顯示網路上抓取的資料
			case REFRESH_DATA:
				String result=null;
				if(msg.obj instanceof String){
					result=(String)msg.obj;
				}
				if(result!=null){
					//印出網路回傳的文字
				Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show();
				}
				break;
			}
			super.handleMessage(msg);//可刪
		}
		
	};
	 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt_login=(ImageButton)this.findViewById(R.id.bt_login);
		txt_id=(EditText)this.findViewById(R.id.txt_id);
		txt_pwd=(EditText)this.findViewById(R.id.txt_pw);
		if(bt_login!=null){
			this.bt_login.setOnClickListener(login);
			}
		
		}
	 private OnClickListener login = new OnClickListener()
	 {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			if(v==bt_login){
				if(txt_id!=null && txt_pwd!=null){
					
					//擷取文字框上的文字
					id = txt_id.getText().toString();
					password = txt_pwd.getText().toString();
					
					//啟動一個Thread(執行續)，將要傳送的資料放進Runnable中，讓Tread執行
					Thread t=new Thread(new sendPostRunnable(id,password));
					t.start();
					}
				}			
		}
		 
	 };
	 
	 private String sendPostDataToInternet(String userid,String userpasswd)
	 {
		 	//建立HTTP Post連練
		 	HttpPost httpRequest=new HttpPost(uriStr);
		 	
		 	//Post運作傳送變數必須用NaemValuePair[]陣列儲存
			List<NameValuePair> params=new ArrayList<NameValuePair>();
			
			params.add(new BasicNameValuePair("People_ID",userid));
			params.add(new BasicNameValuePair("People_PW",userpasswd));
			
			try
			{
				//發出Http Request
				httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
				
				//獲取HTTP Response
				HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);
				
				//若狀態碼為200 ok
				if(httpResponse.getStatusLine().getStatusCode()==200)
				{
					//取出回應字串
					String strResult=EntityUtils.toString(httpResponse.getEntity());
					Toast.makeText(MainActivity.this, strResult, Toast.LENGTH_LONG).show();
					return strResult;
				}
				else
				{
					Toast.makeText(MainActivity.this,"Error Response: "+httpResponse.getStatusLine().toString(),Toast.LENGTH_LONG).show();
					return null;
				}
			}
			catch (ClientProtocolException e) 
			{
				Toast.makeText(MainActivity.this,e.getMessage().toString(),Toast.LENGTH_LONG).show();		
				e.printStackTrace();
			}
			catch (IOException e) 
			{
				Toast.makeText(MainActivity.this,e.getMessage().toString(),Toast.LENGTH_LONG).show();
				e.printStackTrace();
			}
			catch(Exception e)
			{
				Toast.makeText(MainActivity.this,e.getMessage().toString(),Toast.LENGTH_LONG).show();
				e.printStackTrace();
			}
			return null;
	     }
	 class sendPostRunnable implements Runnable{
		String userid=null;
		String userpasswd=null;
		
		//建構子，設定要傳的字串
		public sendPostRunnable(String userid,String userpasswd)
		{
			this.userid=userid;
			this.userpasswd=userpasswd;
			
			
		}

		@Override
		public void run() {
			// TODO Auto-generated method stub
			String result=sendPostDataToInternet(userid,userpasswd);
			mHandler.obtainMessage(REFRESH_DATA,result).sendToTarget();
			
		}
		
	 }
	 
/*	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}*/

}
