Guest User

Untitled

a guest
Oct 11th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.70 KB | None | 0 0
  1. package com.vokal.petcheck;
  2.  
  3. import android.app.Activity;
  4. import android.app.AlertDialog;
  5. import android.app.ProgressDialog;
  6. import android.content.Context;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.os.AsyncTask;
  10. import android.os.Bundle;
  11. import android.util.Log;
  12. import android.view.View;
  13. import android.view.Window;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.Toast;
  17.  
  18. import com.vokal.petcheck.constants.Constants;
  19. import com.vokal.petcheck.walk.User;
  20.  
  21. import java.util.ArrayList;
  22.  
  23. public class LoginActivity extends Activity
  24. {
  25. private static final String TAG = "LoginActivity";
  26.  
  27. private static final int SECURITY_ACTIVITY = 0;
  28.  
  29. private Button mLogin;
  30. private Button mForgotPassword;
  31. private EditText mUsername;
  32. private EditText mPassword;
  33. private ProgressDialog mDialog;
  34.  
  35. private LoginTask mLoginTask;
  36. private ForgotPasswordLaunchTask mForgotTask;
  37.  
  38. /** Called when the activity is first created. */
  39. @Override
  40. public void onCreate(Bundle savedInstanceState)
  41. {
  42. super.onCreate(savedInstanceState);
  43.  
  44. requestWindowFeature(Window.FEATURE_NO_TITLE);
  45.  
  46. setContentView(R.layout.login_activity);
  47.  
  48. ArrayList<Object> retained = (ArrayList<Object>) getLastNonConfigurationInstance();
  49.  
  50. if (retained != null) {
  51. mLoginTask = (LoginTask) retained.get(0);
  52. mForgotTask = (ForgotPasswordLaunchTask) retained.get(1);
  53. }
  54.  
  55. if (mLoginTask != null) {
  56. if (!mLoginTask.getStatus().equals(AsyncTask.Status.FINISHED)) {
  57. mLoginTask.setContext(this);
  58. mDialog = ProgressDialog.show(LoginActivity.this,
  59. "Loading", "Logging In");
  60. }
  61. }
  62.  
  63. if (mForgotTask != null) {
  64. if (!mForgotTask.getStatus().equals(AsyncTask.Status.FINISHED)) {
  65. mForgotTask.setContext(this);
  66. mDialog = ProgressDialog.show(LoginActivity.this,
  67. "Loading", "Retrieving Security Question");
  68. }
  69. }
  70.  
  71. mLogin = (Button) findViewById(R.id.login_submit);
  72. mForgotPassword = (Button) findViewById(R.id.login_forgot);
  73. mUsername = (EditText) findViewById(R.id.login_username);
  74. mPassword = (EditText) findViewById(R.id.login_password);
  75.  
  76. mLogin.setOnClickListener(mLoginListener);
  77. mForgotPassword.setOnClickListener(mLoginListener);
  78.  
  79. }
  80.  
  81. @Override
  82. public void onPause() {
  83. super.onPause();
  84. if (mDialog != null) {
  85. mDialog.dismiss();
  86. }
  87. }
  88.  
  89. @Override
  90. public void onStop() {
  91. super.onStop();
  92. if (mDialog != null) {
  93. mDialog.dismiss();
  94. }
  95. }
  96.  
  97. @Override
  98. public void onDestroy() {
  99. super.onDestroy();
  100. if (mDialog != null) {
  101. mDialog.dismiss();
  102. }
  103. }
  104.  
  105. @Override
  106. public Object onRetainNonConfigurationInstance() {
  107. ArrayList<Object> retainedObjects = new ArrayList<Object>();
  108. retainedObjects.add(mLoginTask);
  109. retainedObjects.add(mForgotTask);
  110. return retainedObjects;
  111. }
  112.  
  113. public void onActivityResult(int aRequestCode, int aResultCode, Intent aIntent) {
  114. if (aRequestCode == SECURITY_ACTIVITY) {
  115. if (aResultCode == RESULT_OK) {
  116. launchWelcomeScreen();
  117. }
  118. }
  119. }
  120.  
  121. public void checkLogin() {
  122. String username = (mUsername.getText()).toString();
  123. String password = (mPassword.getText()).toString();
  124.  
  125. boolean usernameEmpty = username.equals("");
  126. boolean passwordEmpty = password.equals("");
  127.  
  128. if(!(usernameEmpty) &&!(passwordEmpty)) {
  129. mLoginTask = new LoginTask();
  130. mLoginTask.setContext(this);
  131. mLoginTask.execute(username, password);
  132. } else if (usernameEmpty && passwordEmpty) {
  133. Toast.makeText(LoginActivity.this,
  134. R.string.login_both_empty, Toast.LENGTH_SHORT).show();
  135. } else if (usernameEmpty) {
  136. Toast.makeText(LoginActivity.this,
  137. R.string.login_username_empty, Toast.LENGTH_SHORT).show();
  138. } else if (passwordEmpty) {
  139. Toast.makeText(LoginActivity.this,
  140. R.string.login_password_empty, Toast.LENGTH_SHORT).show();
  141. }
  142. }
  143.  
  144. public void forgotPressed() {
  145. final EditText usernameField = new EditText(LoginActivity.this);
  146. usernameField.setHint("username");
  147. new AlertDialog.Builder(LoginActivity.this)
  148. .setTitle("Enter Username")
  149. .setView(usernameField)
  150. .setPositiveButton("OK",
  151. new DialogInterface.OnClickListener() {
  152. public void onClick(DialogInterface aDialog, int aWhich) {
  153. String username = usernameField.getText().toString();
  154. if (!username.equals("")) {
  155. mForgotTask = new ForgotPasswordLaunchTask();
  156. mForgotTask.setContext(LoginActivity.this);
  157. mForgotTask.execute(username);
  158. }
  159. }
  160. })
  161. .setNegativeButton("Cancel", null)
  162. .show();
  163. }
  164.  
  165. public View.OnClickListener mLoginListener = new View.OnClickListener() {
  166. public void onClick(View aView) {
  167. switch(aView.getId()) {
  168. case R.id.login_submit:
  169. checkLogin();
  170. break;
  171. case R.id.login_forgot:
  172. forgotPressed();
  173. break;
  174. default:
  175. break;
  176. }
  177. }
  178. };
  179.  
  180. public void launchWelcomeScreen() {
  181. mUsername.setText("");
  182. mPassword.setText("");
  183.  
  184. Intent i = new Intent();
  185. i.setClass(LoginActivity.this, WelcomeActivity.class);
  186. startActivity(i);
  187. }
  188.  
  189. public class LoginTask extends AsyncTask<String, Void, Boolean> {
  190. private LoginActivity mContext;
  191.  
  192. public void setContext(LoginActivity aContext) {
  193. mContext = aContext;
  194. }
  195.  
  196. public void onPreExecute() {
  197. LoginActivity.this.mDialog = ProgressDialog.show(LoginActivity.this,
  198. "Loading", "Logging In");
  199. }
  200.  
  201. public Boolean doInBackground(String... aParams) {
  202. boolean result = false;
  203.  
  204. if (!isCancelled()) {
  205. result = User.getLogin(aParams[0], aParams[1]);
  206. }
  207.  
  208. return result;
  209. }
  210.  
  211. public void onPostExecute(Boolean aResult) {
  212. if (!isCancelled()) {
  213. mContext.clearDialog();
  214. if (aResult == true) {
  215. launchWelcomeScreen();
  216. } else {
  217. getWrongLoginDialog(LoginActivity.this).show();
  218. }
  219. }
  220. }
  221. }
  222.  
  223. public class ForgotPasswordLaunchTask extends AsyncTask<String, Void, String> {
  224. private String mUsername;
  225. private LoginActivity mContext;
  226.  
  227. public void setContext(LoginActivity aContext) {
  228. mContext = aContext;
  229. }
  230.  
  231. public void onPreExecute() {
  232. mDialog = ProgressDialog.show(LoginActivity.this,
  233. "Loading", "Retrieving Security Question");
  234. }
  235.  
  236. public String doInBackground(String... aParams) {
  237. String result = "";
  238.  
  239. if (!isCancelled()) {
  240. mUsername = aParams[0];
  241. result = User.getSecurityQuestion(aParams[0]);
  242. }
  243.  
  244. return result;
  245. }
  246.  
  247. public void onPostExecute(String aResult) {
  248.  
  249. if (!isCancelled()) {
  250. mContext.clearDialog();
  251. if (aResult != null && !aResult.equals("")) {
  252. Intent i = new Intent();
  253. i.setClass(LoginActivity.this, SecurityQuestionActivity.class);
  254. i.putExtra(Constants.PARAM_USERNAME, mUsername);
  255. i.putExtra(Constants.SECURITY_QUESTION, aResult);
  256. startActivityForResult(i, SECURITY_ACTIVITY);
  257. } else {
  258. getWrongLoginDialog(LoginActivity.this).show();
  259. }
  260. }
  261. }
  262. }
  263.  
  264. public void clearDialog() {
  265. Log.d(TAG, "Clearing Dialog");
  266. mDialog.dismiss();
  267. }
  268.  
  269. private AlertDialog.Builder getWrongLoginDialog(Context aContext) {
  270. return new AlertDialog.Builder(aContext)
  271. .setIcon(android.R.drawable.ic_dialog_alert)
  272. .setTitle(aContext.getString(R.string.wrong_password))
  273. .setMessage(aContext.getString(R.string.wrong_password_dialog))
  274. .setPositiveButton("OK", null);
  275. }
  276.  
  277. }
Add Comment
Please, Sign In to add comment