all: reformat

This commit is contained in:
Alexander Capehart 2025-02-26 16:14:18 -07:00
parent 7906867a96
commit 216d9802ef
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
5 changed files with 48 additions and 27 deletions

View file

@ -26,18 +26,15 @@ import android.database.Cursor
import android.net.Uri
import android.os.ParcelFileDescriptor
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
import kotlinx.coroutines.runBlocking
import org.oxycblt.auxio.BuildConfig
import org.oxycblt.auxio.image.covers.SettingCovers
import org.oxycblt.auxio.image.covers.SiloedCoverId
import org.oxycblt.auxio.image.covers.SiloedCovers
import org.oxycblt.musikr.cover.CoverResult
import javax.inject.Inject
@AndroidEntryPoint
class CoverProvider @Inject constructor(
private val settingCovers: SettingCovers
) : ContentProvider() {
class CoverProvider @Inject constructor(private val settingCovers: SettingCovers) :
ContentProvider() {
override fun onCreate(): Boolean = true
override fun openFile(uri: Uri, mode: String): ParcelFileDescriptor? {

View file

@ -1,6 +1,23 @@
/*
* Copyright (c) 2025 Auxio Project
* CompatCovers.kt is part of Auxio.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package org.oxycblt.auxio.image.covers
import android.content.Context
import android.net.Uri
import android.os.Build
@ -16,7 +33,8 @@ import org.oxycblt.musikr.cover.MutableCovers
import org.oxycblt.musikr.fs.DeviceFile
import org.oxycblt.musikr.metadata.Metadata
open class CompatCovers(private val context: Context, private val inner: Covers<FileCover>) : Covers<FileCover> {
open class CompatCovers(private val context: Context, private val inner: Covers<FileCover>) :
Covers<FileCover> {
override suspend fun obtain(id: String): CoverResult<FileCover> {
when (val innerResult = inner.obtain(id)) {
is CoverResult.Hit -> return CoverResult.Hit(innerResult.cover)
@ -29,7 +47,10 @@ open class CompatCovers(private val context: Context, private val inner: Covers<
}
}
class MutableCompatCovers(private val context: Context, private val inner: MutableCovers<FileCover>) : CompatCovers(context, inner), MutableCovers<FileCover> {
class MutableCompatCovers(
private val context: Context,
private val inner: MutableCovers<FileCover>
) : CompatCovers(context, inner), MutableCovers<FileCover> {
override suspend fun create(file: DeviceFile, metadata: Metadata): CoverResult<FileCover> {
when (val innerResult = inner.create(file, metadata)) {
is CoverResult.Hit -> return CoverResult.Hit(innerResult.cover)
@ -37,20 +58,22 @@ class MutableCompatCovers(private val context: Context, private val inner: Mutab
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
return CoverResult.Miss()
}
val mediaStoreUri = MediaStore.getMediaUri(context, file.uri) ?: return CoverResult.Miss()
val mediaStoreUri =
MediaStore.getMediaUri(context, file.uri) ?: return CoverResult.Miss()
val proj = arrayOf(MediaStore.MediaColumns._ID)
val cursor = context.contentResolver.query(mediaStoreUri, proj, null, null, null)
val uri = cursor.use {
if (it == null || !it.moveToFirst()) {
return CoverResult.Miss()
val uri =
cursor.use {
if (it == null || !it.moveToFirst()) {
return CoverResult.Miss()
}
val id = it.getLong(it.getColumnIndexOrThrow(MediaStore.MediaColumns._ID))
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.buildUpon().run {
appendPath(id.toString())
appendPath("albumart")
build()
}
}
val id = it.getLong(it.getColumnIndexOrThrow(MediaStore.MediaColumns._ID))
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.buildUpon().run {
appendPath(id.toString())
appendPath("albumart")
build()
}
}
return CoverResult.Hit(CompatCover(context, uri))
}
}
@ -66,7 +89,6 @@ class CompatCover(private val context: Context, private val uri: Uri) : FileCove
return context.contentResolver.openFileDescriptor(uri, "r")
}
override suspend fun open() = withContext(Dispatchers.IO) {
context.contentResolver.openInputStream(uri)
}
}
override suspend fun open() =
withContext(Dispatchers.IO) { context.contentResolver.openInputStream(uri) }
}

View file

@ -19,7 +19,6 @@
package org.oxycblt.auxio.image.covers
import android.content.Context
import org.apache.commons.lang3.ObjectUtils.Null
import org.oxycblt.musikr.cover.Cover
import org.oxycblt.musikr.cover.CoverResult
import org.oxycblt.musikr.cover.MutableCovers

View file

@ -32,6 +32,7 @@ import org.oxycblt.musikr.cover.MutableCovers
interface SettingCovers {
suspend fun obtain(context: Context, id: String): CoverResult<FileCover>
suspend fun mutate(context: Context, revision: UUID): MutableCovers<out Cover>
}
@ -55,5 +56,6 @@ constructor(private val imageSettings: ImageSettings, private val identifier: Co
}
private suspend fun siloedCovers(context: Context, revision: UUID, with: CoverParams) =
MutableCompatCovers(context, MutableSiloedCovers.from(context, CoverSilo(revision, with), identifier))
MutableCompatCovers(
context, MutableSiloedCovers.from(context, CoverSilo(revision, with), identifier))
}

View file

@ -35,7 +35,8 @@ import org.oxycblt.musikr.fs.DeviceFile
import org.oxycblt.musikr.fs.app.AppFiles
import org.oxycblt.musikr.metadata.Metadata
open class SiloedCovers(private val silo: CoverSilo, private val fileCovers: FileCovers) : Covers<FileCover> {
open class SiloedCovers(private val silo: CoverSilo, private val fileCovers: FileCovers) :
Covers<FileCover> {
override suspend fun obtain(id: String): CoverResult<FileCover> {
val coverId = SiloedCoverId.parse(id) ?: return CoverResult.Miss()
if (coverId.silo != silo) return CoverResult.Miss()