Skip to content

Commit 9b79448

Browse files
committed
nuke blank tranlations
1 parent 20103b9 commit 9b79448

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

app/src/main/java/org/akanework/gramophone/logic/utils/SemanticLyrics.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -705,10 +705,18 @@ fun parseLrc(lyricText: String, trimEnabled: Boolean, multiLineEnabled: Boolean)
705705
}
706706
}
707707
out.sortBy { it.start }
708+
val invalidLines = ArrayList<LyricLine>()
708709
var previousLyric: LyricLine? = null
709710
val defaultIsWalaokeM = out.find { it.speaker?.isWalaoke == true } != null &&
710711
out.find { it.speaker?.isWalaoke == false } == null
711712
out.forEachIndexed { i, lyric ->
713+
val isTranslated = lyric.start == previousLyric?.start
714+
&& (previousLyric.text.isNotBlank() || lyric.text.isBlank())
715+
// mark blank translations for deletion
716+
if (isTranslated && lyric.text.isBlank()) {
717+
invalidLines.add(lyric)
718+
return@forEachIndexed
719+
}
712720
if (defaultIsWalaokeM && lyric.speaker == null)
713721
lyric.speaker = SpeakerEntity.Male
714722
lyric.end = lyric.end.takeIf { it != 0uL }
@@ -717,10 +725,11 @@ fun parseLrc(lyricText: String, trimEnabled: Boolean, multiLineEnabled: Boolean)
717725
?.words?.lastOrNull()?.timeRange?.last else null)
718726
?: out.find { it.start > lyric.start }?.start?.minus(1uL)
719727
?: Long.MAX_VALUE.toULong()
720-
lyric.isTranslated = lyric.start == previousLyric?.start
721-
&& (previousLyric.text.isNotBlank() || lyric.text.isBlank())
728+
lyric.isTranslated = isTranslated
722729
previousLyric = lyric
723730
}
731+
out.removeAll(invalidLines)
732+
724733
while (out.firstOrNull()?.text?.isBlank() == true)
725734
out.removeAt(0)
726735
//while (out.lastOrNull()?.text?.isBlank() == true)

0 commit comments

Comments
 (0)