Fix download bottom sheet

This commit is contained in:
Jays2Kings 2021-03-24 02:05:14 -04:00
parent 8e9f0537a4
commit 579db13217

View File

@ -37,8 +37,10 @@ import eu.kanade.tachiyomi.ui.recent_updates.RecentChaptersController
import eu.kanade.tachiyomi.ui.recently_read.RecentlyReadController
import eu.kanade.tachiyomi.ui.recently_read.RemoveHistoryDialog
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.spToPx
import eu.kanade.tachiyomi.util.system.toast
import eu.kanade.tachiyomi.util.view.expand
import eu.kanade.tachiyomi.util.view.isCollapsed
import eu.kanade.tachiyomi.util.view.isExpanded
import eu.kanade.tachiyomi.util.view.requestPermissionsSafe
import eu.kanade.tachiyomi.util.view.scrollViewWith
@ -49,8 +51,15 @@ import eu.kanade.tachiyomi.util.view.updateLayoutParams
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
import eu.kanade.tachiyomi.util.view.withFadeTransaction
import kotlinx.android.synthetic.main.download_bottom_sheet.*
import kotlinx.android.synthetic.main.download_bottom_sheet.sheet_layout
import kotlinx.android.synthetic.main.download_bottom_sheet.view.*
import kotlinx.android.synthetic.main.extensions_bottom_sheet.*
import kotlinx.android.synthetic.main.main_activity.*
import kotlinx.android.synthetic.main.recents_controller.*
import kotlinx.android.synthetic.main.recents_controller.recycler
import kotlinx.android.synthetic.main.recents_controller.shadow
import kotlinx.android.synthetic.main.recents_controller.shadow2
import kotlinx.android.synthetic.main.source_controller.*
import kotlin.math.abs
import kotlin.math.max
@ -136,6 +145,17 @@ class RecentsController(bundle: Bundle? = null) :
adapter.addScrollableHeader(presenter.generalHeader)
}
}
recycler?.post {
setBottomPadding()
}
recycler.addOnScrollListener(
object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
setBottomPadding()
}
}
)
dl_bottom_sheet.onCreate(this)
@ -217,6 +237,22 @@ class RecentsController(bundle: Bundle? = null) :
requestPermissionsSafe(arrayOf(WRITE_EXTERNAL_STORAGE), 301)
}
fun setBottomPadding() {
val bottomBar = activity?.bottom_nav ?: return
dl_bottom_sheet ?: return
val pad = bottomBar.translationY - bottomBar.height
val padding = max(
(-pad).toInt(),
if (dl_bottom_sheet.sheetBehavior.isExpanded()) 0 else
view?.rootWindowInsets?.systemWindowInsetBottom ?: 0
)
shadow2.translationY = pad
dl_bottom_sheet.sheetBehavior?.peekHeight = 48.spToPx + padding
dl_bottom_sheet.fast_scroller.updateLayoutParams<ViewGroup.MarginLayoutParams> {
bottomMargin = -pad.toInt()
}
}
fun setRefreshing(refresh: Boolean) {
swipe_refresh?.isRefreshing = refresh
}
@ -437,6 +473,12 @@ class RecentsController(bundle: Bundle? = null) :
if (type == ControllerChangeType.POP_EXIT) presenter.onDestroy()
snack?.dismiss()
}
setBottomPadding()
}
override fun onChangeEnded(handler: ControllerChangeHandler, type: ControllerChangeType ) {
super.onChangeEnded(handler, type)
if (type == ControllerChangeType.POP_ENTER) setBottomPadding()
}
fun hasQueue() = presenter.downloadManager.hasQueue()