package com.rafali.flickruploader; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashSet; import java.util.List; public class AndroidDevice implements Serializable { private static final long serialVersionUID = 6522934875344460973L; private String id; private String appVersion; private boolean appInstalled; private String modelInfo; private String gcmId; private Date dateCreation; private String language; private List<String> emails; private String otherInfos; private Integer androidVersion; private String countryCode; protected AndroidDevice() { } public AndroidDevice(String id, Collection<String> emails, String language, int androidVersion) { this.id = id; this.androidVersion = androidVersion; this.dateCreation = new Date(); this.appInstalled = true; this.emails = emails == null ? new ArrayList<String>() : new ArrayList<String>(new HashSet<String>(emails)); } public String getId() { return id; } public String getAppVersion() { return appVersion; } public void setAppVersion(String appVersion) { this.appVersion = appVersion; } public String getModelInfo() { return modelInfo; } public void setModelInfo(String modelInfo) { this.modelInfo = modelInfo; } public String getGcmId() { return gcmId; } public String getLanguage() { return language; } public void setGcmId(String gcmId) { this.gcmId = gcmId; } public Date getDateCreation() { return dateCreation; } public boolean isAppInstalled() { return appInstalled; } public void setAppInstalled(boolean appInstalled) { this.appInstalled = appInstalled; } public String getOtherInfos() { return otherInfos; } public void setOtherInfos(String otherInfos) { this.otherInfos = otherInfos; } public List<String> getEmails() { return emails; } public String getInfo(String property) { if (otherInfos != null) { for (String key_value : otherInfos.split("\n")) { if (key_value.contains("=")) { int index = key_value.indexOf("="); String key = key_value.substring(0, index); String value = key_value.substring(index + 1); if (property.equals(key)) { if (value != null && !value.trim().isEmpty() && !value.equals("null")) { return value; } break; } } } } return null; } @Override public String toString() { return id + " - " + modelInfo + " - " + appVersion + " - installed:" + appInstalled + " - " + gcmId + " - " + dateCreation + " - " + emails; } public int getAndroidVersion() { if (androidVersion == null) return -1; return androidVersion; } public void setAndroidVersion(int androidVersion) { this.androidVersion = androidVersion; } public String getCountryCode() { return countryCode; } public void setCountryCode(String countryCode) { this.countryCode = countryCode; } }