diff --git a/app/src/main/java/org/lineageos/twelve/ext/Player.kt b/app/src/main/java/org/lineageos/twelve/ext/Player.kt
index 61f41d0..3fee812 100644
--- a/app/src/main/java/org/lineageos/twelve/ext/Player.kt
+++ b/app/src/main/java/org/lineageos/twelve/ext/Player.kt
@@ -16,6 +16,7 @@
 import androidx.media3.common.util.UnstableApi
 import kotlinx.coroutines.channels.awaitClose
 import org.lineageos.twelve.models.PlaybackState
+import org.lineageos.twelve.models.QueueItem
 import org.lineageos.twelve.models.RepeatMode
 
 @OptIn(UnstableApi::class)
@@ -160,7 +161,7 @@
 
         trySend(
             mediaItems.mapIndexed { index, mediaItem ->
-                mediaItem to (index == currentMediaItemIndex)
+                QueueItem(mediaItem, index == currentMediaItemIndex)
             }
         )
     }
diff --git a/app/src/main/java/org/lineageos/twelve/fragments/QueueFragment.kt b/app/src/main/java/org/lineageos/twelve/fragments/QueueFragment.kt
index f02d83a..e401822 100644
--- a/app/src/main/java/org/lineageos/twelve/fragments/QueueFragment.kt
+++ b/app/src/main/java/org/lineageos/twelve/fragments/QueueFragment.kt
@@ -15,11 +15,9 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.repeatOnLifecycle
-import androidx.media3.common.MediaItem
 import androidx.media3.common.util.UnstableApi
 import androidx.navigation.fragment.findNavController
 import androidx.navigation.ui.setupWithNavController
-import androidx.recyclerview.widget.DiffUtil
 import androidx.recyclerview.widget.ItemTouchHelper
 import androidx.recyclerview.widget.RecyclerView
 import com.google.android.material.appbar.MaterialToolbar
@@ -28,7 +26,9 @@
 import org.lineageos.twelve.R
 import org.lineageos.twelve.ext.getViewProperty
 import org.lineageos.twelve.ext.updatePadding
+import org.lineageos.twelve.models.QueueItem
 import org.lineageos.twelve.ui.recyclerview.SimpleListAdapter
+import org.lineageos.twelve.ui.recyclerview.UniqueItemDiffCallback
 import org.lineageos.twelve.ui.views.ListItem
 import org.lineageos.twelve.utils.TimestampFormatter
 import org.lineageos.twelve.viewmodels.QueueViewModel
@@ -49,17 +49,17 @@
 
     // RecyclerView
     private val adapter by lazy {
-        object : SimpleListAdapter<Pair<MediaItem, Boolean>, ListItem>(
-            diffCallback,
+        object : SimpleListAdapter<QueueItem, ListItem>(
+            UniqueItemDiffCallback(),
             ::ListItem,
         ) {
-            var currentQueue = listOf<Pair<MediaItem, Boolean>>()
+            var currentQueue = listOf<QueueItem>()
 
             override fun ViewHolder.onPrepareView() {
                 view.setTrailingIconImage(R.drawable.ic_drag_handle)
             }
 
-            override fun ViewHolder.onBindView(item: Pair<MediaItem, Boolean>) {
+            override fun ViewHolder.onBindView(item: QueueItem) {
                 val (mediaItem, isCurrent) = item
 
                 view.setLeadingIconImage(
@@ -169,18 +169,4 @@
 
         super.onDestroyView()
     }
-
-    companion object {
-        private val diffCallback = object : DiffUtil.ItemCallback<Pair<MediaItem, Boolean>>() {
-            override fun areItemsTheSame(
-                oldItem: Pair<MediaItem, Boolean>,
-                newItem: Pair<MediaItem, Boolean>,
-            ) = oldItem.first.mediaId == newItem.first.mediaId
-
-            override fun areContentsTheSame(
-                oldItem: Pair<MediaItem, Boolean>,
-                newItem: Pair<MediaItem, Boolean>,
-            ) = oldItem.first == newItem.first && oldItem.second == newItem.second
-        }
-    }
 }
diff --git a/app/src/main/java/org/lineageos/twelve/models/QueueItem.kt b/app/src/main/java/org/lineageos/twelve/models/QueueItem.kt
new file mode 100644
index 0000000..42751b7
--- /dev/null
+++ b/app/src/main/java/org/lineageos/twelve/models/QueueItem.kt
@@ -0,0 +1,18 @@
+/*
+ * SPDX-FileCopyrightText: 2024 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.lineageos.twelve.models
+
+import androidx.media3.common.MediaItem
+
+data class QueueItem(
+    val mediaItem: MediaItem,
+    val isCurrent: Boolean,
+) : UniqueItem<QueueItem> {
+    override fun areItemsTheSame(other: QueueItem) = mediaItem.mediaId == other.mediaItem.mediaId
+
+    override fun areContentsTheSame(other: QueueItem) =
+        mediaItem == other.mediaItem && isCurrent == other.isCurrent
+}
