diff options
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/UserSessionStatus.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/UserSessionStatus.java | 60 |
1 files changed, 41 insertions, 19 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/UserSessionStatus.java b/app/src/main/java/se/leap/bitmaskclient/UserSessionStatus.java index e43c8a25..28c7ecc7 100644 --- a/app/src/main/java/se/leap/bitmaskclient/UserSessionStatus.java +++ b/app/src/main/java/se/leap/bitmaskclient/UserSessionStatus.java @@ -16,13 +16,14 @@ */ package se.leap.bitmaskclient; -import android.os.*; +import android.content.res.*; import java.util.*; public class UserSessionStatus extends Observable { public static String TAG = UserSessionStatus.class.getSimpleName(); private static UserSessionStatus current_status; + private static Resources resources; public enum SessionStatus { LOGGED_IN, @@ -31,19 +32,41 @@ public class UserSessionStatus extends Observable { DIDNT_LOG_OUT, LOGGING_IN, LOGGING_OUT, - SIGNING_UP + SIGNING_UP; + + @Override + public String toString() { + int id = 0; + if(this == SessionStatus.LOGGED_IN) + id = R.string.logged_in_user_status; + else if(this == SessionStatus.LOGGED_OUT) + id = R.string.logged_out_user_status; + else if(this == SessionStatus.NOT_LOGGED_IN) + id = R.string.not_logged_in_user_status; + else if(this == SessionStatus.DIDNT_LOG_OUT) + id = R.string.didnt_log_out_user_status; + else if(this == SessionStatus.LOGGING_IN) + id = R.string.logging_in_user_status; + else if(this == SessionStatus.LOGGING_OUT) + id = R.string.logging_out_user_status; + else if(this == SessionStatus.SIGNING_UP) + id = R.string.signingup_message; + + return resources.getString(id); + } } private static SessionStatus session_status = SessionStatus.NOT_LOGGED_IN; - public static UserSessionStatus getInstance() { + public static UserSessionStatus getInstance(Resources resources) { if (current_status == null) { - current_status = new UserSessionStatus(); + current_status = new UserSessionStatus(resources); } return current_status; } - private UserSessionStatus() { + private UserSessionStatus(Resources resources) { + UserSessionStatus.resources = resources; } private void sessionStatus(SessionStatus session_status) { @@ -59,8 +82,8 @@ public class UserSessionStatus extends Observable { || session_status == SessionStatus.LOGGING_OUT; } - public static void updateStatus(SessionStatus session_status) { - current_status = getInstance(); + public static void updateStatus(SessionStatus session_status, Resources resources) { + current_status = getInstance(resources); current_status.sessionStatus(session_status); current_status.setChanged(); current_status.notifyObservers(); @@ -68,20 +91,19 @@ public class UserSessionStatus extends Observable { @Override public String toString() { - String username = User.userName(); + String user_session_status = User.userName(); - return username + " " + conjugateToBe(username) + " " - + session_status.toString().toLowerCase().replaceAll("_", " "); - } + String default_username = resources.getString(R.string.default_user, ""); + if(user_session_status.isEmpty() && !default_username.equalsIgnoreCase("null")) user_session_status = default_username; + user_session_status += " " + session_status.toString(); - private String conjugateToBe(String subject) { - String conjugation = ""; - if(subject.equalsIgnoreCase("I")) - conjugation = "am"; - else if(subject.equalsIgnoreCase("you") || subject.equalsIgnoreCase("we")|| subject.equalsIgnoreCase("they")) - conjugation = "are"; - else conjugation = "is"; + user_session_status = user_session_status.trim(); + if(User.userName().isEmpty()) + user_session_status = capitalize(user_session_status); + return user_session_status; + } - return conjugation; + private String capitalize(String to_be_capitalized) { + return to_be_capitalized.substring(0,1).toUpperCase() + to_be_capitalized.substring(1); } } |