mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 06:31:52 +01:00
Bump dependencies
This commit is contained in:
parent
db93d1da76
commit
f90e1b935c
@ -14,7 +14,6 @@ import androidx.compose.material3.ButtonElevation
|
|||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.ProvideTextStyle
|
import androidx.compose.material3.ProvideTextStyle
|
||||||
import androidx.compose.material3.Shapes
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
@ -31,7 +30,7 @@ fun TextButton(
|
|||||||
enabled: Boolean = true,
|
enabled: Boolean = true,
|
||||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||||
elevation: ButtonElevation? = null,
|
elevation: ButtonElevation? = null,
|
||||||
shape: Shape = Shapes.Full,
|
shape: Shape = ButtonDefaults.textShape,
|
||||||
border: BorderStroke? = null,
|
border: BorderStroke? = null,
|
||||||
colors: ButtonColors = ButtonDefaults.textButtonColors(),
|
colors: ButtonColors = ButtonDefaults.textButtonColors(),
|
||||||
contentPadding: PaddingValues = ButtonDefaults.TextButtonContentPadding,
|
contentPadding: PaddingValues = ButtonDefaults.TextButtonContentPadding,
|
||||||
@ -59,7 +58,7 @@ fun Button(
|
|||||||
enabled: Boolean = true,
|
enabled: Boolean = true,
|
||||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||||
elevation: ButtonElevation? = ButtonDefaults.buttonElevation(),
|
elevation: ButtonElevation? = ButtonDefaults.buttonElevation(),
|
||||||
shape: Shape = Shapes.Full,
|
shape: Shape = ButtonDefaults.textShape,
|
||||||
border: BorderStroke? = null,
|
border: BorderStroke? = null,
|
||||||
colors: ButtonColors = ButtonDefaults.buttonColors(),
|
colors: ButtonColors = ButtonDefaults.buttonColors(),
|
||||||
contentPadding: PaddingValues = ButtonDefaults.ContentPadding,
|
contentPadding: PaddingValues = ButtonDefaults.ContentPadding,
|
||||||
|
@ -11,7 +11,6 @@ import androidx.compose.material3.ColorScheme
|
|||||||
import androidx.compose.material3.LocalAbsoluteTonalElevation
|
import androidx.compose.material3.LocalAbsoluteTonalElevation
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Shapes
|
|
||||||
import androidx.compose.material3.contentColorFor
|
import androidx.compose.material3.contentColorFor
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
@ -22,6 +21,7 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.draw.shadow
|
import androidx.compose.ui.draw.shadow
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.graphics.RectangleShape
|
||||||
import androidx.compose.ui.graphics.Shape
|
import androidx.compose.ui.graphics.Shape
|
||||||
import androidx.compose.ui.graphics.compositeOver
|
import androidx.compose.ui.graphics.compositeOver
|
||||||
import androidx.compose.ui.semantics.Role
|
import androidx.compose.ui.semantics.Role
|
||||||
@ -37,7 +37,7 @@ fun Surface(
|
|||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
onLongClick: (() -> Unit)? = null,
|
onLongClick: (() -> Unit)? = null,
|
||||||
enabled: Boolean = true,
|
enabled: Boolean = true,
|
||||||
shape: Shape = Shapes.None,
|
shape: Shape = RectangleShape,
|
||||||
color: Color = MaterialTheme.colorScheme.surface,
|
color: Color = MaterialTheme.colorScheme.surface,
|
||||||
contentColor: Color = contentColorFor(color),
|
contentColor: Color = contentColorFor(color),
|
||||||
tonalElevation: Dp = 0.dp,
|
tonalElevation: Dp = 0.dp,
|
||||||
|
@ -1,158 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2021 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package eu.kanade.presentation.util
|
|
||||||
|
|
||||||
import androidx.compose.animation.core.AnimationState
|
|
||||||
import androidx.compose.animation.core.DecayAnimationSpec
|
|
||||||
import androidx.compose.animation.core.animateDecay
|
|
||||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
|
||||||
import androidx.compose.material3.TopAppBarScrollState
|
|
||||||
import androidx.compose.ui.geometry.Offset
|
|
||||||
import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
|
|
||||||
import androidx.compose.ui.input.nestedscroll.NestedScrollSource
|
|
||||||
import androidx.compose.ui.unit.Velocity
|
|
||||||
import kotlin.math.abs
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A [TopAppBarScrollBehavior] that adjusts its properties to affect the colors and height of a top
|
|
||||||
* app bar.
|
|
||||||
*
|
|
||||||
* A top app bar that is set up with this [TopAppBarScrollBehavior] will immediately collapse when
|
|
||||||
* the nested content is pulled up, and will expand back the collapsed area when the content is
|
|
||||||
* pulled all the way down.
|
|
||||||
*
|
|
||||||
* @param decayAnimationSpec a [DecayAnimationSpec] that will be used by the top app bar motion
|
|
||||||
* when the user flings the content. Preferably, this should match the animation spec used by the
|
|
||||||
* scrollable content. See also [androidx.compose.animation.rememberSplineBasedDecay] for a
|
|
||||||
* default [DecayAnimationSpec] that can be used with this behavior.
|
|
||||||
* @param canScroll a callback used to determine whether scroll events are to be
|
|
||||||
* handled by this [ExitUntilCollapsedScrollBehavior]
|
|
||||||
*/
|
|
||||||
class ExitUntilCollapsedScrollBehavior(
|
|
||||||
override val state: TopAppBarScrollState,
|
|
||||||
val decayAnimationSpec: DecayAnimationSpec<Float>,
|
|
||||||
val canScroll: () -> Boolean = { true },
|
|
||||||
) : TopAppBarScrollBehavior {
|
|
||||||
override val scrollFraction: Float
|
|
||||||
get() = if (state.offsetLimit != 0f) state.offset / state.offsetLimit else 0f
|
|
||||||
override var nestedScrollConnection =
|
|
||||||
object : NestedScrollConnection {
|
|
||||||
override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
|
|
||||||
// Don't intercept if scrolling down.
|
|
||||||
if (!canScroll() || available.y > 0f) return Offset.Zero
|
|
||||||
|
|
||||||
val newOffset = (state.offset + available.y)
|
|
||||||
val coerced =
|
|
||||||
newOffset.coerceIn(minimumValue = state.offsetLimit, maximumValue = 0f)
|
|
||||||
return if (newOffset == coerced) {
|
|
||||||
// Nothing coerced, meaning we're in the middle of top app bar collapse or
|
|
||||||
// expand.
|
|
||||||
state.offset = coerced
|
|
||||||
// Consume only the scroll on the Y axis.
|
|
||||||
available.copy(x = 0f)
|
|
||||||
} else {
|
|
||||||
Offset.Zero
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPostScroll(
|
|
||||||
consumed: Offset,
|
|
||||||
available: Offset,
|
|
||||||
source: NestedScrollSource,
|
|
||||||
): Offset {
|
|
||||||
if (!canScroll()) return Offset.Zero
|
|
||||||
state.contentOffset += consumed.y
|
|
||||||
|
|
||||||
if (available.y < 0f || consumed.y < 0f) {
|
|
||||||
// When scrolling up, just update the state's offset.
|
|
||||||
val oldOffset = state.offset
|
|
||||||
state.offset = (state.offset + consumed.y).coerceIn(
|
|
||||||
minimumValue = state.offsetLimit,
|
|
||||||
maximumValue = 0f,
|
|
||||||
)
|
|
||||||
return Offset(0f, state.offset - oldOffset)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (consumed.y == 0f && available.y > 0) {
|
|
||||||
// Reset the total offset to zero when scrolling all the way down. This will
|
|
||||||
// eliminate some float precision inaccuracies.
|
|
||||||
state.contentOffset = 0f
|
|
||||||
}
|
|
||||||
|
|
||||||
if (available.y > 0f) {
|
|
||||||
// Adjust the offset in case the consumed delta Y is less than what was recorded
|
|
||||||
// as available delta Y in the pre-scroll.
|
|
||||||
val oldOffset = state.offset
|
|
||||||
state.offset = (state.offset + available.y).coerceIn(
|
|
||||||
minimumValue = state.offsetLimit,
|
|
||||||
maximumValue = 0f,
|
|
||||||
)
|
|
||||||
return Offset(0f, state.offset - oldOffset)
|
|
||||||
}
|
|
||||||
return Offset.Zero
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity {
|
|
||||||
val result = super.onPostFling(consumed, available)
|
|
||||||
if ((available.y < 0f && state.contentOffset == 0f) ||
|
|
||||||
(available.y > 0f && state.offset < 0f)
|
|
||||||
) {
|
|
||||||
return result +
|
|
||||||
onTopBarFling(
|
|
||||||
scrollBehavior = this@ExitUntilCollapsedScrollBehavior,
|
|
||||||
initialVelocity = available.y,
|
|
||||||
decayAnimationSpec = decayAnimationSpec,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tachiyomi: Remove snap behavior
|
|
||||||
*/
|
|
||||||
private suspend fun onTopBarFling(
|
|
||||||
scrollBehavior: TopAppBarScrollBehavior,
|
|
||||||
initialVelocity: Float,
|
|
||||||
decayAnimationSpec: DecayAnimationSpec<Float>,
|
|
||||||
): Velocity {
|
|
||||||
if (abs(initialVelocity) > 1f) {
|
|
||||||
var remainingVelocity = initialVelocity
|
|
||||||
var lastValue = 0f
|
|
||||||
AnimationState(
|
|
||||||
initialValue = 0f,
|
|
||||||
initialVelocity = initialVelocity,
|
|
||||||
)
|
|
||||||
.animateDecay(decayAnimationSpec) {
|
|
||||||
val delta = value - lastValue
|
|
||||||
val initialOffset = scrollBehavior.state.offset
|
|
||||||
scrollBehavior.state.offset =
|
|
||||||
(initialOffset + delta).coerceIn(
|
|
||||||
minimumValue = scrollBehavior.state.offsetLimit,
|
|
||||||
maximumValue = 0f,
|
|
||||||
)
|
|
||||||
val consumed = abs(initialOffset - scrollBehavior.state.offset)
|
|
||||||
lastValue = value
|
|
||||||
remainingVelocity = this.velocity
|
|
||||||
// avoid rounding errors and stop if anything is unconsumed
|
|
||||||
if (abs(delta - consumed) > 0.5f) this.cancelAnimation()
|
|
||||||
}
|
|
||||||
return Velocity(0f, remainingVelocity)
|
|
||||||
}
|
|
||||||
return Velocity.Zero
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
[versions]
|
[versions]
|
||||||
agp_version = "7.2.1"
|
agp_version = "7.2.1"
|
||||||
lifecycle_version = "2.5.0"
|
lifecycle_version = "2.5.1"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
annotation = "androidx.annotation:annotation:1.4.0"
|
annotation = "androidx.annotation:annotation:1.4.0"
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
[versions]
|
[versions]
|
||||||
compiler = "1.3.0-beta01"
|
compiler = "1.3.0-rc01"
|
||||||
compose = "1.2.0-rc03"
|
compose = "1.2.0"
|
||||||
accompanist = "0.24.13-rc"
|
accompanist = "0.25.0"
|
||||||
material3 = "1.0.0-alpha14"
|
material3 = "1.0.0-alpha15"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
activity = "androidx.activity:activity-compose:1.6.0-alpha05"
|
activity = "androidx.activity:activity-compose:1.6.0-alpha05"
|
||||||
@ -14,7 +14,7 @@ ui-util = { module = "androidx.compose.ui:ui-util", version.ref = "compose" }
|
|||||||
|
|
||||||
material3-core = { module = "androidx.compose.material3:material3", version.ref = "material3" }
|
material3-core = { module = "androidx.compose.material3:material3", version.ref = "material3" }
|
||||||
material3-windowsizeclass = { module = "androidx.compose.material3:material3-window-size-class", version.ref = "material3" }
|
material3-windowsizeclass = { module = "androidx.compose.material3:material3-window-size-class", version.ref = "material3" }
|
||||||
material3-adapter = "com.google.android.material:compose-theme-adapter-3:1.0.14"
|
material3-adapter = "com.google.android.material:compose-theme-adapter-3:1.0.15"
|
||||||
material-icons = { module = "androidx.compose.material:material-icons-extended", version.ref = "compose" }
|
material-icons = { module = "androidx.compose.material:material-icons-extended", version.ref = "compose" }
|
||||||
|
|
||||||
accompanist-webview = { module = "com.google.accompanist:accompanist-webview", version.ref = "accompanist" }
|
accompanist-webview = { module = "com.google.accompanist:accompanist-webview", version.ref = "accompanist" }
|
||||||
|
Loading…
Reference in New Issue
Block a user