Lift toolbar on scroll in extension details and manga controllers

(cherry picked from commit 748a7201991cb42fa7d9fef0d229a331dcc4039a)
This commit is contained in:
arkon 2020-08-10 12:04:51 -04:00 committed by Jobobby04
parent 19055e1699
commit b4b4497e7e
5 changed files with 20 additions and 7 deletions

View File

@ -0,0 +1,3 @@
package eu.kanade.tachiyomi.ui.base.controller
interface ToolbarLiftOnScrollController

View File

@ -34,8 +34,8 @@ import eu.kanade.tachiyomi.source.CatalogueSource
import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.getPreferenceKey
import eu.kanade.tachiyomi.ui.base.controller.NoToolbarElevationController
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
import eu.kanade.tachiyomi.ui.base.controller.ToolbarLiftOnScrollController
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
import eu.kanade.tachiyomi.util.preference.DSL
import eu.kanade.tachiyomi.util.preference.onChange
@ -50,7 +50,7 @@ import uy.kohesive.injekt.injectLazy
@SuppressLint("RestrictedApi")
class ExtensionDetailsController(bundle: Bundle? = null) :
NucleusController<ExtensionDetailControllerBinding, ExtensionDetailsPresenter>(bundle),
NoToolbarElevationController {
ToolbarLiftOnScrollController {
private val preferences: PreferencesHelper by injectLazy()

View File

@ -30,6 +30,7 @@ import eu.kanade.tachiyomi.ui.base.controller.FabController
import eu.kanade.tachiyomi.ui.base.controller.NoToolbarElevationController
import eu.kanade.tachiyomi.ui.base.controller.RootController
import eu.kanade.tachiyomi.ui.base.controller.TabbedController
import eu.kanade.tachiyomi.ui.base.controller.ToolbarLiftOnScrollController
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
import eu.kanade.tachiyomi.ui.browse.BrowseController
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController
@ -411,10 +412,16 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
to.configureFab(binding.rootFab)
}
if (to is NoToolbarElevationController) {
when (to) {
is NoToolbarElevationController -> {
binding.appbar.disableElevation()
} else {
binding.appbar.enableElevation()
}
is ToolbarLiftOnScrollController -> {
binding.appbar.enableElevation(true)
}
else -> {
binding.appbar.enableElevation(false)
}
}
}

View File

@ -43,6 +43,7 @@ import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource.Companion.getLewdSource
import eu.kanade.tachiyomi.ui.base.controller.FabController
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
import eu.kanade.tachiyomi.ui.base.controller.ToolbarLiftOnScrollController
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationController
import eu.kanade.tachiyomi.ui.browse.source.SourceController
@ -96,6 +97,7 @@ import uy.kohesive.injekt.injectLazy
class MangaController :
NucleusController<MangaControllerBinding, MangaPresenter>,
ToolbarLiftOnScrollController,
FabController,
ActionMode.Callback,
FlexibleAdapter.OnItemClickListener,

View File

@ -18,8 +18,9 @@ class ElevationAppBarLayout @JvmOverloads constructor(
origStateAnimator = stateListAnimator
}
fun enableElevation() {
fun enableElevation(liftOnScroll: Boolean) {
stateListAnimator = origStateAnimator
isLiftOnScroll = liftOnScroll
}
fun disableElevation() {