mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-10-04 15:16:58 +02:00
fix(download): align native metadata preparation and ReplayGain support
This commit is contained in:
1 parent
c0997de19c
commit
e61e54f93f
11 files changed
+288
-117
No files matched your search
@@ -1269,11 +1269,11 @@ object NativeDownloadFinalizer {
|
||||
}
|
||||
|
||||
private fun replayGainDurationSeconds(input: FinalizeInput): Double {
|
||||
val duration = input.request.optInt("duration_ms", 0).let {
|
||||
if (it > 0) it else trackInt(input, "duration", 0)
|
||||
}
|
||||
if (duration <= 0) return 1.0
|
||||
return if (duration > 10000) duration / 1000.0 else duration.toDouble()
|
||||
val duration = NativeFinalizationPolicy.durationMilliseconds(
|
||||
input.request.optLong("duration_ms", 0L),
|
||||
trackInt(input, "duration", 0).toLong(),
|
||||
)
|
||||
return if (duration > 0L) duration / 1000.0 else 1.0
|
||||
}
|
||||
|
||||
private fun buildHistoryRow(input: FinalizeInput, state: FinalizeState): ContentValues {
|
||||
|
||||
@@ -11,6 +11,11 @@ import kotlin.math.roundToInt
|
||||
* finalizer's I/O-heavy orchestration.
|
||||
*/
|
||||
internal object NativeFinalizationPolicy {
|
||||
fun durationMilliseconds(requestMilliseconds: Long, trackSeconds: Long): Long {
|
||||
if (requestMilliseconds > 0) return requestMilliseconds
|
||||
return trackSeconds.coerceIn(0, Long.MAX_VALUE / 1000) * 1000
|
||||
}
|
||||
|
||||
fun resolvedAlbumRelativeDirectory(
|
||||
relativeDirectory: String,
|
||||
albumFolderTemplate: String,
|
||||
|
||||
@@ -245,9 +245,7 @@ internal fun NativeDownloadFinalizer.resolveLyricsLrc(context: Context, input: N
|
||||
internal fun NativeDownloadFinalizer.lyricsDurationMs(input: NativeDownloadFinalizer.FinalizeInput): Long {
|
||||
val requestDuration = input.request.optLong("duration_ms", 0L)
|
||||
val trackDuration = trackInt(input, "duration", 0).toLong()
|
||||
val duration = if (requestDuration > 0L) requestDuration else trackDuration
|
||||
if (duration <= 0L) return 0L
|
||||
return if (duration > 10000L) duration else duration * 1000L
|
||||
return NativeFinalizationPolicy.durationMilliseconds(requestDuration, trackDuration)
|
||||
}
|
||||
|
||||
internal fun nativeMetadataEditHandled(response: String): Boolean {
|
||||
|
||||
Reference in new issue
Block a user