mirror of
https://github.com/revanced/revanced-manager.git
synced 2025-05-11 10:24:26 +02:00
feat: Add sensitivity to isScrollingUp
This commit is contained in:
parent
d987ac6c7a
commit
e3bd8a8b22
@ -176,6 +176,9 @@ fun String.relativeTime(context: Context): String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const val isScrollingUpSensitivity = 10
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun LazyListState.isScrollingUp(): State<Boolean> {
|
fun LazyListState.isScrollingUp(): State<Boolean> {
|
||||||
return remember(this) {
|
return remember(this) {
|
||||||
@ -183,10 +186,16 @@ fun LazyListState.isScrollingUp(): State<Boolean> {
|
|||||||
var previousScrollOffset by mutableIntStateOf(firstVisibleItemScrollOffset)
|
var previousScrollOffset by mutableIntStateOf(firstVisibleItemScrollOffset)
|
||||||
|
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
if (previousIndex != firstVisibleItemIndex) {
|
val indexChanged = previousIndex != firstVisibleItemIndex
|
||||||
|
val offsetChanged =
|
||||||
|
kotlin.math.abs(previousScrollOffset - firstVisibleItemScrollOffset) > isScrollingUpSensitivity
|
||||||
|
|
||||||
|
if (indexChanged) {
|
||||||
previousIndex > firstVisibleItemIndex
|
previousIndex > firstVisibleItemIndex
|
||||||
|
} else if (offsetChanged) {
|
||||||
|
previousScrollOffset > firstVisibleItemScrollOffset
|
||||||
} else {
|
} else {
|
||||||
previousScrollOffset >= firstVisibleItemScrollOffset
|
true
|
||||||
}.also {
|
}.also {
|
||||||
previousIndex = firstVisibleItemIndex
|
previousIndex = firstVisibleItemIndex
|
||||||
previousScrollOffset = firstVisibleItemScrollOffset
|
previousScrollOffset = firstVisibleItemScrollOffset
|
||||||
@ -195,6 +204,7 @@ fun LazyListState.isScrollingUp(): State<Boolean> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: support sensitivity
|
||||||
@Composable
|
@Composable
|
||||||
fun ScrollState.isScrollingUp(): State<Boolean> {
|
fun ScrollState.isScrollingUp(): State<Boolean> {
|
||||||
return remember(this) {
|
return remember(this) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user