all: various cleanup

This commit is contained in:
Alexander Capehart 2024-08-29 09:31:15 -06:00
parent 889713d5e0
commit bf50867b37
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
4 changed files with 20 additions and 17 deletions

View file

@ -105,8 +105,11 @@ fun Category.toMediaItem(context: Context): MediaItem {
return MediaItem(description.build(), MediaItem.FLAG_BROWSABLE) return MediaItem(description.build(), MediaItem.FLAG_BROWSABLE)
} }
fun Song.toMediaDescription(context: Context, parent: MusicParent? = null, fun Song.toMediaDescription(
vararg sugar: Sugar): MediaDescriptionCompat { context: Context,
parent: MusicParent? = null,
vararg sugar: Sugar
): MediaDescriptionCompat {
val mediaSessionUID = val mediaSessionUID =
if (parent == null) { if (parent == null) {
MediaSessionUID.SingleItem(uid) MediaSessionUID.SingleItem(uid)

View file

@ -21,8 +21,6 @@ package org.oxycblt.auxio.playback.system
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap
import android.os.Bundle
import android.support.v4.media.MediaDescriptionCompat
import android.support.v4.media.MediaMetadataCompat import android.support.v4.media.MediaMetadataCompat
import android.support.v4.media.session.MediaSessionCompat import android.support.v4.media.session.MediaSessionCompat
import android.support.v4.media.session.PlaybackStateCompat import android.support.v4.media.session.PlaybackStateCompat
@ -43,7 +41,6 @@ import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.resolveNames import org.oxycblt.auxio.music.resolveNames
import org.oxycblt.auxio.music.service.MediaSessionUID import org.oxycblt.auxio.music.service.MediaSessionUID
import org.oxycblt.auxio.music.service.toMediaDescription import org.oxycblt.auxio.music.service.toMediaDescription
import org.oxycblt.auxio.music.service.toMediaItem
import org.oxycblt.auxio.playback.ActionMode import org.oxycblt.auxio.playback.ActionMode
import org.oxycblt.auxio.playback.PlaybackSettings import org.oxycblt.auxio.playback.PlaybackSettings
import org.oxycblt.auxio.playback.service.MediaSessionInterface import org.oxycblt.auxio.playback.service.MediaSessionInterface
@ -306,7 +303,9 @@ private constructor(
private fun updateQueue(queue: List<Song>) { private fun updateQueue(queue: List<Song>) {
val queueItems = val queueItems =
queue.mapIndexed { i, song -> queue.mapIndexed { i, song ->
val description = song.toMediaDescription(context, null, { putInt(MediaSessionInterface.KEY_QUEUE_POS, i) }) val description =
song.toMediaDescription(
context, null, { putInt(MediaSessionInterface.KEY_QUEUE_POS, i) })
// Store the item index so we can then use the analogous index in the // Store the item index so we can then use the analogous index in the
// playback state. // playback state.
MediaSessionCompat.QueueItem(description, i.toLong()) MediaSessionCompat.QueueItem(description, i.toLong())

View file

@ -102,13 +102,13 @@ constructor(
super.onAddQueueItem(description) super.onAddQueueItem(description)
val deviceLibrary = musicRepository.deviceLibrary ?: return val deviceLibrary = musicRepository.deviceLibrary ?: return
val uid = MediaSessionUID.fromString(description.mediaId ?: return) ?: return val uid = MediaSessionUID.fromString(description.mediaId ?: return) ?: return
val song = val songUid =
when (uid) { when (uid) {
is MediaSessionUID.SingleItem -> deviceLibrary.findSong(uid.uid) is MediaSessionUID.SingleItem -> uid.uid
is MediaSessionUID.ChildItem -> deviceLibrary.findSong(uid.childUid) is MediaSessionUID.ChildItem -> uid.childUid
else -> null else -> return
} }
?: return val song = deviceLibrary.songs.find { it.uid == songUid } ?: return
playbackManager.addToQueue(song) playbackManager.addToQueue(song)
} }
@ -123,11 +123,12 @@ constructor(
} }
// Non-queue item or queue item lost it's extras in transit, remove the first item // Non-queue item or queue item lost it's extras in transit, remove the first item
val uid = MediaSessionUID.fromString(description.mediaId ?: return) ?: return val uid = MediaSessionUID.fromString(description.mediaId ?: return) ?: return
val songUid = when (uid) { val songUid =
is MediaSessionUID.SingleItem -> uid.uid when (uid) {
is MediaSessionUID.ChildItem -> uid.childUid is MediaSessionUID.SingleItem -> uid.uid
else -> return is MediaSessionUID.ChildItem -> uid.childUid
} else -> return
}
val firstAt = playbackManager.queue.indexOfFirst { it.uid == songUid } val firstAt = playbackManager.queue.indexOfFirst { it.uid == songUid }
playbackManager.removeQueueItem(firstAt) playbackManager.removeQueueItem(firstAt)
} }

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2024 Auxio Project * Copyright (c) 2024 Auxio Project
* PlaybackActionHandler.kt is part of Auxio. * PlaybackActions.kt is part of Auxio.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by