@@ -60,8 +60,10 @@ class SimpleMediaScanner(private val context: Application) {
6060 ensureBackgroundThread {
6161 try {
6262 scanMediaStore()
63- onScanComplete?.invoke(false )
64- scanFilesManually()
63+ if (isQPlus()) {
64+ onScanComplete?.invoke(false )
65+ scanFilesManually()
66+ }
6567
6668 cleanupDatabase()
6769 onScanComplete?.invoke(true )
@@ -211,25 +213,27 @@ class SimpleMediaScanner(private val context: Application) {
211213 val title = cursor.getStringValue(Audio .Media .TITLE )
212214 val duration = cursor.getIntValue(Audio .Media .DURATION ) / 1000
213215 val trackId = cursor.getIntValue(Audio .Media .TRACK ) % 1000
214- val path = cursor.getStringValue(Audio .Media .DATA )
216+ val path = cursor.getStringValue(Audio .Media .DATA ).orEmpty()
215217 val artist = cursor.getStringValue(Audio .Media .ARTIST ) ? : MediaStore .UNKNOWN_STRING
216- val album = cursor.getStringValue(Audio .Media .ALBUM )
217- val albumId = cursor.getLongValue(Audio .Media .ALBUM_ID )
218- val artistId = cursor.getLongValue(Audio .Media .ARTIST_ID )
219- val year = cursor.getIntValue(Audio .Media .YEAR )
220- val dateAdded = cursor.getIntValue(Audio .Media .DATE_ADDED )
221218 val folderName = if (isQPlus()) {
222219 cursor.getStringValue(Audio .Media .BUCKET_DISPLAY_NAME ) ? : MediaStore .UNKNOWN_STRING
223220 } else {
224221 " "
225222 }
226223
224+ val album = cursor.getStringValue(Audio .Media .ALBUM ) ? : folderName
225+ val albumId = cursor.getLongValue(Audio .Media .ALBUM_ID )
226+ val artistId = cursor.getLongValue(Audio .Media .ARTIST_ID )
227+ val year = cursor.getIntValue(Audio .Media .YEAR )
228+ val dateAdded = cursor.getIntValue(Audio .Media .DATE_ADDED )
227229 val coverUri = ContentUris .withAppendedId(artworkUri, albumId)
228230 val coverArt = coverUri.toString()
229231
230- val track = Track (0 , id, title, artist, path, duration, album, coverArt, 0 , trackId, folderName, albumId, artistId, year, dateAdded, 0 )
231- track.title = track.getProperTitle(showFilename)
232- tracks.add(track)
232+ if (! title.isNullOrEmpty()) {
233+ val track = Track (0 , id, title, artist, path, duration, album, coverArt, 0 , trackId, folderName, albumId, artistId, year, dateAdded, 0 )
234+ track.title = track.getProperTitle(showFilename)
235+ tracks.add(track)
236+ }
233237 }
234238
235239 return tracks
@@ -277,7 +281,7 @@ class SimpleMediaScanner(private val context: Application) {
277281 context.queryCursor(uri, projection.toTypedArray(), null , null , showErrors = true ) { cursor ->
278282 val id = cursor.getLongValue(Audio .Albums ._ID )
279283 val artistName = cursor.getStringValue(Audio .Albums .ARTIST ) ? : MediaStore .UNKNOWN_STRING
280- val title = cursor.getStringValue(Audio .Albums .ALBUM )
284+ val title = cursor.getStringValue(Audio .Albums .ALBUM ) ? : MediaStore . UNKNOWN_STRING
281285 val coverArt = ContentUris .withAppendedId(artworkUri, id).toString()
282286 val year = cursor.getIntValue(Audio .Albums .FIRST_YEAR )
283287 val trackCnt = cursor.getIntValue(Audio .Albums .NUMBER_OF_SONGS )
@@ -357,7 +361,7 @@ class SimpleMediaScanner(private val context: Application) {
357361 }
358362
359363 if (title.isNotEmpty()) {
360- val track = Track (0 , id, title, artist, path, duration, album, " " , 0 , trackId, folderName, 0 , 0 , year, dateAdded, FLAG_MANUAL_CACHE )
364+ val track = Track (0 , id, title, artist, path, duration, album, " " , 0 , trackId, folderName, 0 , 0 , year, dateAdded, 0 , FLAG_MANUAL_CACHE )
361365 // use hashCode() as id for tracking purposes, there's a very slim chance of collision
362366 track.mediaStoreId = track.hashCode().toLong()
363367 tracks.add(track)
0 commit comments