Guest User

Untitled

a guest
Jan 2nd, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.72 KB | None | 0 0
  1. package umcsandroid.tracker;
  2.  
  3. import android.app.Dialog;
  4. import android.app.ProgressDialog;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.os.AsyncTask;
  9. import android.support.v7.app.AlertDialog;
  10. import android.support.v7.app.AppCompatActivity;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.view.Window;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.TextView;
  17. import android.widget.Toast;
  18.  
  19. import org.json.JSONException;
  20. import org.json.JSONObject;
  21.  
  22. import java.io.BufferedReader;
  23. import java.io.BufferedWriter;
  24. import java.io.IOException;
  25. import java.io.InputStreamReader;
  26. import java.io.OutputStream;
  27. import java.io.OutputStreamWriter;
  28. import java.io.UnsupportedEncodingException;
  29. import java.net.HttpURLConnection;
  30. import java.net.URL;
  31.  
  32. public class LoginActivity extends AppCompatActivity {
  33. public static final String USER_NAME = "umcsandroid.tracker.USER_NAME";
  34. public static final String ROOM_NAME = "umcsandroid.tracker.ROOM_NAME";
  35. public static final String PASSWORD = "umcsandroid.tracker.PASSWORD";
  36.  
  37. EditText editText;
  38. String roomName, userName, password;
  39.  
  40. @Override
  41. protected void onCreate(Bundle savedInstanceState) {
  42. super.onCreate(savedInstanceState);
  43. setContentView(R.layout.activity_login);
  44.  
  45. ((Button) findViewById(R.id.loginButton))
  46. .setOnClickListener(new View.OnClickListener() {
  47. @Override
  48. public void onClick(View v) {
  49. editText = (EditText) findViewById(R.id.roomName);
  50. roomName = String.valueOf(editText.getText());
  51.  
  52. editText = (EditText) findViewById(R.id.username);
  53. userName = String.valueOf(editText.getText());
  54.  
  55. editText = (EditText) findViewById(R.id.password);
  56. password = String.valueOf(editText.getText());
  57. new WebServiceHandler()
  58. .execute("http://position-tracker.azurewebsites.net/api/v1/login");
  59. }
  60. });
  61. }
  62.  
  63. @Override
  64. public void onBackPressed() {
  65. final Dialog dialog = new Dialog(LoginActivity.this);
  66.  
  67. dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
  68. dialog.setContentView(R.layout.close_dialog);
  69.  
  70. TextView txt = (TextView) dialog.findViewById(R.id.close_text);
  71. txt.setText("Are you sure you want to close application?");
  72.  
  73. Button button = (Button) dialog.findViewById(R.id.NoButton);
  74. button.setOnClickListener(new View.OnClickListener() {
  75. @Override
  76. public void onClick(View v) {
  77. dialog.dismiss();
  78. }
  79. });
  80.  
  81. button = (Button) dialog.findViewById(R.id.YesButton);
  82. button.setOnClickListener(new View.OnClickListener() {
  83. @Override
  84. public void onClick(View v) {
  85. finish();
  86. }
  87. });
  88. dialog.show();
  89. }
  90.  
  91. public void click(View v) {
  92. new AlertDialog.Builder(this)
  93. .setMessage("Login successful !")
  94. .setCancelable(false)
  95. .setPositiveButton("Continue", new DialogInterface.OnClickListener() {
  96. public void onClick(DialogInterface dialog, int id) {
  97. LoginActivity.this.finish();
  98. }
  99. }).show();
  100. }
  101.  
  102. private class WebServiceHandler extends AsyncTask<String, Void, String> {
  103.  
  104. private ProgressDialog dialog = new ProgressDialog(LoginActivity.this);
  105.  
  106. @Override
  107. protected void onPreExecute() {
  108. dialog.setMessage("Wait...");
  109. dialog.show();
  110. }
  111.  
  112. @Override
  113. protected String doInBackground(String... urls) {
  114.  
  115. HttpURLConnection urlConnection;
  116. JSONObject json = new JSONObject();
  117. String result = "";
  118.  
  119. try {
  120. urlConnection = (HttpURLConnection) ((new URL(urls[0]).openConnection()));
  121. urlConnection.setRequestProperty("Content-Type", "application/json");
  122. urlConnection.setRequestProperty("Atccep", "application/json");
  123. urlConnection.setRequestMethod("POST");
  124. urlConnection.setInstanceFollowRedirects(false);
  125. urlConnection.connect();
  126.  
  127. json.put("roomName", roomName);
  128. json.put("roomPassword", password);
  129. json.put("userName", userName);
  130.  
  131. OutputStream outputStream = urlConnection.getOutputStream();
  132. BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
  133. writer.write(json.toString());
  134. writer.close();
  135. outputStream.close();
  136.  
  137. BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
  138.  
  139. String line;
  140. StringBuilder sb = new StringBuilder();
  141.  
  142. while ((line = bufferedReader.readLine()) != null) {
  143. sb.append(line);
  144. }
  145.  
  146. bufferedReader.close();
  147. result = sb.toString();
  148.  
  149. } catch (UnsupportedEncodingException e) {
  150. e.printStackTrace();
  151. return "ERROR";
  152. } catch (IOException e) {
  153. e.printStackTrace();
  154. return "ERROR";
  155. } catch (JSONException e) {
  156. e.printStackTrace();
  157. return "ERROR";
  158. }
  159.  
  160. return result;
  161. }
  162.  
  163. protected void onPostExecute(String result) {
  164.  
  165. if(result.equals("ERROR")) {
  166. dialogShow(LoginActivity.this, result);
  167. }
  168. else {
  169. try {
  170.  
  171. JSONObject jsonObject = new JSONObject(result);
  172.  
  173. JSONObject responseData = jsonObject.getJSONObject("meta");
  174.  
  175. int code = responseData.getInt("code");
  176. String message = responseData.getString("message");
  177.  
  178.  
  179. if (code == 200) {
  180. Toast.makeText(getBaseContext(), "Login successful !",
  181. Toast.LENGTH_SHORT).show();
  182.  
  183. Intent intent = new Intent(LoginActivity.this, MapActivity.class);
  184. intent.putExtra(USER_NAME, userName);
  185. intent.putExtra(ROOM_NAME, roomName);
  186. intent.putExtra(PASSWORD, password);
  187. startActivity(intent);
  188. } else {
  189. dialogShow(LoginActivity.this, message);
  190. }
  191.  
  192.  
  193. } catch (JSONException e) {
  194. e.printStackTrace();
  195. }
  196. }
  197.  
  198. dialog.dismiss();
  199. }
  200. }
  201.  
  202. public void dialogShow(final Context context, String message) {
  203. final Dialog dialog = new Dialog(LoginActivity.this);
  204.  
  205. dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
  206. dialog.setContentView(R.layout.error_dialog);
  207.  
  208. TextView txt = (TextView) dialog.findViewById(R.id.errorText);
  209. txt.setText(message);
  210.  
  211. Button dismissButton = (Button) dialog.findViewById(R.id.errorDialogButton);
  212. dismissButton.setOnClickListener(new View.OnClickListener() {
  213. @Override
  214. public void onClick(View v) {
  215. dialog.dismiss();
  216. }
  217. });
  218. dialog.show();
  219. }
  220. }
Add Comment
Please, Sign In to add comment