Ejemplo n.º 1
0
    /**
     * @param aSourceFile
     * @param aTargetFile
     * @return conflict reason
     */
    private String getConflictReason(File aSourceFile, File aTargetFile) {
      try {
        if (aSourceFile.isDirectory()) {
          return null;
        }

        long check = aSourceFile.lastModified() - aTargetFile.lastModified();
        if (check == 0) {
          return null;
        }

        check = aSourceFile.length() - aTargetFile.length();
        if (check != 0) {
          return "length=" + aSourceFile.length() + ":" + aTargetFile.length();
        }

        if (!compareAll("mp3", getFileExtn(aSourceFile), getFileExtn(aTargetFile))) {
          return null;
        }

        Mp3Tag sourceTag = null;
        Mp3Tag targetTag = null;
        try {
          sourceTag = ID3Util.readTag(aSourceFile);
          targetTag = ID3Util.readTag(aTargetFile);
        } catch (AppException error) {
          error.printStackTrace();
          return null;
        }

        if (!AppUtil.compare(sourceTag.language, targetTag.language)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.genre, targetTag.genre)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.album, targetTag.album)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.year, targetTag.year)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.composer, targetTag.composer)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.albumArtist, targetTag.albumArtist)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.artist, targetTag.artist)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.trackNbr, targetTag.trackNbr)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        if (!AppUtil.compare(sourceTag.title, targetTag.title)) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }

        Artwork sourceArtwork = sourceTag.artwork;
        Artwork targetArtwork = targetTag.artwork;

        if (sourceArtwork != null && targetArtwork != null) {
          if (sourceArtwork.getBinaryData().length != targetArtwork.getBinaryData().length) {
            return "id3lang=" + sourceTag.language + ":" + targetTag.language;
          }
        } else if (sourceArtwork != null || targetArtwork != null) {
          return "id3lang=" + sourceTag.language + ":" + targetTag.language;
        }
      } catch (Exception error) {
        System.err.println(aSourceFile + "##" + aTargetFile);
        error.printStackTrace();
      }

      return null;
    }