From 4de42a3a55a8e7517a4a31a322a2de1bf9782a37 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Tue, 4 Mar 2025 15:45:57 -0700 Subject: [PATCH] image: fix broken silo parsing --- .../org/oxycblt/auxio/image/covers/CoverSilo.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/image/covers/CoverSilo.kt b/app/src/main/java/org/oxycblt/auxio/image/covers/CoverSilo.kt index 9bd93874d..280a66506 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/covers/CoverSilo.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/covers/CoverSilo.kt @@ -20,19 +20,25 @@ package org.oxycblt.auxio.image.covers import java.util.UUID import org.oxycblt.musikr.cover.CoverParams +import timber.log.Timber data class CoverSilo(val revision: UUID, val params: CoverParams?) { override fun toString() = - "${revision}.${params?.let { "${params.resolution}${params.quality}" }}" + "${revision}${params?.let { ".${params.resolution}.${params.quality}" } ?: "" }" companion object { fun parse(silo: String): CoverSilo? { val parts = silo.split('.') - if (parts.size != 3) return null + if (parts.size != 1 && parts.size != 3) { + return null + } val revision = parts[0].toUuidOrNull() ?: return null - val resolution = parts[1].toIntOrNull() ?: return null - val quality = parts[2].toIntOrNull() ?: return null - return CoverSilo(revision, CoverParams.of(resolution, quality)) + if (parts.size > 1) { + val resolution = parts[1].toIntOrNull() ?: return null + val quality = parts[2].toIntOrNull() ?: return null + return CoverSilo(revision, CoverParams.of(resolution, quality)) + } + return CoverSilo(revision, null) } } }