musikr: internalcovers -> embeddedcovers

This commit is contained in:
Alexander Capehart 2025-03-07 12:01:00 -07:00
parent 9a70ae1c4e
commit e2d28f98f4
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
8 changed files with 24 additions and 24 deletions

View file

@ -23,7 +23,7 @@ import dagger.Module
import dagger.Provides import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import org.oxycblt.musikr.covers.internal.CoverIdentifier import org.oxycblt.musikr.covers.embedded.CoverIdentifier
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)

View file

@ -19,7 +19,7 @@
package org.oxycblt.auxio.image.covers package org.oxycblt.auxio.image.covers
import java.util.UUID import java.util.UUID
import org.oxycblt.musikr.covers.internal.CoverParams import org.oxycblt.musikr.covers.embedded.CoverParams
data class CoverSilo(val revision: UUID, val params: CoverParams?) { data class CoverSilo(val revision: UUID, val params: CoverParams?) {
override fun toString() = override fun toString() =

View file

@ -28,9 +28,9 @@ import org.oxycblt.musikr.covers.Covers
import org.oxycblt.musikr.covers.MutableCovers import org.oxycblt.musikr.covers.MutableCovers
import org.oxycblt.musikr.covers.fs.FSCovers import org.oxycblt.musikr.covers.fs.FSCovers
import org.oxycblt.musikr.covers.fs.MutableFSCovers import org.oxycblt.musikr.covers.fs.MutableFSCovers
import org.oxycblt.musikr.covers.internal.CoverIdentifier import org.oxycblt.musikr.covers.embedded.CoverIdentifier
import org.oxycblt.musikr.covers.internal.CoverParams import org.oxycblt.musikr.covers.embedded.CoverParams
import org.oxycblt.musikr.covers.internal.FileCover import org.oxycblt.musikr.covers.embedded.FileCover
interface SettingCovers { interface SettingCovers {
suspend fun mutate(context: Context, revision: UUID): MutableCovers<out Cover> suspend fun mutate(context: Context, revision: UUID): MutableCovers<out Cover>

View file

@ -26,11 +26,11 @@ import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.covers.CoverResult import org.oxycblt.musikr.covers.CoverResult
import org.oxycblt.musikr.covers.Covers import org.oxycblt.musikr.covers.Covers
import org.oxycblt.musikr.covers.MutableCovers import org.oxycblt.musikr.covers.MutableCovers
import org.oxycblt.musikr.covers.internal.CoverFormat import org.oxycblt.musikr.covers.embedded.CoverFormat
import org.oxycblt.musikr.covers.internal.CoverIdentifier import org.oxycblt.musikr.covers.embedded.CoverIdentifier
import org.oxycblt.musikr.covers.internal.FileCover import org.oxycblt.musikr.covers.embedded.FileCover
import org.oxycblt.musikr.covers.internal.InternalCovers import org.oxycblt.musikr.covers.embedded.EmbeddedCovers
import org.oxycblt.musikr.covers.internal.MutableInternalCovers import org.oxycblt.musikr.covers.embedded.MutableEmbeddedCovers
import org.oxycblt.musikr.fs.app.AppFS import org.oxycblt.musikr.fs.app.AppFS
import org.oxycblt.musikr.fs.device.DeviceFile import org.oxycblt.musikr.fs.device.DeviceFile
import org.oxycblt.musikr.metadata.Metadata import org.oxycblt.musikr.metadata.Metadata
@ -39,20 +39,20 @@ class BaseSiloedCovers(private val context: Context) : Covers<FileCover> {
override suspend fun obtain(id: String): CoverResult<FileCover> { override suspend fun obtain(id: String): CoverResult<FileCover> {
val siloedId = SiloedCoverId.parse(id) ?: return CoverResult.Miss() val siloedId = SiloedCoverId.parse(id) ?: return CoverResult.Miss()
val core = SiloCore.from(context, siloedId.silo) val core = SiloCore.from(context, siloedId.silo)
val internalCovers = InternalCovers(core.files, core.format) val embeddedCovers = EmbeddedCovers(core.files, core.format)
return when (val result = internalCovers.obtain(siloedId.id)) { return when (val result = embeddedCovers.obtain(siloedId.id)) {
is CoverResult.Hit -> CoverResult.Hit(SiloedCover(siloedId.silo, result.cover)) is CoverResult.Hit -> CoverResult.Hit(SiloedCover(siloedId.silo, result.cover))
is CoverResult.Miss -> CoverResult.Miss() is CoverResult.Miss -> CoverResult.Miss()
} }
} }
} }
open class SiloedCovers(private val silo: CoverSilo, private val internalCovers: InternalCovers) : open class SiloedCovers(private val silo: CoverSilo, private val embeddedCovers: EmbeddedCovers) :
Covers<FileCover> { Covers<FileCover> {
override suspend fun obtain(id: String): CoverResult<FileCover> { override suspend fun obtain(id: String): CoverResult<FileCover> {
val coverId = SiloedCoverId.parse(id) ?: return CoverResult.Miss() val coverId = SiloedCoverId.parse(id) ?: return CoverResult.Miss()
if (silo != coverId.silo) return CoverResult.Miss() if (silo != coverId.silo) return CoverResult.Miss()
return when (val result = internalCovers.obtain(coverId.id)) { return when (val result = embeddedCovers.obtain(coverId.id)) {
is CoverResult.Hit -> CoverResult.Hit(SiloedCover(silo, result.cover)) is CoverResult.Hit -> CoverResult.Hit(SiloedCover(silo, result.cover))
is CoverResult.Miss -> CoverResult.Miss() is CoverResult.Miss -> CoverResult.Miss()
} }
@ -61,7 +61,7 @@ open class SiloedCovers(private val silo: CoverSilo, private val internalCovers:
companion object { companion object {
suspend fun from(context: Context, silo: CoverSilo): SiloedCovers { suspend fun from(context: Context, silo: CoverSilo): SiloedCovers {
val core = SiloCore.from(context, silo) val core = SiloCore.from(context, silo)
return SiloedCovers(silo, InternalCovers(core.files, core.format)) return SiloedCovers(silo, EmbeddedCovers(core.files, core.format))
} }
} }
} }
@ -70,7 +70,7 @@ class MutableSiloedCovers
private constructor( private constructor(
private val rootDir: File, private val rootDir: File,
private val silo: CoverSilo, private val silo: CoverSilo,
private val fileCovers: MutableInternalCovers private val fileCovers: MutableEmbeddedCovers
) : SiloedCovers(silo, fileCovers), MutableCovers<FileCover> { ) : SiloedCovers(silo, fileCovers), MutableCovers<FileCover> {
override suspend fun create(file: DeviceFile, metadata: Metadata): CoverResult<FileCover> = override suspend fun create(file: DeviceFile, metadata: Metadata): CoverResult<FileCover> =
when (val result = fileCovers.create(file, metadata)) { when (val result = fileCovers.create(file, metadata)) {
@ -96,7 +96,7 @@ private constructor(
): MutableSiloedCovers { ): MutableSiloedCovers {
val core = SiloCore.from(context, silo) val core = SiloCore.from(context, silo)
return MutableSiloedCovers( return MutableSiloedCovers(
core.rootDir, silo, MutableInternalCovers(core.files, core.format, coverIdentifier)) core.rootDir, silo, MutableEmbeddedCovers(core.files, core.format, coverIdentifier))
} }
} }
} }

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.musikr.covers.internal package org.oxycblt.musikr.covers.embedded
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.musikr.covers.internal package org.oxycblt.musikr.covers.embedded
import java.security.MessageDigest import java.security.MessageDigest

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.musikr.covers.internal package org.oxycblt.musikr.covers.embedded
class CoverParams private constructor(val resolution: Int, val quality: Int) { class CoverParams private constructor(val resolution: Int, val quality: Int) {
override fun hashCode() = 31 * resolution + quality override fun hashCode() = 31 * resolution + quality

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.musikr.covers.internal package org.oxycblt.musikr.covers.embedded
import org.oxycblt.musikr.covers.Cover import org.oxycblt.musikr.covers.Cover
import org.oxycblt.musikr.covers.CoverResult import org.oxycblt.musikr.covers.CoverResult
@ -28,7 +28,7 @@ import org.oxycblt.musikr.fs.app.AppFile
import org.oxycblt.musikr.fs.device.DeviceFile import org.oxycblt.musikr.fs.device.DeviceFile
import org.oxycblt.musikr.metadata.Metadata import org.oxycblt.musikr.metadata.Metadata
open class InternalCovers(private val appFS: AppFS, private val coverFormat: CoverFormat) : open class EmbeddedCovers(private val appFS: AppFS, private val coverFormat: CoverFormat) :
Covers<FDCover> { Covers<FDCover> {
override suspend fun obtain(id: String): CoverResult<FDCover> { override suspend fun obtain(id: String): CoverResult<FDCover> {
val file = appFS.find(getFileName(id)) val file = appFS.find(getFileName(id))
@ -42,11 +42,11 @@ open class InternalCovers(private val appFS: AppFS, private val coverFormat: Cov
protected fun getFileName(id: String) = "$id.${coverFormat.extension}" protected fun getFileName(id: String) = "$id.${coverFormat.extension}"
} }
class MutableInternalCovers( class MutableEmbeddedCovers(
private val appFS: AppFS, private val appFS: AppFS,
private val coverFormat: CoverFormat, private val coverFormat: CoverFormat,
private val coverIdentifier: CoverIdentifier private val coverIdentifier: CoverIdentifier
) : InternalCovers(appFS, coverFormat), MutableCovers<FDCover> { ) : EmbeddedCovers(appFS, coverFormat), MutableCovers<FDCover> {
override suspend fun create(file: DeviceFile, metadata: Metadata): CoverResult<FDCover> { override suspend fun create(file: DeviceFile, metadata: Metadata): CoverResult<FDCover> {
val data = metadata.cover ?: return CoverResult.Miss() val data = metadata.cover ?: return CoverResult.Miss()
val id = coverIdentifier.identify(data) val id = coverIdentifier.identify(data)