Binding used in controller extensions

This commit is contained in:
Jays2Kings 2021-03-29 20:20:55 -04:00
parent 3c2bd8c661
commit 5845912aaf

View File

@ -32,7 +32,6 @@ import eu.kanade.tachiyomi.ui.manga.MangaDetailsController
import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.getResourceColor
import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.system.toast
import kotlinx.android.synthetic.main.main_activity.*
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import kotlin.math.abs import kotlin.math.abs
@ -116,19 +115,19 @@ fun Controller.scrollViewWith(
activityBinding?.appBar?.y = 0f activityBinding?.appBar?.y = 0f
val attrsArray = intArrayOf(R.attr.actionBarSize) val attrsArray = intArrayOf(R.attr.actionBarSize)
val array = recycler.context.obtainStyledAttributes(attrsArray) val array = recycler.context.obtainStyledAttributes(attrsArray)
var appBarHeight = if (activity!!.toolbar.height > 0) activity!!.toolbar.height var appBarHeight = if (activityBinding!!.toolbar.height > 0) activityBinding!!.toolbar.height
else array.getDimensionPixelSize(0, 0) else array.getDimensionPixelSize(0, 0)
array.recycle() array.recycle()
swipeRefreshLayout?.setDistanceToTriggerSync(150.dpToPx) swipeRefreshLayout?.setDistanceToTriggerSync(150.dpToPx)
activity!!.toolbar.post { activityBinding!!.toolbar.post {
if (activity!!.toolbar.height > 0) { if (activityBinding!!.toolbar.height > 0) {
appBarHeight = activity!!.toolbar.height appBarHeight = activityBinding!!.toolbar.height
recycler.requestApplyInsets() recycler.requestApplyInsets()
} }
} }
val updateViewsNearBottom = { val updateViewsNearBottom = {
onBottomNavUpdate?.invoke() onBottomNavUpdate?.invoke()
activity?.bottom_view?.translationY = activity?.bottom_nav?.translationY ?: 0f activityBinding?.bottomView?.translationY = activityBinding?.bottomNav?.translationY ?: 0f
} }
recycler.post { recycler.post {
updateViewsNearBottom() updateViewsNearBottom()
@ -139,7 +138,7 @@ fun Controller.scrollViewWith(
var fakeBottomNavView: View? = null var fakeBottomNavView: View? = null
if (!customPadding) { if (!customPadding) {
recycler.updatePaddingRelative( recycler.updatePaddingRelative(
top = activity!!.toolbar.y.toInt() + appBarHeight top = activityBinding!!.toolbar.y.toInt() + appBarHeight
) )
} }
recycler.doOnApplyWindowInsets { view, insets, _ -> recycler.doOnApplyWindowInsets { view, insets, _ ->
@ -198,8 +197,8 @@ fun Controller.scrollViewWith(
fakeBottomNavView = null fakeBottomNavView = null
} }
lastY = 0f lastY = 0f
activity!!.toolbar.tag = randomTag activityBinding!!.toolbar.tag = randomTag
activity!!.toolbar.setOnClickListener { activityBinding!!.toolbar.setOnClickListener {
if ((this@scrollViewWith as? BottomSheetController)?.sheetIsExpanded() != true) { if ((this@scrollViewWith as? BottomSheetController)?.sheetIsExpanded() != true) {
recycler.scrollToPosition(0) recycler.scrollToPosition(0)
} else { } else {
@ -223,7 +222,7 @@ fun Controller.scrollViewWith(
} }
if (!customPadding && router.backstackSize == 2) { if (!customPadding && router.backstackSize == 2) {
val parent = recycler.parent as? ViewGroup ?: return val parent = recycler.parent as? ViewGroup ?: return
val bottomNav = activity!!.bottom_nav ?: return val bottomNav = activityBinding?.bottomNav ?: return
val v = View(activity) val v = View(activity)
fakeBottomNavView = v fakeBottomNavView = v
parent.addView(v, parent.indexOfChild(recycler) + 1) parent.addView(v, parent.indexOfChild(recycler) + 1)
@ -236,7 +235,7 @@ fun Controller.scrollViewWith(
v.layoutParams = params v.layoutParams = params
} }
elevationAnim?.cancel() elevationAnim?.cancel()
if (activity!!.toolbar.tag == randomTag) activity!!.toolbar.setOnClickListener(null) if (activityBinding!!.toolbar.tag == randomTag) activityBinding!!.toolbar.setOnClickListener(null)
} }
} }
} }
@ -259,7 +258,7 @@ fun Controller.scrollViewWith(
.setDuration(shortAnimationDuration.toLong()) .setDuration(shortAnimationDuration.toLong())
.start() .start()
if (router.backstackSize == 1 && isInView) { if (router.backstackSize == 1 && isInView) {
activity!!.bottom_nav?.let { activityBinding!!.bottomNav.let {
val animator = it.animate()?.translationY(0f) val animator = it.animate()?.translationY(0f)
?.setDuration(shortAnimationDuration.toLong()) ?.setDuration(shortAnimationDuration.toLong())
animator?.setUpdateListener { animator?.setUpdateListener {
@ -277,8 +276,8 @@ fun Controller.scrollViewWith(
-activityBinding!!.appBar.height.toFloat(), -activityBinding!!.appBar.height.toFloat(),
0f 0f
) )
val tabBar = activity!!.bottom_nav val tabBar = activityBinding!!.bottomNav
if (tabBar != null && tabBar.isVisible() && isInView) { if (tabBar.isVisible() && isInView) {
if (preferences.hideBottomNavOnScroll().get()) { if (preferences.hideBottomNavOnScroll().get()) {
tabBar.translationY += dy tabBar.translationY += dy
tabBar.translationY = MathUtils.clamp( tabBar.translationY = MathUtils.clamp(
@ -289,7 +288,7 @@ fun Controller.scrollViewWith(
updateViewsNearBottom() updateViewsNearBottom()
} else if (tabBar.translationY != 0f) { } else if (tabBar.translationY != 0f) {
tabBar.translationY = 0f tabBar.translationY = 0f
activity!!.bottom_view?.translationY = 0f activityBinding!!.bottomView?.translationY = 0f
} }
} }
if (!elevate && ( if (!elevate && (
@ -320,19 +319,19 @@ fun Controller.scrollViewWith(
android.R.integer.config_shortAnimTime android.R.integer.config_shortAnimTime
) ?: 0 ) ?: 0
val closerToTop = abs(activityBinding!!.appBar.y) > halfWay val closerToTop = abs(activityBinding!!.appBar.y) > halfWay
val halfWayBottom = activity!!.bottom_nav.height.toFloat() / 2 val halfWayBottom = activityBinding!!.bottomNav.height.toFloat() / 2
val closerToBottom = activity!!.bottom_nav.translationY > halfWayBottom val closerToBottom = activityBinding!!.bottomNav.translationY > halfWayBottom
val atTop = !recycler.canScrollVertically(-1) val atTop = !recycler.canScrollVertically(-1)
val closerToEdge = val closerToEdge =
if (activity!!.bottom_nav.isVisible && if (activityBinding!!.bottomNav.isVisible &&
preferences.hideBottomNavOnScroll().get() preferences.hideBottomNavOnScroll().get()
) closerToBottom else closerToTop ) closerToBottom else closerToTop
lastY = lastY =
if (closerToEdge && !atTop) (-activityBinding!!.appBar.height.toFloat()) else 0f if (closerToEdge && !atTop) (-activityBinding!!.appBar.height.toFloat()) else 0f
activityBinding!!.appBar.animate().y(lastY) activityBinding!!.appBar.animate().y(lastY)
.setDuration(shortAnimationDuration.toLong()).start() .setDuration(shortAnimationDuration.toLong()).start()
if (activity!!.bottom_nav.isVisible && isInView && preferences.hideBottomNavOnScroll().get()) { if (activityBinding!!.bottomNav.isVisible && isInView && preferences.hideBottomNavOnScroll().get()) {
activity!!.bottom_nav?.let { activityBinding!!.bottomNav?.let {
val lastBottomY = val lastBottomY =
if (closerToEdge && !atTop) it.height.toFloat() else 0f if (closerToEdge && !atTop) it.height.toFloat() else 0f
val animator = it.animate()?.translationY(lastBottomY) val animator = it.animate()?.translationY(lastBottomY)