diff --git a/app/build.gradle b/app/build.gradle index 596955c4e..9637a6083 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -98,15 +98,15 @@ dependencies { implementation "com.google.android.exoplayer:exoplayer-core:2.16.1" // Image loading - implementation 'io.coil-kt:coil:2.0.0-alpha03' + implementation 'io.coil-kt:coil:2.0.0-alpha05' // Material - implementation "com.google.android.material:material:1.5.0-beta01" + implementation 'com.google.android.material:material:1.5.0-rc01' // --- DEBUG --- // Lint - ktlint 'com.pinterest:ktlint:0.43.0' + ktlint 'com.pinterest:ktlint:0.43.2' } task ktlint(type: JavaExec, group: "verification") { diff --git a/app/src/main/java/org/oxycblt/auxio/coil/AuxioFetcher.kt b/app/src/main/java/org/oxycblt/auxio/coil/AuxioFetcher.kt index 9489ab792..07bd896bd 100644 --- a/app/src/main/java/org/oxycblt/auxio/coil/AuxioFetcher.kt +++ b/app/src/main/java/org/oxycblt/auxio/coil/AuxioFetcher.kt @@ -12,8 +12,9 @@ import coil.fetch.DrawableResult import coil.fetch.FetchResult import coil.fetch.Fetcher import coil.fetch.SourceResult -import coil.size.PixelSize +import coil.size.Dimension import coil.size.Size +import coil.size.pxOrElse import com.google.android.exoplayer2.MediaItem import com.google.android.exoplayer2.MediaMetadata import com.google.android.exoplayer2.MetadataRetriever @@ -30,6 +31,7 @@ import org.oxycblt.auxio.settings.SettingsManager import org.oxycblt.auxio.util.logD import java.io.ByteArrayInputStream import java.io.InputStream +import android.util.Size as AndroidSize /** * The base implementation for all image fetchers in Auxio. @@ -215,12 +217,8 @@ abstract class AuxioFetcher : Fetcher { // Use whatever size coil gives us to create the mosaic, rounding it to even so that we // get a symmetrical mosaic [and to prevent bugs]. If there is no size, default to a // 512x512 mosaic. - val mosaicSize = when (size) { - is PixelSize -> PixelSize(size.width.roundEven(), size.height.roundEven()) - else -> PixelSize(512, 512) - } - - val increment = PixelSize(mosaicSize.width / 2, mosaicSize.height / 2) + val mosaicSize = AndroidSize(size.width.mosaicSize(), size.height.mosaicSize()) + val increment = AndroidSize(mosaicSize.width / 2, mosaicSize.height / 2) val mosaicBitmap = Bitmap.createBitmap( mosaicSize.width, mosaicSize.height, Bitmap.Config.ARGB_8888 @@ -265,5 +263,8 @@ abstract class AuxioFetcher : Fetcher { ) } - private fun Int.roundEven(): Int = if (mod(2) != 0) inc() else this + private fun Dimension.mosaicSize(): Int { + val size = pxOrElse { 512 } + return if (size.mod(2) != 0) size.inc() else size + } } diff --git a/app/src/main/java/org/oxycblt/auxio/coil/CoilUtils.kt b/app/src/main/java/org/oxycblt/auxio/coil/CoilUtils.kt index 3e06426e3..6a9ba4f5c 100644 --- a/app/src/main/java/org/oxycblt/auxio/coil/CoilUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/coil/CoilUtils.kt @@ -28,7 +28,7 @@ import coil.dispose import coil.imageLoader import coil.load import coil.request.ImageRequest -import coil.size.OriginalSize +import coil.size.Size import org.oxycblt.auxio.R import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.music.Artist @@ -66,7 +66,7 @@ fun ImageView.bindGenreImage(genre: Genre?) = load(genre, R.drawable.ic_genre) fun ImageView.load(music: T?, @DrawableRes error: Int) { dispose() - // We don't round album covers by default as it descecrates album artwork, but we do provide + // We don't round album covers by default as it desecrates album artwork, but we do provide // an option if one wants it. // As for why we use clipToOutline instead of coil's RoundedCornersTransformation, the transform // uses the dimensions of the image to create the corners, which results in inconsistent corners @@ -101,7 +101,7 @@ fun loadBitmap( context.imageLoader.enqueue( ImageRequest.Builder(context) .data(song.album) - .size(OriginalSize) + .size(Size.ORIGINAL) .target( onError = { onDone(null) }, onSuccess = { onDone(it.toBitmap()) } diff --git a/app/src/main/res/values/styles_ui.xml b/app/src/main/res/values/styles_ui.xml index 938a941ed..8cc356ed3 100644 --- a/app/src/main/res/values/styles_ui.xml +++ b/app/src/main/res/values/styles_ui.xml @@ -152,9 +152,6 @@ diff --git a/build.gradle b/build.gradle index e2032978c..df1bf782a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.6.0' + ext.kotlin_version = '1.6.10' ext.navigation_version = "2.3.5" repositories {