From 76d25fca1b749f1f690867f201bf49d0964a099d Mon Sep 17 00:00:00 2001 From: RatzzFatzz Date: Wed, 17 Dec 2025 13:32:23 +0100 Subject: [PATCH] Fix finding hearing impaired flag changes --- .../impl/processors/AttributeChangeProcessor.java | 2 +- .../impl/processors/MkvFileProcessor.java | 2 +- .../mkvaudiosubtitlechanger/model/TrackAttributes.java | 4 ++++ .../impl/processors/AttributeChangeProcessorTest.java | 4 ++-- .../impl/processors/MkvFileProcessorTest.java | 6 ++++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessor.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessor.java index 949d8b5..f90b1e2 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessor.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessor.java @@ -123,7 +123,7 @@ public class AttributeChangeProcessor { public void findHearingImpairedTracksAndApplyChanges(FileInfo fileInfo) { fileInfo.getTracks().stream() - .filter(track -> !track.commentary()) + .filter(track -> !track.hearingImpaired()) .filter(track -> track.trackName() != null) .filter(track -> hearingImpairedKeywords.stream().anyMatch(keyword -> track.trackName().toLowerCase().contains(keyword.toLowerCase(Locale.ROOT)))) .forEach(attr -> { diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessor.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessor.java index 29a01a1..439103b 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessor.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessor.java @@ -127,7 +127,7 @@ public class MkvFileProcessor implements FileProcessor { (Boolean) properties.getOrDefault("default_track", false), (Boolean) properties.getOrDefault("forced_track", false), (Boolean) properties.getOrDefault("commentary_track", false), - (Boolean) properties.getOrDefault("hearing_impaired_track", false), + (Boolean) properties.getOrDefault("flag_hearing_impaired", false), TrackType.valueOf(((String) attribute.get("type")).toUpperCase(Locale.ENGLISH)))); } } diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/TrackAttributes.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/TrackAttributes.java index 5d7dc26..889ebca 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/TrackAttributes.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/model/TrackAttributes.java @@ -16,6 +16,8 @@ public record TrackAttributes(int id, String language, String trackName, return id == attribute.id && defaultt == attribute.defaultt && forced == attribute.forced + && commentary == attribute.commentary + && hearingImpaired == attribute.hearingImpaired && Objects.equals(language, attribute.language) && Objects.equals(trackName, attribute.trackName) && type == attribute.type; @@ -28,6 +30,8 @@ public record TrackAttributes(int id, String language, String trackName, ", trackName='" + trackName + '\'' + ", defaultt=" + defaultt + ", forced=" + forced + + ", commentary=" + commentary + + ", hearingImpaired=" + hearingImpaired + ", type=" + type + ']'; } diff --git a/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessorTest.java b/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessorTest.java index 8ddd314..5903f24 100644 --- a/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessorTest.java +++ b/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/AttributeChangeProcessorTest.java @@ -248,7 +248,7 @@ class AttributeChangeProcessorTest { Set.of("SDH"), Map.ofEntries(on(withName(SUB_GER, "SDH"))) ), - Arguments.of(List.of(withName(AUDIO_GER_COMMENTARY, "SDH")), + Arguments.of(List.of(withName(AUDIO_GER_HEARING, "SDH")), Set.of("SDH"), Map.ofEntries() ), @@ -260,7 +260,7 @@ class AttributeChangeProcessorTest { } @ParameterizedTest - @MethodSource("findCommentaryTracksAndApplyChanges") + @MethodSource("findHearingImpairedTracksAndApplyChanges") void findHearingImpairedTracksAndApplyChanges(List tracks, Set keywords, Map changes) { AttributeChangeProcessor attributeChangeProcessor = new AttributeChangeProcessor(new String[]{}, Set.of(), Set.of(), keywords); diff --git a/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessorTest.java b/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessorTest.java index eafb2c5..9956de2 100644 --- a/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessorTest.java +++ b/src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/processors/MkvFileProcessorTest.java @@ -57,6 +57,8 @@ class MkvFileProcessorTest { "default_track": true, "enabled_track": true, "forced_track": false, + "commentary_track": true, + "flag_hearing_impaired": true, "language": "eng", "number": 3 }, @@ -88,8 +90,8 @@ class MkvFileProcessorTest { assertEquals("eng", sub.language()); assertTrue(sub.defaultt()); assertFalse(sub.forced()); - assertFalse(sub.hearingImpaired()); - assertFalse(sub.commentary()); + assertTrue(sub.hearingImpaired()); + assertTrue(sub.commentary()); assertEquals(TrackType.SUBTITLES, sub.type()); }