package fr.pagesjaunes.mdm.core; import com.parse.ParseClassName; import com.parse.ParseException; import com.parse.ParseObject; import com.parse.ParseUser; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import fr.pagesjaunes.mdm.util.Strings; @ParseClassName("Device") public class Device extends ParseObject implements Serializable { public String getManufacturer() { return getString("manufacturer"); } public String getModel() { return getString("model"); } public String getOsVersion() { return getString("osVersion"); } public String getType() { return getString("type"); } public String computeUserName() { ParseUser user = getParseUser("user"); if (user != null) { try { user.fetchIfNeeded(); return user.getUsername(); } catch (ParseException e) { e.printStackTrace(); } } return "N/A"; } public String getDevice() { return String.format("%s %s (%s)", getManufacturer(), getModel(), getOsVersion()); } public void setManufacturer(String manufacturer) { put("manufacturer", manufacturer); } public void setModel(String model) { put("model", model); } public void setOsVersion(String osVersion) { put("osVersion", osVersion); } public void setType(String type) { put("type", type); } public void setUser(ParseUser user) { if (user != null) { put("user", user); } } public String printUpdatedAt() { Date today = new Date(); Date updatedAt = getUpdatedAt(); if (updatedAt != null) { Long lDiff = (today.getTime() - updatedAt.getTime()) / 1000; double diff = Math.abs(Math.floor(lDiff)); double days = Math.floor(diff / (24 * 60 * 60)); double leftSec = diff - days * 24 * 60 * 60; double hrs = Math.floor(leftSec / (60 * 60)); leftSec = leftSec - hrs * 60 * 60; double min = Math.floor(leftSec / (60)); leftSec = leftSec - min * 60; HashMap<String, Integer> result = new HashMap<String, Integer>(); result.put("days", (int)days); result.put("hours", (int)hrs); result.put("minutes", (int)min); return Strings.prettifyDiffRelativeDate(result); } return "n/a"; } }