|
|
@@ -10,8 +10,10 @@ import android.os.Bundle
|
|
|
import android.view.View
|
|
|
import androidx.appcompat.widget.PopupMenu
|
|
|
import androidx.appcompat.widget.SearchView
|
|
|
+import androidx.core.graphics.ColorUtils
|
|
|
import androidx.fragment.app.Fragment
|
|
|
import androidx.viewpager2.adapter.FragmentStateAdapter
|
|
|
+import com.google.android.material.appbar.AppBarLayout
|
|
|
import com.google.android.material.tabs.TabLayout
|
|
|
import com.google.android.material.tabs.TabLayoutMediator
|
|
|
import io.legado.app.R
|
|
|
@@ -22,6 +24,7 @@ import io.legado.app.databinding.FragmentBookshelf1Binding
|
|
|
import io.legado.app.help.config.AppConfig
|
|
|
import io.legado.app.ui.book.group.GroupEditDialog
|
|
|
import io.legado.app.ui.book.search.SearchActivity
|
|
|
+import io.legado.app.ui.config.themeConfig.ThemeConfig
|
|
|
import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment
|
|
|
import io.legado.app.utils.showDialogFragment
|
|
|
import io.legado.app.utils.themeColor
|
|
|
@@ -49,6 +52,7 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1)
|
|
|
override val groupId: Long get() = selectedGroup?.groupId ?: 0
|
|
|
|
|
|
private lateinit var adapter: TabFragmentPageAdapter
|
|
|
+ private var tabFadeListener: AppBarLayout.OnOffsetChangedListener? = null
|
|
|
|
|
|
override val books: List<Book>
|
|
|
get() {
|
|
|
@@ -87,17 +91,20 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1)
|
|
|
}
|
|
|
|
|
|
private fun updateTabFadeEffect() {
|
|
|
- binding.titleBar.addOnOffsetChangedListener({ appBarLayout, verticalOffset ->
|
|
|
- if (-verticalOffset >= appBarLayout.totalScrollRange) {
|
|
|
- val drawable = binding.tabRightFade.background as? GradientDrawable
|
|
|
- drawable?.colors = intArrayOf(Color.TRANSPARENT,
|
|
|
- requireContext().themeColor(com.google.android.material.R.attr.colorSurfaceContainer))
|
|
|
+ tabFadeListener?.let { binding.titleBar.removeOnOffsetChangedListener(it) }
|
|
|
+ val listener = AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset ->
|
|
|
+ val drawable = binding.tabRightFade.background as? GradientDrawable
|
|
|
+ val opacity = if (ThemeConfig.enableBlur) ThemeConfig.containerOpacity / 100f else 1f
|
|
|
+ val baseColor = if (-verticalOffset >= appBarLayout.totalScrollRange) {
|
|
|
+ requireContext().themeColor(com.google.android.material.R.attr.colorSurfaceContainer)
|
|
|
} else {
|
|
|
- val drawable = binding.tabRightFade.background as? GradientDrawable
|
|
|
- drawable?.colors = intArrayOf(Color.TRANSPARENT,
|
|
|
- requireContext().themeColor(com.google.android.material.R.attr.colorSurface))
|
|
|
+ requireContext().themeColor(com.google.android.material.R.attr.colorSurface)
|
|
|
}
|
|
|
- })
|
|
|
+ val newAlpha = (Color.alpha(baseColor) * opacity).toInt()
|
|
|
+ drawable?.colors = intArrayOf(Color.TRANSPARENT, ColorUtils.setAlphaComponent(baseColor, newAlpha))
|
|
|
+ }
|
|
|
+ tabFadeListener = listener
|
|
|
+ binding.titleBar.addOnOffsetChangedListener(listener)
|
|
|
}
|
|
|
|
|
|
private fun showTabSelectionMenu() {
|