/app/src/main/java/timkaragosian/timkaragosiansampleproject/SignUpActivity.java

https://gitlab.com/tjkaragosian/timkaragosiansampleproject · Java · 213 lines · 191 code · 22 blank · 0 comment · 6 complexity · 02164f3c823f4bb904d378efee5b36a3 MD5 · raw file

  1. package timkaragosian.timkaragosiansampleproject;
  2. import android.content.Intent;
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.view.View;
  7. import android.view.WindowManager;
  8. import android.widget.Button;
  9. import android.widget.EditText;
  10. import android.widget.Toast;
  11. import org.json.JSONException;
  12. import org.json.JSONObject;
  13. import java.io.BufferedInputStream;
  14. import java.io.BufferedReader;
  15. import java.io.IOException;
  16. import java.io.InputStream;
  17. import java.io.InputStreamReader;
  18. import java.io.UnsupportedEncodingException;
  19. import java.net.HttpURLConnection;
  20. import java.net.MalformedURLException;
  21. import java.net.URL;
  22. import java.net.URLEncoder;
  23. public class SignUpActivity extends AppCompatActivity {
  24. private String readStream(InputStream inputStream) throws IOException {
  25. StringBuilder sb = new StringBuilder();
  26. BufferedReader r = new BufferedReader(new InputStreamReader(inputStream),1000);
  27. for (String line = r.readLine(); line != null; line =r.readLine()){
  28. sb.append(line);
  29. }
  30. inputStream.close();
  31. return sb.toString();
  32. }
  33. public void successfulRegisterToast(){
  34. Toast.makeText(this, "Sign Up Successful!", Toast.LENGTH_SHORT).show();
  35. }
  36. @Override
  37. protected void onCreate(Bundle savedInstanceState) {
  38. super.onCreate(savedInstanceState);
  39. setContentView(R.layout.activity_sign_up);
  40. final EditText emailEditText = (EditText) findViewById(R.id.EmailEditText);
  41. final EditText passwordEditText = (EditText) findViewById(R.id.PasswordEditText);
  42. final Button signUpButton = (Button)findViewById(R.id.SignUpSubmitButton);
  43. signUpButton.setOnClickListener(new View.OnClickListener() {
  44. @Override
  45. public void onClick(View view) {
  46. signUpButton.setEnabled(false);
  47. Thread registerThread = new Thread(new Runnable() {
  48. @Override
  49. public void run() {
  50. String jsonString = null;
  51. URL url = null;
  52. HttpURLConnection urlConnection = null;
  53. try {
  54. String encodedEmail;
  55. String encodedPassword;
  56. try {
  57. encodedEmail = URLEncoder.encode(emailEditText.getText().toString().trim(), "UTF-8");
  58. encodedPassword = URLEncoder.encode(passwordEditText.getText().toString(), "UTF-8");
  59. } catch (UnsupportedEncodingException e) {
  60. e.printStackTrace();
  61. return;
  62. }
  63. url = new URL("https://example.tkbil.com/api/1/user_create.php?email=" +
  64. encodedEmail + "&password=" + encodedPassword);
  65. urlConnection = (HttpURLConnection) url.openConnection();
  66. InputStream in = null;
  67. in = new BufferedInputStream(urlConnection.getInputStream());
  68. jsonString = readStream(in);
  69. Log.d("JSON STRING", jsonString);
  70. JSONObject jsonObject = new JSONObject(jsonString);
  71. if (jsonObject.has("error")) {
  72. Log.d("sign in error", "Error: input stream");
  73. new Thread() {
  74. public void run() {
  75. try {
  76. runOnUiThread(new Runnable() {
  77. @Override
  78. public void run() {
  79. Toast.makeText(getApplicationContext(), "Error Signing Up. Please contact timkaragosian@gmail.com", Toast.LENGTH_SHORT).show();
  80. }
  81. });
  82. Thread.sleep(300);
  83. } catch (InterruptedException e) {
  84. e.printStackTrace();
  85. }
  86. }
  87. }.start();
  88. return;
  89. }
  90. if (jsonObject.has("result")) {
  91. new Thread() {
  92. public void run() {
  93. try {
  94. runOnUiThread(new Runnable() {
  95. @Override
  96. public void run() {
  97. Intent loginIntent = new Intent(SignUpActivity.this, LogInActivity.class);
  98. loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  99. startActivity(loginIntent);
  100. successfulRegisterToast();
  101. finish();
  102. }
  103. });
  104. Thread.sleep(300);
  105. } catch (InterruptedException e) {
  106. e.printStackTrace();
  107. }
  108. }
  109. }.start();
  110. }
  111. } catch (MalformedURLException e) {
  112. e.printStackTrace();
  113. Log.d("sign up error", "Error: URL");
  114. new Thread() {
  115. public void run() {
  116. try {
  117. runOnUiThread(new Runnable() {
  118. @Override
  119. public void run() {
  120. Toast.makeText(getApplicationContext(), "Error Signing Up. Please contact timkaragosian@gmail.com", Toast.LENGTH_SHORT).show();
  121. }
  122. });
  123. Thread.sleep(300);
  124. } catch (InterruptedException e) {
  125. e.printStackTrace();
  126. }
  127. }
  128. }.start();
  129. } catch (IOException e) {
  130. e.printStackTrace();
  131. Log.d("sign up error", "Error: IO");
  132. new Thread() {
  133. public void run() {
  134. try {
  135. runOnUiThread(new Runnable() {
  136. @Override
  137. public void run() {
  138. Toast.makeText(getApplicationContext(), "Error Signing Up. Please contact timkaragosian@gmail.com", Toast.LENGTH_SHORT).show();
  139. }
  140. });
  141. Thread.sleep(300);
  142. } catch (InterruptedException e) {
  143. e.printStackTrace();
  144. }
  145. }
  146. }.start();
  147. } catch (JSONException e) {
  148. e.printStackTrace();
  149. Log.d("sign up error", "Error: JSON");
  150. new Thread() {
  151. public void run() {
  152. try {
  153. runOnUiThread(new Runnable() {
  154. @Override
  155. public void run() {
  156. Toast.makeText(getApplicationContext(), "Error Signing In. Please contact timkaragosian@gmail.com", Toast.LENGTH_SHORT).show();
  157. }
  158. });
  159. Thread.sleep(300);
  160. } catch (InterruptedException e) {
  161. e.printStackTrace();
  162. }
  163. }
  164. }.start(); } finally {
  165. if (urlConnection != null) {
  166. urlConnection.disconnect();
  167. }
  168. new Thread() {
  169. public void run() {
  170. try {
  171. runOnUiThread(new Runnable() {
  172. @Override
  173. public void run() {
  174. signUpButton.setEnabled(true);
  175. }
  176. });
  177. Thread.sleep(300);
  178. } catch (InterruptedException e) {
  179. e.printStackTrace();
  180. }
  181. }
  182. }.start();
  183. }
  184. }
  185. });
  186. registerThread.start();
  187. }
  188. });
  189. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  190. }
  191. }