Guest User

Untitled

a guest
May 21st, 2018
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.36 KB | None | 0 0
  1. public class LoginActivity extends AppCompatActivity implements OnWebAPIResponseListener, View.OnClickListener {
  2.  
  3.  
  4. private final String TAG = LoginActivity.class.getSimpleName();
  5. private final int ACCESS_TOKEN_REQUEST_CODE = 1;
  6. private static final int RC_LOGIN = 2;
  7. private SharedPreferences pref;
  8. private String username, password;
  9. private LoginController controller;
  10. private TextInputEditText usernameEt;
  11. private TextInputEditText passwordEt;
  12. private Button signinBtn;
  13. private RelativeLayout layout;
  14. private ProgressBar progressview;
  15.  
  16.  
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20.  
  21. // Making notification bar transparent
  22. if (Build.VERSION.SDK_INT >= 21) {
  23. getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
  24. }
  25.  
  26. setContentView(R.layout.activity_login);
  27. setComponants();
  28.  
  29. // Toolbar toolbar = (Toolbar) findViewById(R.id.activity_login_toolbar);
  30.  
  31. TextView mTitle = (TextView) findViewById(R.id.activity_login_toolbar_title);
  32.  
  33. // setSupportActionBar(toolbar);
  34. // ActionBar actionBar = getSupportActionBar();
  35. // if (actionBar != null) {
  36. // actionBar.setDisplayHomeAsUpEnabled(false);
  37. // actionBar.setDisplayShowTitleEnabled(false);
  38. mTitle.setText("Sign In");
  39. // }
  40. pref = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
  41.  
  42. boolean isLogged = pref.getBoolean(ISLOGGED, false);
  43. controller = new LoginController(LoginActivity.this, LoginActivity.this);
  44.  
  45. if (isLogged) {
  46. Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
  47. startActivity(intent);
  48. finish();
  49. overridePendingTransition(R.anim.left_in, R.anim.right_out);
  50.  
  51. }
  52. signinBtn.setOnClickListener(this);
  53.  
  54.  
  55. }
  56.  
  57. /*
  58. Bind all Layout widgets
  59. */
  60. private void setComponants() {
  61. progressview = (ProgressBar) findViewById(R.id.activity_login_progressview);
  62. usernameEt = (TextInputEditText) findViewById(R.id.activity_login_username_et);
  63. passwordEt = (TextInputEditText) findViewById(R.id.activity_login_password_et);
  64. signinBtn = (Button) findViewById(R.id.activity_login_signin_btn);
  65. layout = (RelativeLayout) findViewById(R.id.linearLayout);
  66. }
  67.  
  68.  
  69. /**
  70. * @return true or false if there is any validation not fullfill
  71. */
  72.  
  73. private boolean checkValidations() {
  74.  
  75.  
  76. if (TextUtils.isEmpty(usernameEt.getText().toString())) {
  77. usernameEt.requestFocus();
  78. Const.showSnackbar(getResources().getString(R.string.empty_username_password), layout, true);
  79. return false;
  80.  
  81. } else if (TextUtils.isEmpty(passwordEt.getText().toString())) {
  82. passwordEt.requestFocus();
  83. Const.showSnackbar(getResources().getString(R.string.empty_username_password), layout, true);
  84. return false;
  85.  
  86. }
  87. return true;
  88. }
  89.  
  90.  
  91. @Override
  92. public void onCallComplete(Object object, int requestCode) {
  93. switch (requestCode) {
  94. case ACCESS_TOKEN_REQUEST_CODE:
  95. if (object != null) {
  96.  
  97. if (object instanceof AccessTokenModel) {
  98. AccessTokenModel tokenmodel = ((AccessTokenModel) object);
  99.  
  100. Log.d(TAG, "onCallComplete: accessToken=->" + tokenmodel.getAccessToken());
  101.  
  102. SharedPreferences pref = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
  103. SharedPreferences.Editor editor = pref.edit();
  104. editor.putString(ACCESSTOKEN, ((AccessTokenModel) object).getAccessToken());
  105. editor.apply();
  106. checkUserLogin(RC_LOGIN, username, password);
  107.  
  108.  
  109. }
  110.  
  111. }
  112. break;
  113.  
  114. case RC_LOGIN:
  115.  
  116. if (object != null) {
  117.  
  118. if (object instanceof UsersList) {
  119. UsersList mList = ((UsersList) object);
  120.  
  121.  
  122. List<UserModel> userlist = mList.getUserModelList();
  123.  
  124. if (userlist.size() > 0) {
  125. for (UserModel m : userlist) {
  126. if (m.getEmail().equals(usernameEt.getText().toString().trim()) && m.getPassword().equals(passwordEt.getText().toString().trim())) {
  127. SharedPreferences pref = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
  128. SharedPreferences.Editor editor = pref.edit();
  129. editor.putString(USERFULLNAME, m.getFullname());
  130. editor.putString(LOGGEDUSERID, m.getID());
  131. editor.putString(PASSWORD, m.getPassword());
  132. editor.putString(ROLE, m.getRole());
  133. Set<String> companySet = new HashSet<>();
  134. for (int i = 0; i < m.getCompanyModel().size(); i++) {
  135. companySet.add(m.getCompanyModel().get(i).getID());
  136. }
  137. editor.putStringSet(COMPANY, companySet);
  138. Set<String> userAccessSet = new HashSet<>();
  139. for (int i = 0; i < m.getUserAccessList().size(); i++) {
  140. userAccessSet.add(m.getUserAccessList().get(i).getID());
  141. }
  142. editor.putStringSet(Const.USERACCESS, userAccessSet);
  143.  
  144. editor.putBoolean(ISLOGGED, true);
  145. editor.apply();
  146. cancelProgressDialog();
  147. Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
  148. startActivity(intent);
  149. finish();
  150. overridePendingTransition(R.anim.right_in, R.anim.left_out);
  151.  
  152. } else {
  153. cancelProgressDialog();
  154. Const.showSnackbar(getResources().getString(R.string.error_login), layout, true);
  155. }
  156.  
  157. // Log.d("User Company Name",m.getCompanyModel().getCompanyName());
  158.  
  159. }
  160.  
  161.  
  162. } else {
  163. cancelProgressDialog();
  164. Const.showSnackbar(getResources().getString(R.string.error_login), layout, true);
  165.  
  166. }
  167.  
  168.  
  169. }
  170.  
  171. }
  172.  
  173. break;
  174. }
  175.  
  176. }
  177.  
  178. /*
  179. Show progress bar
  180. */
  181. private void showProgressDialog() {
  182. if (progressview != null) {
  183. progressview.setVisibility(View.VISIBLE);
  184. getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
  185. WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
  186. }
  187. }
  188.  
  189. /*
  190. Hide progress bar
  191. */
  192. private void cancelProgressDialog() {
  193. if (progressview != null) {
  194. progressview.setVisibility(View.GONE);
  195. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
  196.  
  197. }
  198. }
  199.  
  200. @Override
  201. public void onCallError(APIError errorModel, int requestCode) {
  202. switch (requestCode) {
  203.  
  204. case RC_LOGIN:
  205.  
  206. if (errorModel != null) {
  207. if (errorModel.getErrorCode() == 401) {
  208. getRefreshToken(RC_LOGIN);
  209.  
  210. } else {
  211. cancelProgressDialog();
  212. Const.showSnackbar(errorModel.getMessage(), layout, true);
  213. }
  214.  
  215.  
  216. }
  217.  
  218. break;
  219. case ACCESS_TOKEN_REQUEST_CODE:
  220. if (errorModel != null) {
  221.  
  222.  
  223. Log.e(TAG, "onCallError: " + errorModel.getErrorCode());
  224. Const.showSnackbar(errorModel.getMessage(), layout, true);
  225. cancelProgressDialog();
  226.  
  227.  
  228. }
  229. break;
  230. }
  231.  
  232. }
  233.  
  234. @Override
  235. public void onCallFailure(String errorMessage, int requestCode) {
  236. cancelProgressDialog();
  237. Const.showSnackbar(errorMessage, layout, true);
  238. }
  239.  
  240. @Override
  241. public void OnTokenRefresh(boolean isRefresh, int requestCode) {
  242. if (isRefresh) {
  243. switch (requestCode) {
  244. case RC_LOGIN:
  245. checkUserLogin(RC_LOGIN, username, password);
  246. break;
  247. case ACCESS_TOKEN_REQUEST_CODE:
  248. getAccessToken(ACCESS_TOKEN_REQUEST_CODE);
  249. break;
  250. }
  251. }
  252.  
  253. }
  254.  
  255. @Override
  256. public void onCallComplete(List obj, int requestCode) {
  257.  
  258. }
  259.  
  260.  
  261. @Override
  262. public void onBackPressed() {
  263. super.onBackPressed();
  264. overridePendingTransition(R.anim.left_in, R.anim.right_out);
  265. }
  266.  
  267. @Override
  268. public void onClick(View v) {
  269.  
  270.  
  271. try {
  272. Const.closeKeyboard(LoginActivity.this);
  273. } catch (Exception e) {
  274. e.printStackTrace();
  275. }
  276.  
  277. boolean isnoError = checkValidations();
  278.  
  279.  
  280. if (ApplicationUtil.isInternetOn(LoginActivity.this)) {
  281. if (isnoError) {
  282. username = usernameEt.getText().toString();
  283. password = passwordEt.getText().toString();
  284.  
  285.  
  286. pref = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
  287. String token = pref.getString(ACCESSTOKEN, null);
  288.  
  289. if (token != null) {
  290. checkUserLogin(RC_LOGIN, username, password);
  291. } else {
  292. getAccessToken(ACCESS_TOKEN_REQUEST_CODE);
  293. }
  294.  
  295.  
  296. }
  297. } else {
  298. Const.showSnackbar(getResources().getString(R.string.no_internet), layout, true);
  299. }
  300. }
  301.  
  302. /**
  303. * Make web call to get new access token
  304. *
  305. * @param requestCode Request code for web call
  306. */
  307. private void getRefreshToken(final int requestCode) {
  308.  
  309. if (Const.isInternetOn(LoginActivity.this)) {
  310. controller.getRefreshAccessToken(requestCode);
  311. } else {
  312. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(LoginActivity.this);
  313. builder.setTitle(getResources().getString(R.string.internet_connetion_title));
  314. builder.setMessage(getResources().getString(R.string.connetion_message));
  315. builder.setCancelable(false);
  316. builder.setPositiveButton(getResources().getString(R.string.try_again), new DialogInterface.OnClickListener() {
  317.  
  318. @Override
  319. public void onClick(DialogInterface dialog, int which) {
  320.  
  321.  
  322. dialog.dismiss();
  323.  
  324. getRefreshToken(requestCode);
  325.  
  326.  
  327. }
  328.  
  329.  
  330. });
  331.  
  332.  
  333. builder.show();
  334. }
  335. }
  336.  
  337. /**
  338. * Make web call to get access token
  339. *
  340. * @param requestCode Request code for web call
  341. */
  342. private void getAccessToken(final int requestCode) {
  343. if (Const.isInternetOn(LoginActivity.this)) {
  344. showProgressDialog();
  345.  
  346. controller.getAccessToken(requestCode);
  347. } else {
  348. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(LoginActivity.this);
  349. builder.setTitle(getResources().getString(R.string.internet_connetion_title));
  350. builder.setMessage(getResources().getString(R.string.connetion_message));
  351. builder.setCancelable(false);
  352. builder.setPositiveButton(getResources().getString(R.string.try_again), new DialogInterface.OnClickListener() {
  353.  
  354. @Override
  355. public void onClick(DialogInterface dialog, int which) {
  356.  
  357.  
  358. dialog.dismiss();
  359.  
  360. getAccessToken(requestCode);
  361.  
  362.  
  363. }
  364.  
  365.  
  366. });
  367.  
  368.  
  369. builder.show();
  370. }
  371. }
  372.  
  373. /**
  374. * Make Web call to check user Login
  375. *
  376. * @param requestCode Request code for web call
  377. * @param username username or email enter by user
  378. * @param password password enter by user
  379. */
  380. private void checkUserLogin(final int requestCode, final String username, final String password) {
  381. if (Const.isInternetOn(LoginActivity.this)) {
  382. showProgressDialog();
  383. controller.checkUsersCredential(requestCode, username, password);
  384. } else {
  385. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(LoginActivity.this);
  386. builder.setTitle(getResources().getString(R.string.internet_connetion_title));
  387. builder.setMessage(getResources().getString(R.string.connetion_message));
  388. builder.setCancelable(false);
  389. builder.setPositiveButton(getResources().getString(R.string.try_again), new DialogInterface.OnClickListener() {
  390.  
  391. @Override
  392. public void onClick(DialogInterface dialog, int which) {
  393.  
  394.  
  395. dialog.dismiss();
  396.  
  397. checkUserLogin(requestCode, username, password);
  398.  
  399.  
  400. }
  401.  
  402.  
  403. });
  404.  
  405.  
  406. builder.show();
  407. }
  408. }
  409. }
Add Comment
Please, Sign In to add comment