package com.tutorials.hp.androidmdmysqlsave.mMySQL;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.EditText;
import android.widget.Toast;
import com.tutorials.hp.androidmdmysqlsave.mDataObject.Spacecraft;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
/**
* Created by Oclemy on 5/15/2016 for ProgrammingWizards Channel and http://www.camposha.com.
*/
public class Sender extends AsyncTask<Void,Void,String> {
Context c;
String urlAddress;
EditText nameTxt,propellantTxt,descTxt;
Spacecraft spacecraft;
ProgressDialog pd;
public Sender(Context c, String urlAddress, EditText nameTxt, EditText propellantTxt, EditText descTxt) {
this.c = c;
this.urlAddress = urlAddress;
this.nameTxt = nameTxt;
this.propellantTxt = propellantTxt;
this.descTxt = descTxt;
spacecraft=new Spacecraft();
spacecraft.setName(nameTxt.getText().toString());
spacecraft.setPropellant(propellantTxt.getText().toString());
spacecraft.setDescription(descTxt.getText().toString());
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pd=new ProgressDialog(c);
pd.setTitle("Send");
pd.setMessage("Sending...Please wait");
pd.show();
}
@Override
protected String doInBackground(Void... params) {
return this.send();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
pd.dismiss();
if(s==null)
{
Toast.makeText(c,"Unsuccessful,Null returned",Toast.LENGTH_SHORT).show();
}else
{
if(s=="Bad Response")
{
Toast.makeText(c,"Unsuccessful,Bad Response returned",Toast.LENGTH_SHORT).show();
}else
{
Toast.makeText(c,"Successfully Saved",Toast.LENGTH_SHORT).show();
//CLEAR UI
nameTxt.setText("");
propellantTxt.setText("");
descTxt.setText("");
}
}
}
private String send()
{
HttpURLConnection con=Connector.connect(urlAddress);
if(con==null)
{
return null;
}
try {
OutputStream os=con.getOutputStream();
//WRITE
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
bw.write(new DataPackager(spacecraft).packData());
bw.flush();
//RELEASE
bw.close();
os.close();
//SUCCESS OR NOT??
int responseCode=con.getResponseCode();
if(responseCode==con.HTTP_OK)
{
BufferedReader br=new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuffer response=new StringBuffer();
String line;
while ((line=br.readLine()) != null)
{
response.append(line);
}
br.close();
return response.toString();
}else {
return "Bad Response";
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}