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;
  }