playback: remove specific queue item in android auto
This commit is contained in:
parent
3dea060a28
commit
ba5bccaa37
2 changed files with 6 additions and 13 deletions
|
@ -21,6 +21,7 @@ package org.oxycblt.auxio.playback.system
|
|||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
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.session.MediaSessionCompat
|
||||
|
@ -303,6 +304,7 @@ private constructor(
|
|||
// MediaStore URI instead of loading a bitmap.
|
||||
.setIconUri(song.album.cover.single.mediaStoreCoverUri)
|
||||
.setMediaUri(song.uri)
|
||||
.setExtras(Bundle().apply { putInt(MediaSessionInterface.KEY_QUEUE_POS, i) })
|
||||
.build()
|
||||
// Store the item index so we can then use the analogous index in the
|
||||
// playback state.
|
||||
|
|
|
@ -26,6 +26,7 @@ import android.support.v4.media.MediaDescriptionCompat
|
|||
import android.support.v4.media.session.MediaSessionCompat
|
||||
import android.support.v4.media.session.PlaybackStateCompat
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import org.oxycblt.auxio.BuildConfig
|
||||
import javax.inject.Inject
|
||||
import org.oxycblt.auxio.music.Album
|
||||
import org.oxycblt.auxio.music.Artist
|
||||
|
@ -99,19 +100,8 @@ constructor(
|
|||
|
||||
override fun onRemoveQueueItem(description: MediaDescriptionCompat) {
|
||||
super.onRemoveQueueItem(description)
|
||||
val deviceLibrary = musicRepository.deviceLibrary ?: return
|
||||
val uid = MediaSessionUID.fromString(description.mediaId ?: return) ?: return
|
||||
val song =
|
||||
when (uid) {
|
||||
is MediaSessionUID.SingleItem -> deviceLibrary.findSong(uid.uid)
|
||||
is MediaSessionUID.ChildItem -> deviceLibrary.findSong(uid.childUid)
|
||||
else -> null
|
||||
}
|
||||
?: return
|
||||
val queueIndex = playbackManager.queue.indexOf(song)
|
||||
if (queueIndex > -1) {
|
||||
playbackManager.removeQueueItem(queueIndex)
|
||||
}
|
||||
val at = description.extras?.getInt(KEY_QUEUE_POS) ?: return
|
||||
playbackManager.removeQueueItem(at)
|
||||
}
|
||||
|
||||
override fun onPlay() {
|
||||
|
@ -210,6 +200,7 @@ constructor(
|
|||
}
|
||||
|
||||
companion object {
|
||||
const val KEY_QUEUE_POS = BuildConfig.APPLICATION_ID + ".metadata.QUEUE_POS"
|
||||
const val ACTIONS =
|
||||
PlaybackStateCompat.ACTION_PLAY_FROM_MEDIA_ID or
|
||||
PlaybackStateCompat.ACTION_PLAY or
|
||||
|
|
Loading…
Reference in a new issue