diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/util/FadingAppbarHelper.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/util/FadingAppbarHelper.kt new file mode 100644 index 000000000..dde4f3cb3 --- /dev/null +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/util/FadingAppbarHelper.kt @@ -0,0 +1,22 @@ +package org.koitharu.kotatsu.core.ui.util + +import android.view.View +import com.google.android.material.appbar.AppBarLayout + +class FadingAppbarHelper( + private val target: View +) : AppBarLayout.OnOffsetChangedListener { + + fun setup(appBarLayout: AppBarLayout) { + appBarLayout.addOnOffsetChangedListener(this) + } + + override fun onOffsetChanged(appBarLayout: AppBarLayout?, verticalOffset: Int) { + val scrollRange = appBarLayout?.totalScrollRange + if (scrollRange == null || scrollRange == 0) { + return + } + + target.alpha = 1f + verticalOffset / (scrollRange / 2f) + } +} diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt index a0fb6c91d..de84d0d0c 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -42,6 +42,7 @@ import org.koitharu.kotatsu.core.exceptions.resolve.SnackbarErrorObserver import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.core.prefs.NavItem import org.koitharu.kotatsu.core.ui.BaseActivity +import org.koitharu.kotatsu.core.ui.util.FadingAppbarHelper import org.koitharu.kotatsu.core.ui.util.MenuInvalidator import org.koitharu.kotatsu.core.ui.util.OptionsMenuBadgeHelper import org.koitharu.kotatsu.core.ui.widgets.SlidingBottomNavigationView @@ -105,6 +106,7 @@ class MainActivity : BaseActivity(), AppBarOwner, BottomNav viewBinding.fab?.setOnClickListener(this) viewBinding.navRail?.headerView?.setOnClickListener(this) + FadingAppbarHelper(viewBinding.toolbarCard).setup(viewBinding.appbar) navigationDelegate = MainNavigationDelegate( navBar = checkNotNull(bottomNav ?: viewBinding.navRail), @@ -376,9 +378,6 @@ class MainActivity : BaseActivity(), AppBarOwner, BottomNav viewBinding.toolbarCard.updateLayoutParams { scrollFlags = appBarScrollFlags } - viewBinding.insetsHolder.updateLayoutParams { - scrollFlags = appBarScrollFlags - } viewBinding.toolbarCard.background = if (isOpened) { null } else { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogActivity.kt index a99cccbeb..2c41e1c11 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogActivity.kt @@ -18,6 +18,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.model.titleResId import org.koitharu.kotatsu.core.ui.BaseActivity import org.koitharu.kotatsu.core.ui.list.OnListItemClickListener +import org.koitharu.kotatsu.core.ui.util.FadingAppbarHelper import org.koitharu.kotatsu.core.ui.util.ReversibleActionObserver import org.koitharu.kotatsu.core.ui.widgets.ChipsView import org.koitharu.kotatsu.core.ui.widgets.ChipsView.ChipModel @@ -57,6 +58,7 @@ class SourcesCatalogActivity : BaseActivity(), adapter = sourcesAdapter } viewBinding.chipsFilter.onChipClickListener = this + FadingAppbarHelper(viewBinding.toolbar).setup(appBar) viewModel.content.observe(this, sourcesAdapter) viewModel.onActionDone.observeEvent( this, diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogMenuProvider.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogMenuProvider.kt index 355d7a831..c7853f060 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogMenuProvider.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/catalog/SourcesCatalogMenuProvider.kt @@ -30,7 +30,7 @@ class SourcesCatalogMenuProvider( override fun onMenuItemSelected(menuItem: MenuItem): Boolean = false override fun onMenuItemActionExpand(item: MenuItem): Boolean { - (activity as? AppBarOwner)?.appBar?.setExpanded(false, true) + (activity as? AppBarOwner)?.appBar?.setExpanded(true, true) return expandListener.onMenuItemActionExpand(item) } diff --git a/app/src/main/res/layout-w600dp-land/activity_main.xml b/app/src/main/res/layout-w600dp-land/activity_main.xml index c83309bb4..8b40ba5e5 100644 --- a/app/src/main/res/layout-w600dp-land/activity_main.xml +++ b/app/src/main/res/layout-w600dp-land/activity_main.xml @@ -39,13 +39,6 @@ android:stateListAnimator="@null" app:liftOnScroll="false"> - - - -