Bug 4228: Fixed a bug that caused the user hint about login to stay open

when a user logs in
This commit is contained in:
Steffen Schaefer committed 2017-08-17 10:41:26 +02:00
1 parent 492ecdb66b
commit c3a0798910
4 files changed
+20 -11

No files matched your search

@@ -85,5 +85,5 @@ public interface AuthenticationManager {
void onSuccess(T result);
}
void checkNewUserPopup(Consumer<Runnable> showUserHintCallback);
void checkNewUserPopup(Runnable hideUserHintCallback, Consumer<Runnable> showUserHintCallback);
}
@@ -171,15 +171,18 @@ public class AuthenticationManagerImpl implements AuthenticationManager {
}
@Override
public void checkNewUserPopup(Consumer<Runnable> showUserHintCallback) {
public void checkNewUserPopup(final Runnable hideUserHintCallback, Consumer<Runnable> showUserHintCallback) {
userService.addUserStatusEventHandler(new UserStatusEventHandler() {
@Override
public void onUserStatusChange(UserDTO user) {
// We are only interested in the initial user
userService.removeUserStatusEventHandler(this);
if (user == null && !userService.wasUserRecentlyLoggedInOrDismissedTheHint()) {
showUserHintCallback.accept(userService::setUserLoginHintToStorage);
if (user != null) {
// No further user changes need to be handled
userService.removeUserStatusEventHandler(this);
hideUserHintCallback.run();
} else {
if (!userService.wasUserRecentlyLoggedInOrDismissedTheHint()) {
showUserHintCallback.accept(userService::setUserLoginHintToStorage);
}
}
}
}, true);