diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/kernel/AttributeUpdaterKernel.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/kernel/AttributeUpdaterKernel.java index 048e61c..54bc9f5 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/kernel/AttributeUpdaterKernel.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/kernel/AttributeUpdaterKernel.java @@ -19,7 +19,6 @@ import me.tongfei.progressbar.ProgressBar; import me.tongfei.progressbar.ProgressBarBuilder; import me.tongfei.progressbar.ProgressBarStyle; import net.harawata.appdirs.AppDirsFactory; -import picocli.CommandLine; import java.io.File; import java.io.IOException; @@ -100,6 +99,12 @@ public abstract class AttributeUpdaterKernel { FileInfoDto fileInfo = new FileInfoDto(file); List attributes = processor.loadAttributes(file); + if (attributes == null || attributes.isEmpty()) { + statistic.total(); + statistic.failure(); + return; + } + List nonForcedTracks = processor.retrieveNonForcedTracks(attributes); List nonCommentaryTracks = processor.retrieveNonCommentaryTracks(attributes); @@ -122,7 +127,7 @@ public abstract class AttributeUpdaterKernel { statistic.shouldChange(); commitChange(fileInfoDto); break; - case UNABLE_TO_APPLY: + case NO_SUITABLE_CONFIG: statistic.noSuitableConfigFound(); break; case ALREADY_SUITED: diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileInfoDto.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileInfoDto.java index 39264d9..439cc91 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileInfoDto.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileInfoDto.java @@ -40,8 +40,9 @@ public class FileInfoDto { } private boolean isSubtitleOFF() { - return desiredDefaultSubtitleLane == null && "OFF".equals(matchedConfig.getSubtitleLanguage()) && - (existingDefaultSubtitleLanes != null && !existingDefaultSubtitleLanes.isEmpty()); + return desiredDefaultSubtitleLane == null + && (matchedConfig != null && "OFF".equals(matchedConfig.getSubtitleLanguage())) + && (existingDefaultSubtitleLanes != null && !existingDefaultSubtitleLanes.isEmpty()); } public boolean areForcedTracksDifferent() { @@ -50,7 +51,7 @@ public class FileInfoDto { public FileStatus getStatus() { if (isChangeNecessary()) return FileStatus.CHANGE_NECESSARY; - if (isUnableToApplyConfig()) return FileStatus.UNABLE_TO_APPLY; + if (isUnableToApplyConfig()) return FileStatus.NO_SUITABLE_CONFIG; if (isAlreadySuitable()) return FileStatus.ALREADY_SUITED; return FileStatus.UNKNOWN; } diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileStatus.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileStatus.java index 942faf9..891014a 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileStatus.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/FileStatus.java @@ -2,7 +2,7 @@ package at.pcgamingfreaks.mkvaudiosubtitlechanger.model; public enum FileStatus { CHANGE_NECESSARY, - UNABLE_TO_APPLY, + NO_SUITABLE_CONFIG, ALREADY_SUITED, UNKNOWN; }