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 6e45eda44..9489ab792 100644 --- a/app/src/main/java/org/oxycblt/auxio/coil/AuxioFetcher.kt +++ b/app/src/main/java/org/oxycblt/auxio/coil/AuxioFetcher.kt @@ -126,7 +126,7 @@ abstract class AuxioFetcher : Fetcher { context, MediaItem.fromUri(uri) ) - // future.get is a blocking call that makes the us spin until the future is done. + // future.get is a blocking call that makes us spin until the future is done. // This is bad for a co-routine, as it prevents cancellation and by extension // messes with the image loading process and causes frustrating bugs. // To fix this we wrap this around in a withContext call to make it suspend and make @@ -212,10 +212,11 @@ abstract class AuxioFetcher : Fetcher { } } - // Use whatever size coil gives us to create the mosaic. If there is no size, default - // to a 512x512 mosaic. + // 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 -> size + is PixelSize -> PixelSize(size.width.roundEven(), size.height.roundEven()) else -> PixelSize(512, 512) } @@ -263,4 +264,6 @@ abstract class AuxioFetcher : Fetcher { dataSource = DataSource.DISK ) } + + private fun Int.roundEven(): Int = if (mod(2) != 0) inc() else this } diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt index e7cfd3536..a03d89156 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt @@ -205,7 +205,7 @@ class MusicStore private constructor() { */ fun requireInstance(): MusicStore { return requireNotNull(maybeGetInstance()) { - "MusicStore instance was not loaded or loading failed." + "Required MusicStore instance was not available." } } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt index 46396e8e2..5235d69c5 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt @@ -145,8 +145,6 @@ class PlaybackFragment : Fragment() { } } - logD(resources.configuration.smallestScreenWidthDp) - logD("Fragment Created.") return binding.root diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt index 56d5fa01c..3ac870a3b 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt @@ -245,7 +245,7 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback { private fun playWithUriInternal(uri: Uri, context: Context) { logD("Playing with uri $uri") - val musicStore = MusicStore.requireInstance() + val musicStore = MusicStore.maybeGetInstance() ?: return musicStore.findSongForUri(uri, context.contentResolver)?.let { song -> playSong(song) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3e8750013..435a9d43b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -22,10 +22,10 @@ Sort Name - Ascending Artist Album Year + Ascending Now Playing Play