mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-14 22:55:06 +01:00
Always expose the front view a little bit even when backdrop... (p2)
Fixing the fact the filter sheet still moved the category recycler view
This commit is contained in:
parent
4652f75717
commit
6706af5bd7
@ -422,7 +422,7 @@ class LibraryController(
|
|||||||
createActionModeIfNeeded()
|
createActionModeIfNeeded()
|
||||||
}
|
}
|
||||||
|
|
||||||
filter_bottom_sheet.onCreate(recycler_layout)
|
filter_bottom_sheet.onCreate(this)
|
||||||
|
|
||||||
filter_bottom_sheet.onGroupClicked = {
|
filter_bottom_sheet.onGroupClicked = {
|
||||||
when (it) {
|
when (it) {
|
||||||
|
@ -2,16 +2,15 @@ package eu.kanade.tachiyomi.ui.library.category
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.mikepenz.fastadapter.FastAdapter
|
import com.mikepenz.fastadapter.FastAdapter
|
||||||
import com.mikepenz.fastadapter.adapters.ItemAdapter
|
import com.mikepenz.fastadapter.adapters.ItemAdapter
|
||||||
import com.mikepenz.fastadapter.listeners.OnBindViewHolderListenerImpl
|
import com.mikepenz.fastadapter.listeners.OnBindViewHolderListenerImpl
|
||||||
import eu.kanade.tachiyomi.R
|
|
||||||
import eu.kanade.tachiyomi.data.database.models.Category
|
import eu.kanade.tachiyomi.data.database.models.Category
|
||||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||||
|
import eu.kanade.tachiyomi.util.view.marginTop
|
||||||
|
|
||||||
class CategoryRecyclerView @JvmOverloads constructor(
|
class CategoryRecyclerView @JvmOverloads constructor(
|
||||||
context: Context,
|
context: Context,
|
||||||
@ -71,10 +70,10 @@ class CategoryRecyclerView @JvmOverloads constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onMeasure(widthSpec: Int, heightSpec: Int) {
|
override fun onMeasure(widthSpec: Int, heightSpec: Int) {
|
||||||
val recyclerView = (parent.parent as ViewGroup).findViewById<View>(R.id.recycler)
|
val recyclerView = (parent as ViewGroup)
|
||||||
val mainView = (parent.parent.parent.parent as ViewGroup)
|
val mainView = (parent.parent.parent.parent as ViewGroup)
|
||||||
val top = recyclerView.paddingTop
|
val top = recyclerView.marginTop
|
||||||
val parent = mainView.measuredHeight - top - 50.dpToPx
|
val parent = mainView.measuredHeight - top - 100.dpToPx
|
||||||
val heightS = if (parent > 0) {
|
val heightS = if (parent > 0) {
|
||||||
MeasureSpec.makeMeasureSpec(parent, MeasureSpec.AT_MOST)
|
MeasureSpec.makeMeasureSpec(parent, MeasureSpec.AT_MOST)
|
||||||
} else {
|
} else {
|
||||||
|
@ -5,7 +5,6 @@ import android.content.res.Configuration
|
|||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
@ -20,7 +19,9 @@ import eu.kanade.tachiyomi.data.database.models.Manga
|
|||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||||
|
import eu.kanade.tachiyomi.ui.library.LibraryController
|
||||||
import eu.kanade.tachiyomi.ui.library.LibraryGroup
|
import eu.kanade.tachiyomi.ui.library.LibraryGroup
|
||||||
|
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||||
import eu.kanade.tachiyomi.util.system.launchUI
|
import eu.kanade.tachiyomi.util.system.launchUI
|
||||||
import eu.kanade.tachiyomi.util.view.collapse
|
import eu.kanade.tachiyomi.util.view.collapse
|
||||||
import eu.kanade.tachiyomi.util.view.gone
|
import eu.kanade.tachiyomi.util.view.gone
|
||||||
@ -31,6 +32,8 @@ import eu.kanade.tachiyomi.util.view.isHidden
|
|||||||
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
|
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
|
||||||
import eu.kanade.tachiyomi.util.view.visibleIf
|
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||||
import kotlinx.android.synthetic.main.filter_bottom_sheet.view.*
|
import kotlinx.android.synthetic.main.filter_bottom_sheet.view.*
|
||||||
|
import kotlinx.android.synthetic.main.library_grid_recycler.*
|
||||||
|
import kotlinx.android.synthetic.main.library_list_controller.*
|
||||||
import kotlinx.coroutines.CoroutineStart
|
import kotlinx.coroutines.CoroutineStart
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
@ -90,15 +93,17 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
|||||||
|
|
||||||
var onGroupClicked: (Int) -> Unit = { _ -> }
|
var onGroupClicked: (Int) -> Unit = { _ -> }
|
||||||
var pager: View? = null
|
var pager: View? = null
|
||||||
|
var controller: LibraryController? = null
|
||||||
|
|
||||||
fun onCreate(pagerView: View) {
|
fun onCreate(controller: LibraryController) {
|
||||||
clearButton = clear_button
|
clearButton = clear_button
|
||||||
filter_layout.removeView(clearButton)
|
filter_layout.removeView(clearButton)
|
||||||
sheetBehavior = BottomSheetBehavior.from(this)
|
sheetBehavior = BottomSheetBehavior.from(this)
|
||||||
sheetBehavior?.isHideable = true
|
sheetBehavior?.isHideable = true
|
||||||
pager = pagerView
|
this.controller = controller
|
||||||
val shadow2: View = (pagerView.parent.parent as ViewGroup).findViewById(R.id.shadow2)
|
pager = controller.recycler
|
||||||
val shadow: View = (pagerView.parent.parent as ViewGroup).findViewById(R.id.shadow)
|
val shadow2: View = controller.shadow2
|
||||||
|
val shadow: View = controller.shadow
|
||||||
sheetBehavior?.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
sheetBehavior?.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
||||||
override fun onSlide(bottomSheet: View, progress: Float) {
|
override fun onSlide(bottomSheet: View, progress: Float) {
|
||||||
pill.alpha = (1 - max(0f, progress)) * 0.25f
|
pill.alpha = (1 - max(0f, progress)) * 0.25f
|
||||||
@ -173,10 +178,10 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun stateChanged(state: Int) {
|
private fun stateChanged(state: Int) {
|
||||||
val shadow = ((pager?.parent as? ViewGroup)?.findViewById(R.id.shadow) as? View)
|
val shadow = controller?.shadow ?: return
|
||||||
if (state == BottomSheetBehavior.STATE_COLLAPSED) {
|
if (state == BottomSheetBehavior.STATE_COLLAPSED) {
|
||||||
shadow?.alpha = 1f
|
shadow.alpha = 1f
|
||||||
pager?.updatePaddingRelative(bottom = sheetBehavior?.peekHeight ?: 0)
|
pager?.updatePaddingRelative(bottom = sheetBehavior?.peekHeight ?: 0 + 10.dpToPx)
|
||||||
}
|
}
|
||||||
if (state == BottomSheetBehavior.STATE_EXPANDED) {
|
if (state == BottomSheetBehavior.STATE_EXPANDED) {
|
||||||
pill.alpha = 0f
|
pill.alpha = 0f
|
||||||
@ -184,8 +189,8 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
|||||||
if (state == BottomSheetBehavior.STATE_HIDDEN) {
|
if (state == BottomSheetBehavior.STATE_HIDDEN) {
|
||||||
onGroupClicked(ACTION_HIDE_FILTER_TIP)
|
onGroupClicked(ACTION_HIDE_FILTER_TIP)
|
||||||
reSortViews()
|
reSortViews()
|
||||||
shadow?.alpha = 0f
|
shadow.alpha = 0f
|
||||||
pager?.updatePaddingRelative(bottom = 0)
|
pager?.updatePaddingRelative(bottom = 10.dpToPx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,9 +207,8 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
|||||||
?: if (sheetBehavior.isExpanded()) 1f else 0f
|
?: if (sheetBehavior.isExpanded()) 1f else 0f
|
||||||
val percent = (trueProgress * 100).roundToInt()
|
val percent = (trueProgress * 100).roundToInt()
|
||||||
val value = (percent * (maxHeight - minHeight) / 100) + minHeight
|
val value = (percent * (maxHeight - minHeight) / 100) + minHeight
|
||||||
val height = context.resources.getDimensionPixelSize(R.dimen.rounder_radius)
|
|
||||||
if (trueProgress >= 0)
|
if (trueProgress >= 0)
|
||||||
pager?.updatePaddingRelative(bottom = value - height)
|
pager?.updatePaddingRelative(bottom = value + 10.dpToPx)
|
||||||
else
|
else
|
||||||
pager?.updatePaddingRelative(bottom = (minHeight * (1 + trueProgress)).toInt())
|
pager?.updatePaddingRelative(bottom = (minHeight * (1 + trueProgress)).toInt())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user