private boolean updateItemNode(FileItemNode itemNode, File file, PhotoItem info) { Format format = getContentDirectory().getFormat(file); if (format == null) return false; FormatObject formatObj = format.createObject(file); // File/TimeStamp itemNode.setFile(file); String title = info.title; if (title != null) itemNode.setTitle(title); // Creator String creator = formatObj.getCreator(); if (0 < creator.length()) itemNode.setCreator(creator); // Media Class String mediaClass = format.getMediaClass(); if (0 < mediaClass.length()) itemNode.setUPnPClass(mediaClass); // Date long lastModTime = file.lastModified(); itemNode.setDate(lastModTime); // Storatge Used try { long fileSize = file.length(); itemNode.setStorageUsed(fileSize); } catch (Exception e) { Debug.warning(e); } itemNode.addProperty(UPnP.FILEPATH, info.filePath); itemNode.setAlbumArtURI(info.thumbFilePath); // ProtocolInfo String mimeType = format.getMimeType(); String protocol = ConnectionManager.HTTP_GET + ":*:" + mimeType + ":*"; String id = itemNode.getID(); String url = getContentDirectory().getContentExportURL(id); AttributeList objAttrList = formatObj.getAttributeList(); itemNode.setResource(url, protocol, objAttrList); info.itemUri = url; DIDLLite didlLite = new DIDLLite(); didlLite.setContentNode(itemNode); info.metaData = didlLite.toString(); // Update SystemUpdateID getContentDirectory().updateSystemUpdateID(); return true; }
private boolean updateItemNodeList(FileItemNode newItemNode, PhotoItem info) { if (newItemNode == null) { return false; } File newItemNodeFile = newItemNode.getFile(); FileItemNode currItemNode = getItemNode(newItemNodeFile); if (currItemNode == null) { int newItemID = getContentDirectory().getNextItemID(); info.itemId = newItemID; newItemNode.setID(newItemID); updateItemNode(newItemNode, newItemNodeFile, info); addItemNode(newItemNode); return true; } long currTimeStamp = currItemNode.getFileTimeStamp(); long newTimeStamp = newItemNode.getFileTimeStamp(); if (currTimeStamp == newTimeStamp) return false; updateItemNode(currItemNode, newItemNodeFile, info); return true; }