Skip to content
Snippets Groups Projects
Commit b2cc7b89 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy Committed by Geoffrey Métais
Browse files

Potential fix for IllegalArgumentException in RecyclerView recycling

parent 4e9d925f
No related branches found
No related tags found
No related merge requests found
......@@ -30,12 +30,14 @@ import android.util.SparseBooleanArray
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.animation.AccelerateDecelerateInterpolator
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.RecyclerView
import androidx.transition.ChangeBounds
import androidx.transition.TransitionManager
import com.google.android.material.floatingactionbutton.FloatingActionButton
import kotlinx.coroutines.*
......@@ -49,7 +51,6 @@ import org.videolan.vlc.R
import org.videolan.vlc.gui.AudioPlayerContainerActivity
import org.videolan.vlc.gui.ContentActivity
import org.videolan.vlc.gui.InfoActivity
import org.videolan.vlc.gui.MainActivity
import org.videolan.vlc.gui.helpers.SparseBooleanArrayParcelable
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.UiTools.snackerConfirm
......@@ -76,6 +77,10 @@ abstract class MediaBrowserFragment<T : SortableModel> : Fragment(), ActionMode.
var actionMode: ActionMode? = null
var fabPlay: FloatingActionButton? = null
private var savedSelection = SparseBooleanArray()
private val transition = ChangeBounds().apply {
interpolator = AccelerateDecelerateInterpolator()
duration = 300
}
open lateinit var viewModel: T
protected set
......@@ -359,7 +364,8 @@ abstract class MediaBrowserFragment<T : SortableModel> : Fragment(), ActionMode.
val cs = ConstraintSet()
cs.clone(cl)
cs.setVisibility(R.id.searchButton, if (visible) ConstraintSet.VISIBLE else ConstraintSet.GONE)
TransitionManager.beginDelayedTransition(cl)
transition.excludeChildren(RecyclerView::class.java, true)
TransitionManager.beginDelayedTransition(cl, transition)
cs.applyTo(cl)
} else
searchButtonView.visibility = if (visible) View.VISIBLE else View.GONE
......
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