Improve performance on first load of manga details

This commit is contained in:
Jays2Kings 2023-10-16 19:59:28 -07:00
parent 34301e7e6d
commit a6c49f0970

View file

@ -198,6 +198,7 @@ class MangaDetailsController :
private var editMangaDialog: EditMangaDialog? = null private var editMangaDialog: EditMangaDialog? = null
var refreshTracker: Int? = null var refreshTracker: Int? = null
private var chapterPopupMenu: Pair<Int, PopupMenu>? = null private var chapterPopupMenu: Pair<Int, PopupMenu>? = null
private var isPushing = true
// Tablet Layout // Tablet Layout
var isTablet = false var isTablet = false
@ -616,7 +617,7 @@ class MangaDetailsController :
//region Lifecycle methods //region Lifecycle methods
override fun onActivityResumed(activity: Activity) { override fun onActivityResumed(activity: Activity) {
super.onActivityResumed(activity) super.onActivityResumed(activity)
if (adapter != null) { if (adapter != null && !isPushing) {
presenter.isLockedFromSearch = presenter.isLockedFromSearch =
shouldLockIfNeeded && SecureActivityDelegate.shouldBeLocked() shouldLockIfNeeded && SecureActivityDelegate.shouldBeLocked()
presenter.headerItem.isLocked = presenter.isLockedFromSearch presenter.headerItem.isLocked = presenter.isLockedFromSearch
@ -658,6 +659,7 @@ class MangaDetailsController :
override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) { override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) {
super.onChangeStarted(handler, type) super.onChangeStarted(handler, type)
isPushing = true
if (type.isEnter) { if (type.isEnter) {
activityBinding?.appBar?.y = 0f activityBinding?.appBar?.y = 0f
activityBinding?.appBar?.updateAppBarAfterY(binding.recycler) activityBinding?.appBar?.updateAppBarAfterY(binding.recycler)
@ -691,6 +693,7 @@ class MangaDetailsController :
type: ControllerChangeType, type: ControllerChangeType,
) { ) {
super.onChangeEnded(changeHandler, type) super.onChangeEnded(changeHandler, type)
isPushing = false
if (type == ControllerChangeType.PUSH_ENTER) { if (type == ControllerChangeType.PUSH_ENTER) {
binding.swipeRefresh.isRefreshing = presenter.isLoading binding.swipeRefresh.isRefreshing = presenter.isLoading
} }