Skip to content
Snippets Groups Projects
Commit 25ff1521 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy Committed by Duncan McNamara
Browse files

Forbid playlist reorder gesture when safe mode is locked

parent 42acfbb3
No related branches found
No related tags found
Loading
Pipeline #362468 passed with stage
in 11 minutes and 1 second
......@@ -150,7 +150,10 @@ open class HeaderMediaListActivity : AudioPlayerContainerActivity(), IEventsHand
if (isPlaylist) {
audioBrowserAdapter = AudioBrowserAdapter(MediaLibraryItem.TYPE_MEDIA, this, this, isPlaylist)
itemTouchHelperCallback = SwipeDragItemTouchHelperCallback(audioBrowserAdapter)
itemTouchHelperCallback = SwipeDragItemTouchHelperCallback(audioBrowserAdapter, lockedInSafeMode = true)
itemTouchHelperCallback.swipeAttemptListener = {
lifecycleScope.launch { showPinIfNeeded() }
}
itemTouchHelper = ItemTouchHelper(itemTouchHelperCallback)
itemTouchHelper!!.attachToRecyclerView(binding.songs)
binding.releaseDate.visibility = View.GONE
......
......@@ -25,12 +25,14 @@ package org.videolan.vlc.gui.helpers
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView
import org.videolan.vlc.gui.helpers.hf.PinCodeDelegate
import org.videolan.vlc.interfaces.SwipeDragHelperAdapter
class SwipeDragItemTouchHelperCallback(private val mAdapter: SwipeDragHelperAdapter, private val longPressDragEnable: Boolean = false) : ItemTouchHelper.Callback() {
class SwipeDragItemTouchHelperCallback(private val mAdapter: SwipeDragHelperAdapter, private val longPressDragEnable: Boolean = false, private val lockedInSafeMode: Boolean = false) : ItemTouchHelper.Callback() {
private var dragFrom = -1
private var dragTo = -1
var swipeEnabled = true
var swipeAttemptListener: (() -> Unit)? = null
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int {
val dragFlags = ItemTouchHelper.UP or ItemTouchHelper.DOWN
......@@ -39,6 +41,10 @@ class SwipeDragItemTouchHelperCallback(private val mAdapter: SwipeDragHelperAdap
}
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean {
if (lockedInSafeMode && PinCodeDelegate.pinUnlocked.value == false) {
swipeAttemptListener?.invoke()
return false
}
mAdapter.onItemMove(viewHolder.layoutPosition, target.layoutPosition)
val fromPosition = viewHolder.layoutPosition
val toPosition = target.layoutPosition
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment