musikr: internalcovers -> embeddedcovers
This commit is contained in:
parent
9a70ae1c4e
commit
e2d28f98f4
8 changed files with 24 additions and 24 deletions
|
@ -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)
|
||||||
|
|
|
@ -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() =
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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)
|
Loading…
Reference in a new issue