package com.jdroid.android.context; import com.jdroid.android.application.AbstractApplication; import com.jdroid.android.domain.User; public class SecurityContext { private static final SecurityContext INSTANCE = new SecurityContext(); private User user; /** * @return The {@link SecurityContext} instance */ public static SecurityContext get() { return INSTANCE; } private SecurityContext() { if (AbstractApplication.get().getUserRepository() != null) { user = AbstractApplication.get().getUserRepository().getUser(); } } public void attach(User user) { this.user = user; AbstractApplication.get().getUserRepository().saveUser(user); } public void detachUser() { AbstractApplication.get().getUserRepository().removeUser(); user = null; } /** * @return The user logged in the application */ public User getUser() { return user; } /** * @return Whether the user is authenticated or not */ public Boolean isAuthenticated() { return user != null; } }