package com.rapidftr.utilities;
import java.util.Calendar;
import net.rim.device.api.i18n.Locale;
import net.rim.device.api.i18n.SimpleDateFormat;
public class Settings {
public static final String LAST_USED_HOST_KEY = "last.used.host";
private static final String DEFAULT_URL = "https://dev.rapidftr.com";
private static final String AUTHORISATION_TOKEN = "authorisation.token";
private static final String AUTHORISATION_TOKEN_FOR_OFFLINE_LOGIN = "temp.authorisation.token";
private static final String CURRENT_USER = "current.user";
private Store store;
public Settings(Store store) {
this.store = store;
}
public static String getDefaultHost() {
return DEFAULT_URL;
}
public String getLastUsedLoginHost() {
return store.getString(LAST_USED_HOST_KEY, DEFAULT_URL);
}
public void setAuthorisationToken(String authorisationToken) {
store.setString(AUTHORISATION_TOKEN, authorisationToken);
}
public void setCurrentlyLoggedIn(String userName) {
store.setString(CURRENT_USER, userName);
}
public String getCurrentlyLoggedIn() {
return store.getString(CURRENT_USER);
}
public String getAuthorizationToken() {
return store.getString(AUTHORISATION_TOKEN);
}
public boolean isUserLoggedIn() {
return !"".equals(getCurrentlyLoggedIn());
}
public int getTimeOut() {
return 10000;
}
public void setLastUsedLoginHost(String host) {
if (isNotEmpty(host))
store.setString(LAST_USED_HOST_KEY, host);
else
store.setString(LAST_USED_HOST_KEY, getDefaultHost());
}
private boolean isNotEmpty(String value) {
return (!"".equals(value) && value != null && value.trim().length() != 0);
}
public void clearAuthenticationInfo() {
store.remove(CURRENT_USER);
setAuthorisationTokenForOfflineLogin(AUTHORISATION_TOKEN);
store.remove(AUTHORISATION_TOKEN);
}
public void clear() {
store.clear();
}
public boolean hasBeenAuthorised() {
return getAuthorisationTokenForOfflineLogin()!= null;
}
public String getLastUserLoginName() {
return store.getString("last.used.username");
}
public String getLastUsedPassword() {
return store.getString("last.used.password");
}
public void setLastUsedUserName(String userName) {
store.setString("last.used.username", userName);
}
public void setLastUsedPassword(String pass) {
store.setString("last.used.password", pass);
}
public String getAuthorisationTokenForOfflineLogin() {
return store.getString(AUTHORISATION_TOKEN_FOR_OFFLINE_LOGIN);
}
public void setAuthorisationTokenForOfflineLogin(String token) {
store.setString(AUTHORISATION_TOKEN_FOR_OFFLINE_LOGIN, token);
}
public void updateLastSyncInfo() {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yy HH:mm", Locale.getDefault());
store.setString("last.sync", formatter.format(calendar.getTime()));
}
public String getLastSyncInfo() {
String lastSync = store.getString("last.sync");
return StringUtility.isBlank(lastSync) ? "Records yet to be synchronized" : lastSync ;
}
public String getApplicationUpdateUrl() {
return getLastUsedLoginHost() + "/blackberry/RapidFTR.jad";
}
}