Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class LoginPresenter
- implements Bundleable, LoginService.Listener, RegisterService.Listener, LoadingManager.Listener {
- private static final String TAG = "LoginPresenter";
- @Inject
- LoginService loginService;
- @Inject
- RegisterService registerService;
- @Inject
- SessionManager sessionManager;
- @Inject
- ProfileManager profileManager;
- @Inject
- LoadingManager loadingManager;
- @Inject
- public LoginPresenter() {
- }
- public interface ViewContract {
- void setLoginEnabled(boolean enabled);
- void setRegisterEnabled(boolean enabled);
- void navigateToMain();
- void showLoading();
- void hideLoading();
- }
- ViewContract view;
- private boolean hasView() {
- return view != null;
- }
- public void bindView(ViewContract view) {
- this.view = view;
- SingletonBus.INSTANCE.register(this);
- evaluateButtonStatus();
- loadingManager.triggerLoading();
- }
- public void unbindView() {
- SingletonBus.INSTANCE.unregister(this);
- this.view = null;
- }
- private String username;
- private String password;
- private String alias;
- public void login() {
- sessionManager.updateUser(username, password, alias);
- loginService.loginUser();
- loadingManager.showLoading();
- }
- public void register() {
- sessionManager.updateUser(username, password, alias);
- registerService.registerUser(new Registration(username, alias, password));
- loadingManager.showLoading();
- }
- @Override
- public void onEventMainThread(LoadingManager.LoadingEvent e) {
- if(e.isLoading()) {
- view.showLoading();
- } else {
- view.hideLoading();
- }
- }
- public void notifyUsernameChanged(String newUsername) {
- this.username = newUsername;
- evaluateButtonStatus();
- }
- public void notifyPasswordChanged(String newPassword) {
- this.password = newPassword;
- evaluateButtonStatus();
- }
- public void notifyAliasChanged(String newAlias) {
- this.alias = newAlias;
- evaluateButtonStatus();
- }
- private void evaluateButtonStatus() {
- if(hasView()) {
- view.setLoginEnabled(isLoginEnabled());
- view.setRegisterEnabled(isRegisterEnabled());
- }
- }
- private boolean isLoginEnabled() {
- return !StringUtils.isEmpty(username) && !StringUtils.isEmpty(password);
- }
- private boolean isRegisterEnabled() {
- return isLoginEnabled() && !StringUtils.isEmpty(alias);
- }
- @Override
- public void onEventMainThread(LoginService.SuccessEvent e) {
- loadingManager.hideLoading();
- profileManager.setProfile(e.getResult());
- view.navigateToMain();
- }
- @Override
- public void onEventMainThread(RegisterService.SuccessEvent e) {
- loadingManager.hideLoading();
- profileManager.setProfile(e.getResult());
- view.navigateToMain();
- }
- @Override
- public void onEventMainThread(RetrofitErrorHandler.ErrorEvent e) {
- loadingManager.hideLoading();
- if(e.hasResult()) {
- Toaster.makeLongToast(e.getResult().getMessage());
- } else {
- Toaster.makeShortToast(ResourceUtils.getString(R.string.an_error_occurred));
- }
- }
- @Override
- public void onEventMainThread(RetrofitErrorHandler.FailureEvent e) {
- loadingManager.hideLoading();
- Toaster.makeShortToast(ResourceUtils.getString(R.string.an_error_occurred));
- }
- @Override
- public Bundle toBundle() {
- Bundle bundle = new Bundle();
- bundle.putString("username", username);
- bundle.putString("password", password);
- bundle.putString("alias", alias);
- return bundle;
- }
- @Override
- public void fromBundle(@Nullable Bundle bundle) {
- if(bundle != null) {
- username = bundle.getString("username");
- password = bundle.getString("password");
- alias = bundle.getString("alias");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement