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