package org.witness.informacam.models.credentials; import java.io.Serializable; import org.witness.informacam.InformaCam; import org.witness.informacam.json.JSONObject; import org.witness.informacam.models.Model; import android.content.SharedPreferences; import android.preference.PreferenceManager; @SuppressWarnings("serial") public class IUser extends Model implements Serializable { public boolean hasBaseImage = false; public boolean hasPrivateKey = false; public boolean hasCompletedWizard = false; public boolean hasCredentials = false; public boolean isLoggedIn = false; public long lastLogIn = 0L; public long lastLogOut = 0L; public String alias = null; public String email = null; public String pgpKeyFingerprint = null; public boolean isInOfflineMode = false; private SharedPreferences sp = null; public IUser() { super(); } public IUser(JSONObject user) throws InstantiationException, IllegalAccessException { super(); inflate(user); } public Object getPreference(String prefKey, Object defaultObj) { if(sp == null) { sp = PreferenceManager.getDefaultSharedPreferences(InformaCam.getInstance()); } if(sp.contains(prefKey)) { Object value = sp.getAll().get(prefKey); if(!value.getClass().getName().equals(defaultObj.getClass().getName())) { if(defaultObj instanceof Boolean) { if(value instanceof String && (value.equals("1") || value.equals("0"))) { return value.equals("1") ? true : false; } else if(value instanceof Integer && ((Integer) value == 1 || (Integer) value == 0)) { return (Integer) value == 1 ? true : false; } } } return value; } return defaultObj; } public void setIsLoggedIn(boolean isLoggedIn) { this.isLoggedIn = isLoggedIn; save(); } public void setHasBaseImage(boolean hasBaseImage) { this.hasBaseImage = hasBaseImage; save(); } public void setHasCompletedWizard(boolean hasCompletedWizard) { this.hasCompletedWizard = hasCompletedWizard; save(); } public void setHasPrivateKey(boolean hasPrivateKey) { this.hasPrivateKey = hasPrivateKey; save(); } public void setHasCredentials(boolean hasCredentials) { this.hasCredentials = hasCredentials; save(); } public boolean save() { return InformaCam.getInstance().saveState(this); } }