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 e26c0db..f02d83a 100644
--- a/app/src/main/java/org/lineageos/twelve/fragments/QueueFragment.kt
+++ b/app/src/main/java/org/lineageos/twelve/fragments/QueueFragment.kt
@@ -53,6 +53,8 @@
             diffCallback,
             ::ListItem,
         ) {
+            var currentQueue = listOf<Pair<MediaItem, Boolean>>()
+
             override fun ViewHolder.onPrepareView() {
                 view.setTrailingIconImage(R.drawable.ic_drag_handle)
             }
@@ -91,16 +93,11 @@
             val to = target.bindingAdapterPosition
 
             // First update our adapter list
-            val list = adapter.currentList.toMutableList()
-            Collections.swap(list, from, to)
-            adapter.setListWithoutDiffing(list)
+            Collections.swap(adapter.currentQueue, from, to)
             adapter.notifyItemMoved(from, to)
 
             // Then update the queue
-            viewModel.moveItem(
-                viewHolder.bindingAdapterPosition,
-                target.bindingAdapterPosition
-            )
+            viewModel.moveItem(from, to)
 
             return true
         }
@@ -156,8 +153,11 @@
 
         viewLifecycleOwner.lifecycleScope.launch {
             viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
-                viewModel.queue.collectLatest {
-                    adapter.submitList(it)
+                viewModel.queue.collectLatest { queue ->
+                    queue.toMutableList().let {
+                        adapter.currentQueue = it
+                        adapter.submitList(it)
+                    }
                 }
             }
         }
diff --git a/app/src/main/java/org/lineageos/twelve/ui/recyclerview/SimpleListAdapter.kt b/app/src/main/java/org/lineageos/twelve/ui/recyclerview/SimpleListAdapter.kt
index 1e5b795..d197015 100644
--- a/app/src/main/java/org/lineageos/twelve/ui/recyclerview/SimpleListAdapter.kt
+++ b/app/src/main/java/org/lineageos/twelve/ui/recyclerview/SimpleListAdapter.kt
@@ -8,7 +8,6 @@
 import android.content.Context
 import android.view.View
 import android.view.ViewGroup
-import androidx.recyclerview.widget.AsyncListDiffer
 import androidx.recyclerview.widget.DiffUtil
 import androidx.recyclerview.widget.ListAdapter
 import androidx.recyclerview.widget.RecyclerView
@@ -22,10 +21,6 @@
     diffCallback: DiffUtil.ItemCallback<T>,
     private val factory: (Context) -> V,
 ) : ListAdapter<T, SimpleListAdapter<T, V>.ViewHolder>(diffCallback) {
-    private val differ = ListAdapter::class.java.getDeclaredField("mDiffer").apply {
-        isAccessible = true
-    }.get(this) as AsyncListDiffer<*>
-
     abstract fun ViewHolder.onBindView(item: T)
 
     open fun ViewHolder.onPrepareView() {}
@@ -38,15 +33,6 @@
         holder.bind(getItem(position))
     }
 
-    fun setListWithoutDiffing(list: List<T>) {
-        setOf("mList", "mReadOnlyList").forEach { fieldName ->
-            differ::class.java.getDeclaredField(fieldName).apply {
-                isAccessible = true
-                set(differ, list)
-            }
-        }
-    }
-
     inner class ViewHolder(val view: V) : RecyclerView.ViewHolder(view) {
         var item: T? = null
 
