Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1. public class LoginPresenter
  2. implements Bundleable, LoginService.Listener, RegisterService.Listener, LoadingManager.Listener {
  3. private static final String TAG = "LoginPresenter";
  4.  
  5. @Inject
  6. LoginService loginService;
  7.  
  8. @Inject
  9. RegisterService registerService;
  10.  
  11. @Inject
  12. SessionManager sessionManager;
  13.  
  14. @Inject
  15. ProfileManager profileManager;
  16.  
  17. @Inject
  18. LoadingManager loadingManager;
  19.  
  20. @Inject
  21. public LoginPresenter() {
  22. }
  23.  
  24. public interface ViewContract {
  25. void setLoginEnabled(boolean enabled);
  26.  
  27. void setRegisterEnabled(boolean enabled);
  28.  
  29. void navigateToMain();
  30.  
  31. void showLoading();
  32.  
  33. void hideLoading();
  34. }
  35.  
  36. ViewContract view;
  37.  
  38. private boolean hasView() {
  39. return view != null;
  40. }
  41.  
  42. public void bindView(ViewContract view) {
  43. this.view = view;
  44. SingletonBus.INSTANCE.register(this);
  45. evaluateButtonStatus();
  46. loadingManager.triggerLoading();
  47. }
  48.  
  49. public void unbindView() {
  50. SingletonBus.INSTANCE.unregister(this);
  51. this.view = null;
  52. }
  53.  
  54. private String username;
  55. private String password;
  56. private String alias;
  57.  
  58. public void login() {
  59. sessionManager.updateUser(username, password, alias);
  60. loginService.loginUser();
  61. loadingManager.showLoading();
  62. }
  63.  
  64. public void register() {
  65. sessionManager.updateUser(username, password, alias);
  66. registerService.registerUser(new Registration(username, alias, password));
  67. loadingManager.showLoading();
  68. }
  69.  
  70. @Override
  71. public void onEventMainThread(LoadingManager.LoadingEvent e) {
  72. if(e.isLoading()) {
  73. view.showLoading();
  74. } else {
  75. view.hideLoading();
  76. }
  77. }
  78.  
  79. public void notifyUsernameChanged(String newUsername) {
  80. this.username = newUsername;
  81. evaluateButtonStatus();
  82. }
  83.  
  84. public void notifyPasswordChanged(String newPassword) {
  85. this.password = newPassword;
  86. evaluateButtonStatus();
  87. }
  88.  
  89. public void notifyAliasChanged(String newAlias) {
  90. this.alias = newAlias;
  91. evaluateButtonStatus();
  92. }
  93.  
  94. private void evaluateButtonStatus() {
  95. if(hasView()) {
  96. view.setLoginEnabled(isLoginEnabled());
  97. view.setRegisterEnabled(isRegisterEnabled());
  98. }
  99. }
  100.  
  101. private boolean isLoginEnabled() {
  102. return !StringUtils.isEmpty(username) && !StringUtils.isEmpty(password);
  103. }
  104.  
  105. private boolean isRegisterEnabled() {
  106. return isLoginEnabled() && !StringUtils.isEmpty(alias);
  107. }
  108.  
  109. @Override
  110. public void onEventMainThread(LoginService.SuccessEvent e) {
  111. loadingManager.hideLoading();
  112. profileManager.setProfile(e.getResult());
  113. view.navigateToMain();
  114. }
  115.  
  116. @Override
  117. public void onEventMainThread(RegisterService.SuccessEvent e) {
  118. loadingManager.hideLoading();
  119. profileManager.setProfile(e.getResult());
  120. view.navigateToMain();
  121. }
  122.  
  123. @Override
  124. public void onEventMainThread(RetrofitErrorHandler.ErrorEvent e) {
  125. loadingManager.hideLoading();
  126. if(e.hasResult()) {
  127. Toaster.makeLongToast(e.getResult().getMessage());
  128. } else {
  129. Toaster.makeShortToast(ResourceUtils.getString(R.string.an_error_occurred));
  130. }
  131. }
  132.  
  133. @Override
  134. public void onEventMainThread(RetrofitErrorHandler.FailureEvent e) {
  135. loadingManager.hideLoading();
  136. Toaster.makeShortToast(ResourceUtils.getString(R.string.an_error_occurred));
  137. }
  138.  
  139. @Override
  140. public Bundle toBundle() {
  141. Bundle bundle = new Bundle();
  142. bundle.putString("username", username);
  143. bundle.putString("password", password);
  144. bundle.putString("alias", alias);
  145. return bundle;
  146. }
  147.  
  148. @Override
  149. public void fromBundle(@Nullable Bundle bundle) {
  150. if(bundle != null) {
  151. username = bundle.getString("username");
  152. password = bundle.getString("password");
  153. alias = bundle.getString("alias");
  154. }
  155. }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement