package com.stxnext.management.android.dto.local; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import android.content.res.Resources; import com.google.common.base.Strings; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import com.stxnext.management.android.R; import com.stxnext.management.android.dto.postmessage.AbstractMessage; import com.stxnext.management.android.dto.postmessage.GsonProvider; public class IntranetUser extends AbstractMessage implements Serializable{ private ArrayList<UserProperty> properties = new ArrayList<UserProperty>(); @Expose @SerializedName("id") Number id; @Expose @SerializedName("name") String name; @Expose @SerializedName("img") String imageUrl; @Expose @SerializedName("avatar_url") String avatarUrl; @Expose @SerializedName("location") ArrayList<String> location = new ArrayList<String>(); @Expose @SerializedName("freelancer") Boolean isFreelancer; @Expose @SerializedName("is_client") Boolean isClient; @Expose @SerializedName("is_active") Boolean isActive; @Expose @SerializedName("start_work") String startWork; @Expose @SerializedName("start_full_time_work") String startFullTimeWork; @Expose @SerializedName("stop_work") String stopWork; @Expose @SerializedName("phone") String phone; @Expose @SerializedName("phone_on_desk") String phoneDesk; @Expose @SerializedName("skype") String skype; @Expose @SerializedName("irc") String irc; @Expose @SerializedName("email") String email; @Expose @SerializedName("tasks_link") String tasksLink; @Expose @SerializedName("availability_link") String availabilityLink; @Expose @SerializedName("roles") ArrayList<String> roles = new ArrayList<String>(); @Expose @SerializedName("groups") ArrayList<String> groups = new ArrayList<String>(); private AbsenceDisplayData absenceDisplayData; private AbsenceDisplayData latenessDisplayData; public AbsenceDisplayData getAbsenceDisplayData() { return absenceDisplayData; } public void setAbsenceDisplayData(AbsenceDisplayData absenceDisplayData) { this.absenceDisplayData = absenceDisplayData; } public AbsenceDisplayData getLatenessDisplayData() { return latenessDisplayData; } public void setLatenessDisplayData(AbsenceDisplayData latenessDisplayData) { this.latenessDisplayData = latenessDisplayData; } public Number getId() { return id; } public String getName() { return name; } public String getImageUrl() { return imageUrl; } public String getAvatarUrl() { return avatarUrl; } public String getLocationJson(){ return GsonProvider.get().toJson(this.location); } public List<String> getLocation() { return location; } public Boolean getIsFreelancer() { return isFreelancer; } public Boolean getIsClient() { return isClient; } public Boolean getIsActive() { return isActive; } public String getStartWork() { return startWork; } public String getStartFullTimeWork() { return startFullTimeWork; } public String getStopWork() { return stopWork; } public String getPhone() { return phone; } public String getPhoneDesk() { return phoneDesk; } public String getSkype() { return skype; } public String getIrc() { return irc; } public String getEmail() { return email; } public String getTasksLink() { return tasksLink; } public String getAvailabilityLink() { return availabilityLink; } public String getRolesJson(){ return GsonProvider.get().toJson(this.roles); } public List<String> getRoles() { return roles; } public String getGroupsJson(){ return GsonProvider.get().toJson(this.groups); } public List<String> getGroups() { return groups; } public ArrayList<UserProperty> getProperties(Resources res){ if(this.properties.size()<=0){ putProperty("Email", "<a href = \"mailto:"+this.email+"\">"+this.email+"</a>",email); putProperty("IRC", this.irc,this.irc); if(this.location!=null && this.location.size()==3) putProperty(res.getString(R.string.label_localisation), this.location.get(1),this.location.get(1)); putProperty(res.getString(R.string.label_phone), "<a href = \"tel:"+this.phone+"\">"+this.phone+"</a>",this.phone); putProperty(res.getString(R.string.label_landline), "<a href = \"tel:"+this.phoneDesk+"\">"+this.phoneDesk+"</a>",this.phoneDesk); if(this.roles!=null && this.roles.size()>0){ String rolesString=""; int cnt = 0; for(String role : this.roles){ rolesString+=role+(cnt < this.roles.size()-1 ? "<br />":""); cnt++; } putProperty(res.getString(this.roles.size()>1?R.string.label_roles:R.string.label_role), rolesString,rolesString); } putProperty("Skype", this.skype,this.skype); } return this.properties; } private void putProperty(String name, Object value, Object originalValue){ if(originalValue!=null && !Strings.isNullOrEmpty(String.valueOf(originalValue))){ this.properties.add(new UserProperty(name, String.valueOf(value))); } } public void setProperties(ArrayList<UserProperty> properties) { this.properties = properties; } public void setId(Number id) { this.id = id; } public void setName(String name) { this.name = name; } public void setImageUrl(String imageUrl) { this.imageUrl = imageUrl; } public void setAvatarUrl(String avatarUrl) { this.avatarUrl = avatarUrl; } public void setLocation(String location) { this.location = GsonProvider.get().fromJson(location, listStringType); } public void setLocation(ArrayList<String> location) { this.location = location; } public void setIsFreelancer(Boolean isFreelancer) { this.isFreelancer = isFreelancer; } public void setIsClient(Boolean isClient) { this.isClient = isClient; } public void setIsActive(Boolean isActive) { this.isActive = isActive; } public void setStartWork(String startWork) { this.startWork = startWork; } public void setStartFullTimeWork(String startFullTimeWork) { this.startFullTimeWork = startFullTimeWork; } public void setStopWork(String stopWork) { this.stopWork = stopWork; } public void setPhone(String phone) { this.phone = phone; } public void setPhoneDesk(String phoneDesk) { this.phoneDesk = phoneDesk; } public void setSkype(String skype) { this.skype = skype; } public void setIrc(String irc) { this.irc = irc; } public void setEmail(String email) { this.email = email; } public void setTasksLink(String tasksLink) { this.tasksLink = tasksLink; } public void setAvailabilityLink(String availabilityLink) { this.availabilityLink = availabilityLink; } public void setRoles(String roles) { this.roles = GsonProvider.get().fromJson(roles, listStringType); } public void setGroups(String groups) { this.groups = GsonProvider.get().fromJson(groups, listStringType);; } public void setRoles(ArrayList<String> roles) { this.roles = roles; } public void setGroups(ArrayList<String> groups) { this.groups = groups; } }