all: various cleanup
This commit is contained in:
parent
889713d5e0
commit
bf50867b37
4 changed files with 20 additions and 17 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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())
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in a new issue