diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1519cb2fde..3c0ca8476c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -247,7 +247,6 @@ dependencies { implementation(libs.androidprocessbutton) implementation(libs.flexible.adapter.core) implementation(libs.flexible.adapter.ui) - implementation(libs.viewstatepageradapter) implementation(libs.photoview) implementation(libs.directionalviewpager) { exclude(group = "androidx.viewpager", module = "viewpager") diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/RecyclerViewPagerAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/RecyclerViewPagerAdapter.kt deleted file mode 100644 index f4a1dd67f1..0000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/RecyclerViewPagerAdapter.kt +++ /dev/null @@ -1,65 +0,0 @@ -package eu.kanade.tachiyomi.widget - -import android.view.View -import android.view.ViewGroup -import androidx.viewpager.widget.ViewPager -import com.nightlynexus.viewstatepageradapter.ViewStatePagerAdapter -import java.util.Stack - -abstract class RecyclerViewPagerAdapter : ViewStatePagerAdapter() { - - private val pool = HashMap>() - - var recycle = true - set(value) { - if (!value) pool.clear() - field = value - } - - protected abstract fun getViewType(position: Int): Int - - protected abstract fun inflateView(container: ViewGroup, viewType: Int): View - - protected abstract fun bindView(view: View, position: Int) - - protected open fun recycleView(view: View, position: Int) {} - - override fun createView(container: ViewGroup, position: Int): View { - val viewType = getViewType(position) - val view = if (pool[viewType] != null && pool[viewType]!!.isNotEmpty()) { - pool[viewType]!!.pop().setViewPagerPositionParam(position) - } else { - inflateView(container, viewType) - } - bindView(view, position) - return view - } - - override fun destroyView(container: ViewGroup, position: Int, view: View) { - recycleView(view, position) - val viewType = getViewType(position) - if (pool[viewType] == null) pool[viewType] = Stack() - if (recycle) pool[viewType]!!.push(view) - } - - /** - * Making sure that this ViewPager child view has the correct "position" layout param - * after being recycled. - */ - private fun View.setViewPagerPositionParam(position: Int): View { - val params = layoutParams - if (params is ViewPager.LayoutParams) { - if (!params.isDecor) { - try { - val positionField = ViewPager.LayoutParams::class.java.getDeclaredField("position") - positionField.isAccessible = true - positionField.setInt(params, position) - layoutParams = params - } catch (e: NoSuchFieldException) { - } catch (e: IllegalAccessException) { - } - } - } - return this - } -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 74c578447d..35f4e3ec4e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,7 +63,6 @@ material = "com.google.android.material:material:1.7.0-alpha03" androidprocessbutton = "com.github.dmytrodanylyk.android-process-button:library:1.0.4" flexible-adapter-core = "com.github.arkon.FlexibleAdapter:flexible-adapter:c8013533" flexible-adapter-ui = "com.github.arkon.FlexibleAdapter:flexible-adapter-ui:c8013533" -viewstatepageradapter = "com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.1.0" photoview = "com.github.chrisbanes:PhotoView:2.3.0" directionalviewpager = "com.github.tachiyomiorg:DirectionalViewPager:1.0.0" insetter = "dev.chrisbanes.insetter:insetter:0.6.1" @@ -81,18 +80,18 @@ acra-http = "ch.acra:acra-http:5.9.6" firebase-analytics = "com.google.firebase:firebase-analytics-ktx:21.1.0" aboutLibraries-gradle = { module = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin", version.ref = "aboutlib_version" } -aboutLibraries-compose = { module = "com.mikepenz:aboutlibraries-compose", version.ref ="aboutlib_version" } +aboutLibraries-compose = { module = "com.mikepenz:aboutlibraries-compose", version.ref = "aboutlib_version" } shizuku-api = { module = "dev.rikka.shizuku:api", version.ref = "shizuku_version" } shizuku-provider = { module = "dev.rikka.shizuku:provider", version.ref = "shizuku_version" } -leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref ="leakcanary" } -leakcanary-plumber = { module = "com.squareup.leakcanary:plumber-android", version.ref ="leakcanary" } +leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" } +leakcanary-plumber = { module = "com.squareup.leakcanary:plumber-android", version.ref = "leakcanary" } -sqldelight-android-driver = { module = "com.squareup.sqldelight:android-driver", version.ref ="sqldelight" } -sqldelight-coroutines = { module = "com.squareup.sqldelight:coroutines-extensions-jvm", version.ref ="sqldelight" } -sqldelight-android-paging = { module = "com.squareup.sqldelight:android-paging3-extensions", version.ref ="sqldelight" } -sqldelight-gradle = { module="com.squareup.sqldelight:gradle-plugin", version.ref ="sqldelight" } +sqldelight-android-driver = { module = "com.squareup.sqldelight:android-driver", version.ref = "sqldelight" } +sqldelight-coroutines = { module = "com.squareup.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" } +sqldelight-android-paging = { module = "com.squareup.sqldelight:android-paging3-extensions", version.ref = "sqldelight" } +sqldelight-gradle = { module = "com.squareup.sqldelight:gradle-plugin", version.ref = "sqldelight" } junit = "org.junit.jupiter:junit-jupiter:5.9.0"