|
|
|
@ -7,7 +7,6 @@ import androidx.lifecycle.Observer |
|
|
|
|
import androidx.recyclerview.widget.DiffUtil |
|
|
|
|
import androidx.recyclerview.widget.GridLayoutManager |
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
|
import androidx.recyclerview.widget.RecyclerView |
|
|
|
|
import io.legado.app.App |
|
|
|
|
import io.legado.app.R |
|
|
|
|
import io.legado.app.base.BaseFragment |
|
|
|
@ -28,7 +27,6 @@ import io.legado.app.utils.getViewModelOfActivity |
|
|
|
|
import io.legado.app.utils.observeEvent |
|
|
|
|
import kotlinx.android.synthetic.main.fragment_books.* |
|
|
|
|
import org.jetbrains.anko.startActivity |
|
|
|
|
import kotlin.math.max |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BooksFragment : BaseFragment(R.layout.fragment_books), |
|
|
|
@ -77,23 +75,6 @@ class BooksFragment : BaseFragment(R.layout.fragment_books), |
|
|
|
|
booksAdapter = BooksAdapterGrid(requireContext(), this) |
|
|
|
|
} |
|
|
|
|
rv_bookshelf.adapter = booksAdapter |
|
|
|
|
booksAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() { |
|
|
|
|
override fun onItemRangeInserted(positionStart: Int, itemCount: Int) { |
|
|
|
|
val layoutManager = rv_bookshelf.layoutManager |
|
|
|
|
if (positionStart == 0 && layoutManager is LinearLayoutManager) { |
|
|
|
|
val scrollTo = layoutManager.findFirstVisibleItemPosition() - itemCount |
|
|
|
|
rv_bookshelf.scrollToPosition(max(0, scrollTo)) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun onItemRangeMoved(fromPosition: Int, toPosition: Int, itemCount: Int) { |
|
|
|
|
val layoutManager = rv_bookshelf.layoutManager |
|
|
|
|
if (toPosition == 0 && layoutManager is LinearLayoutManager) { |
|
|
|
|
val scrollTo = layoutManager.findFirstVisibleItemPosition() - itemCount |
|
|
|
|
rv_bookshelf.scrollToPosition(max(0, scrollTo)) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun upRecyclerData() { |
|
|
|
|