Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.58 KB | None | 0 0
  1. public class LoginActivity extends AppCompatActivity {
  2.  
  3. private boolean isChekedOffLine = false;
  4.  
  5. private Handler handler = new Handler();
  6. private ServerSocket serverSocket;
  7. private int SERVERPORT;
  8. private int TIMEOUT_SERVER;
  9.  
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_login);
  14. initUI();
  15.  
  16. SERVERPORT = Parameters.SERVER_PORT;
  17. TIMEOUT_SERVER = Parameters.SERVER_TIMEOUT;
  18.  
  19. Thread fst = new Thread(new ServerThread());
  20. fst.start();
  21. }
  22.  
  23. private void initUI() {
  24. String userLogin = null;
  25. ....
  26. ....
  27.  
  28. final Button btnAccess = (Button) findViewById(R.id.btnAccess);
  29. btnAccess.setOnClickListener(new View.OnClickListener() {
  30. @Override
  31. public void onClick(View v) {
  32. Login loginBean = new Login();
  33. String user = txtUser.getText().toString().trim();
  34. String pass = txtPass.getText().toString().trim();
  35. if (!user.equals("")){
  36. if(!pass.equals("")){
  37. loginBean.setUser(user.toUpperCase());
  38. loginBean.setPass(pass);
  39. loginBean.setType("A");
  40. loginBean.setIsOffline(isChekedOffLine);
  41. }else {
  42. txtPass.setError(getString(R.string.err_pass));
  43. return;
  44. }
  45. }else {
  46. txtUser.setError(getString(R.string.err_user));
  47. return;
  48. }
  49. LoginTask loginTask = new LoginTask(LoginActivity.this, loginBean);
  50. loginTask.execute();
  51. }
  52. });
  53.  
  54. public class ServerThread implements Runnable {
  55. public void run() {
  56. Socket client = null;
  57. try {
  58. serverSocket = new ServerSocket(SERVERPORT);
  59. serverSocket.setSoTimeout(TIMEOUT_SERVER);
  60.  
  61. client = serverSocket.accept();
  62. Globals.socketIn = new BufferedReader(new InputStreamReader(client.getInputStream()));
  63. Globals.socketOut = new PrintWriter(client.getOutputStream(),true);
  64.  
  65. }catch (SocketTimeoutException e){
  66. handler.post(new Runnable() {
  67. @Override
  68. public void run() {
  69. Toast.makeText(LoginActivity.this,"Tiempo de espera terminado",Toast.LENGTH_SHORT).show();
  70. }
  71. });
  72. }catch (IOException e) {
  73. handler.post(new Runnable() {
  74. @Override
  75. public void run() {
  76. Toast.makeText(LoginActivity.this,"Ocurrio un error al inicia el servicio",Toast.LENGTH_SHORT).show();
  77. }
  78. });
  79. e.printStackTrace();
  80. }finally {
  81. try {
  82. if (serverSocket != null) {
  83. serverSocket.close();
  84. }
  85. } catch (IOException e) {
  86. Log.e("LoginActivity",e.getMessage());
  87. e.printStackTrace();
  88. }
  89. }
  90.  
  91. if (client != null) {
  92. Globals.connected = true;
  93. handler.post(new Runnable() {
  94. @Override
  95. public void run() {
  96. Toast.makeText(LoginActivity.this,"Conexión establecida con exito.!!",Toast.LENGTH_SHORT).show();
  97. }
  98. });
  99. }
  100. }
  101. }
  102.  
  103. @Override
  104. protected void onStop() {
  105. super.onStop();
  106. try {
  107. if (serverSocket != null) {
  108. serverSocket.close();
  109. }
  110. } catch (IOException e) {
  111. e.printStackTrace();
  112. }
  113. }
  114.  
  115. public static class Globals {
  116. public static boolean connected;
  117. public static BufferedReader socketIn;
  118. public static PrintWriter socketOut;
  119. }
  120.  
  121. }
  122.  
  123. public class LoginTask extends AsyncTask {
  124.  
  125. private ProgressDialog progressDialog;
  126. private Context context;
  127. private Resources resources;
  128. private Login loginParams;
  129. private String msgAccess;
  130.  
  131. public LoginTask(Context context, Login loginParams){
  132. this.context = context;
  133. this.resources = context.getResources();
  134. this.loginParams = loginParams;
  135. }
  136.  
  137. @Override
  138. protected void onPreExecute(){
  139. progressDialog = new ProgressDialog(context);
  140. progressDialog.setMessage(resources.getString(R.string.msg_access));
  141. progressDialog.setCancelable(true);
  142. progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  143. progressDialog.show();
  144. }
  145.  
  146. @Override
  147. protected String doInBackground(Object[] objects) {
  148. msgAccess = getValidateUser();
  149. return msgAccess;
  150. }
  151.  
  152. @Override
  153. protected void onPostExecute(Object o){
  154. if (msgAccess != null) {
  155. if (msgAccess.equals("OK")) {
  156. ....
  157. ....
  158. } else{
  159. AlertDialog.Builder builder = new AlertDialog.Builder(context);
  160. builder.setTitle(R.string.msg_alert_title_login);
  161. builder.setMessage(msgAccess);
  162. builder.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
  163. @Override
  164. public void onClick(DialogInterface dialogInterface, int i) {
  165. }
  166. });
  167. builder.show();
  168. }
  169. }else{
  170. AlertDialog.Builder builder = new AlertDialog.Builder(context);
  171. builder.setTitle(R.string.msg_alert_title_login);
  172. builder.setMessage(R.string.err_msg_null);
  173. builder.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
  174. @Override
  175. public void onClick(DialogInterface dialogInterface, int i) {
  176. }
  177. });
  178. builder.show();
  179. }
  180.  
  181. if (progressDialog.isShowing()) {
  182. progressDialog.dismiss();
  183. }
  184. }
  185.  
  186. private String getValidateUser(){
  187. String isUser = null;
  188. String line;
  189. JSONArray json;
  190. StringBuilder builder = new StringBuilder();
  191. StringBuilder requestURL = new StringBuilder();
  192. URL url;
  193. URLConnection conn;
  194. BufferedReader reader;
  195. try {
  196. requestURL.append(Parameters.REQUEST_URL_SERVICE_COLLID).append("/").append(loginParams.getUser());
  197. if (LoginActivity.Globals.connected){
  198. url = new URL(requestURL.toString());
  199. conn = url.openConnection();
  200. conn.setConnectTimeout(Parameters.TIMEOUT);
  201. conn.setReadTimeout(Parameters.TIMEOUT);
  202. LoginActivity.Globals.socketOut.println(requestURL.toString());
  203. LoginActivity.Globals.socketOut.flush();
  204. // Aqui se queda y tiene al ProcessDialog sin terminar y no puede pasar al método onPostExecute
  205. while ((line = LoginActivity.Globals.socketIn.readLine()) != null) {
  206. builder.append(line);
  207. }
  208. }else {
  209. url = new URL(requestURL.toString());
  210. conn = url.openConnection();
  211. conn.setConnectTimeout(Parameters.TIMEOUT);
  212. conn.setReadTimeout(Parameters.TIMEOUT);
  213. reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  214. while ((line = reader.readLine()) != null) {
  215. builder.append(line);
  216. }
  217. }
  218. if (builder.toString().length() > 2) {
  219. JSONObject jsonObj = new JSONObject("{"users": [" + builder.toString() + "]}");
  220. json = jsonObj.getJSONArray("users");
  221. for (int i=0;i<json.length();i++){
  222. JSONObject responseObject = json.getJSONObject(i);
  223. if (responseObject != null) {
  224. ....
  225. ....
  226. }
  227. }
  228. }
  229. } catch (Exception e) {
  230. Log.e(tag,e.getMessage());
  231. e.printStackTrace();
  232. }
  233. return isUser;
  234. }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement