From ef9d097dc3cc88b100ef870669378f246c90cbb9 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Fri, 21 Aug 2020 12:16:22 -0600 Subject: [PATCH] Minor nullability/Logging changes Remove nullables from all the music models, just so that theyre easier to work with, also update Logging at places. --- .../java/org/oxycblt/auxio/music/GenreCompat.kt | 4 ++-- .../java/org/oxycblt/auxio/music/MusicLoader.kt | 15 ++++++++------- .../java/org/oxycblt/auxio/music/MusicSorter.kt | 8 ++++---- .../java/org/oxycblt/auxio/music/models/Album.kt | 4 ++-- .../java/org/oxycblt/auxio/music/models/Artist.kt | 4 ++-- .../java/org/oxycblt/auxio/music/models/Genre.kt | 2 +- 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/music/GenreCompat.kt b/app/src/main/java/org/oxycblt/auxio/music/GenreCompat.kt index de4d3be3e..e4174cc3a 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/GenreCompat.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/GenreCompat.kt @@ -28,11 +28,11 @@ val ID3_GENRES = arrayOf( const val PAREN_FILTER = "()" -fun intToNamedGenre(genre: String): String? { +fun intToNamedGenre(genre: String): String { // Strip the genres of any parentheses, and convert it to an int val intGenre = genre.filterNot { PAREN_FILTER.indexOf(it) > -1 }.toInt() - return ID3_GENRES.getOrNull(intGenre) + return ID3_GENRES.getOrNull(intGenre) ?: "" } diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicLoader.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicLoader.kt index eaecfd71e..a8f9e5a45 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicLoader.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicLoader.kt @@ -75,11 +75,12 @@ class MusicLoader(private val app: Application) { while (cursor.moveToNext()) { val id = cursor.getLong(idIndex) - var name = cursor.getString(nameIndex) + var name = cursor.getString(nameIndex) ?: "" // If a genre is still in an old int-based format [Android formats it as "(INT)"], - // convert that to the corresponding ID3 genre. - if (name.contains("[0-9][()]")) { + // convert that to the corresponding ID3 genre. Really hope anyone doesn't have + // a genre that contains parentheses. + if (name.contains(Regex("[()]"))) { name = intToNamedGenre(name) } @@ -128,7 +129,7 @@ class MusicLoader(private val app: Application) { while (cursor.moveToNext()) { val id = cursor.getLong(idIndex) - val name = cursor.getString(nameIndex) + val name = cursor.getString(nameIndex) ?: "" // If an artist has already been added [Which is very likely due to how genres // are processed], add the genre to the existing artist instead of creating a @@ -191,8 +192,8 @@ class MusicLoader(private val app: Application) { while (cursor.moveToNext()) { val id = cursor.getLong(idIndex) - val name = cursor.getString(nameIndex) - val artist = cursor.getString(artistIndex) + val name = cursor.getString(nameIndex) ?: "" + val artist = cursor.getString(artistIndex) ?: "" val year = cursor.getInt(yearIndex) val numSongs = cursor.getInt(numIndex) @@ -248,7 +249,7 @@ class MusicLoader(private val app: Application) { while (cursor.moveToNext()) { val id = cursor.getLong(idIndex) val title = cursor.getString(titleIndex) ?: cursor.getString(fileIndex) - val album = cursor.getString(albumIndex) + val album = cursor.getString(albumIndex) ?: "" val track = cursor.getInt(trackIndex) val duration = cursor.getLong(durationIndex) diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicSorter.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicSorter.kt index 88192e0b7..afa32ff20 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicSorter.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicSorter.kt @@ -33,8 +33,8 @@ class MusicSorter( // Any remaining songs will be added to an unknown album if (unknownSongs.size > 0) { - // Reuse an existing unknown albumif one is found - val unknownAlbum = albums.find { it.title == null } ?: Album() + // Reuse an existing unknown album if one is found + val unknownAlbum = albums.find { it.title == "" } ?: Album() unknownAlbum.songs.addAll(unknownSongs) unknownAlbum.numSongs = unknownAlbum.songs.size @@ -72,7 +72,7 @@ class MusicSorter( if (unknownAlbums.size > 0) { // Reuse an existing unknown artist if one is found - val unknownArtist = artists.find { it.name == null } ?: Artist() + val unknownArtist = artists.find { it.name == "" } ?: Artist() unknownArtist.albums.addAll(unknownAlbums) unknownArtist.numAlbums = albums.size @@ -85,7 +85,7 @@ class MusicSorter( Log.d( this::class.simpleName, - "Placed " + unknownAlbums.size.toString() + " albums into an unknown album" + "Placed " + unknownAlbums.size.toString() + " albums into an unknown artist" ) } } diff --git a/app/src/main/java/org/oxycblt/auxio/music/models/Album.kt b/app/src/main/java/org/oxycblt/auxio/music/models/Album.kt index 6b04f3b55..6d934935a 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/models/Album.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/models/Album.kt @@ -3,8 +3,8 @@ package org.oxycblt.auxio.music.models // Abstraction for Song data class Album( val id: Long = 0L, - val title: String? = null, - val artistName: String? = null, + val title: String = "", + val artistName: String = "", val year: Int = 0, var numSongs: Int = 0 ) { diff --git a/app/src/main/java/org/oxycblt/auxio/music/models/Artist.kt b/app/src/main/java/org/oxycblt/auxio/music/models/Artist.kt index c5c794974..41a56f1d0 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/models/Artist.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/models/Artist.kt @@ -3,8 +3,8 @@ package org.oxycblt.auxio.music.models // Abstraction for mAlbums data class Artist( val id: Long = 0, - val name: String? = null, - val genres: MutableList = mutableListOf(null) + val name: String = "", + val genres: MutableList = mutableListOf("") ) { val albums = mutableListOf() var numAlbums = 0 diff --git a/app/src/main/java/org/oxycblt/auxio/music/models/Genre.kt b/app/src/main/java/org/oxycblt/auxio/music/models/Genre.kt index 95ac268fb..dc8f79bbf 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/models/Genre.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/models/Genre.kt @@ -2,5 +2,5 @@ package org.oxycblt.auxio.music.models data class Genre( val id: Long, - val name: String? + val name: String )