Everything on the server side end of things is working as it should. My problem here is that I'm not sure how to go back to login page if the HTTP response is "Registration success!"
Both my Login and Register classes are relying on BackgroundTask to handle the asynchronous operations.
Here is the code for BackgroundTask.
public class BackgroundTask extends AsyncTask<String, Void, String> {
AlertDialog mAlertDialog;
Context context;
private CheckTask mCheckTask;
BackgroundTask(Context context, Boolean login, Boolean register) {
this.context = context;
mCheckTask = new CheckTask(login, register);
}
@Override
protected String doInBackground(String... params) {
String reg_url = "http://www.myegotest.com/register.php";
String login_url = "http://www.myegotest.com/login.php";
////////////////////////REGISTER SCRIPT/////////////////////////////
if (mCheckTask.getIsRegisterTask()) {
String first_name = params[0];
String last_name = params[1];
String username = params[2];
String password = params[3];
try {
//Set the URL we are working with
URL url = new URL(reg_url);
//Open a url connection and set params for the url connection
HttpURLConnection LucasHttpURLConnection = (HttpURLConnection) url.openConnection();
LucasHttpURLConnection.setRequestMethod("POST");
LucasHttpURLConnection.setDoOutput(true);
LucasHttpURLConnection.setDoInput(true);
//Retrieve the output stream
OutputStream os = LucasHttpURLConnection.getOutputStream();
//Create a buffered writer to write the data to the output stream output stream.
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
//Encode Data we are sending on the output stream
String data = URLEncoder.encode("first_name", "UTF-8") + "=" + URLEncoder.encode(first_name, "UTF-8") + "&" +
URLEncoder.encode("last_name", "UTF-8") + "=" + URLEncoder.encode(last_name, "UTF-8") + "&" +
URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8") + "&" +
URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");
//Write the data to the output stream, and close buffered writer
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
//Close output stream
os.close();
//InputStream to get response
InputStream IS = LucasHttpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(IS, "iso-8859-1"));
String response = "";
String line;
while ((line = bufferedReader.readLine()) != null) {
response += line;
}
bufferedReader.close();
IS.close();
//LucasHttpURLConnection.disconnect();
return response;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//////////////////////////////////LOGIN SCRIPT/////////////////////////////////////////
} else if (mCheckTask.getIsLoginTask()) {
String username = params[0];
String password = params[1];
try {
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String data = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8") + "&" +
URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
//InputStream to get response
InputStream IS = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(IS, "iso-8859-1"));
String response = "";
String line;
while ((line = bufferedReader.readLine()) != null) {
response += line;
}
bufferedReader.close();
IS.close();
httpURLConnection.disconnect();
return response;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPreExecute() {
if (mCheckTask.getIsLoginTask()) {
mAlertDialog = new AlertDialog.Builder(context).create();
mAlertDialog.setTitle("Login Information... ");
} else {
mAlertDialog = new AlertDialog.Builder(context).create();
mAlertDialog.setTitle("Register Information... ");
}
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result) {
if (result.equals("Please choose another username")) {
mAlertDialog.setMessage(result);
mAlertDialog.setButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
mAlertDialog.show();
} else if (result.equals("Registration success!")) {
mAlertDialog.setMessage(result);
mAlertDialog.setButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
mAlertDialog.show();
} else {
mAlertDialog.setMessage(result);
mAlertDialog.show();
}
}
}