mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-14 20:39:59 -05:00
Bump dependencies
This commit is contained in:
parent
db93d1da76
commit
f90e1b935c
5 changed files with 10 additions and 169 deletions
|
@ -14,7 +14,6 @@ import androidx.compose.material3.ButtonElevation
|
|||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.ProvideTextStyle
|
||||
import androidx.compose.material3.Shapes
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.remember
|
||||
|
@ -31,7 +30,7 @@ fun TextButton(
|
|||
enabled: Boolean = true,
|
||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||
elevation: ButtonElevation? = null,
|
||||
shape: Shape = Shapes.Full,
|
||||
shape: Shape = ButtonDefaults.textShape,
|
||||
border: BorderStroke? = null,
|
||||
colors: ButtonColors = ButtonDefaults.textButtonColors(),
|
||||
contentPadding: PaddingValues = ButtonDefaults.TextButtonContentPadding,
|
||||
|
@ -59,7 +58,7 @@ fun Button(
|
|||
enabled: Boolean = true,
|
||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||
elevation: ButtonElevation? = ButtonDefaults.buttonElevation(),
|
||||
shape: Shape = Shapes.Full,
|
||||
shape: Shape = ButtonDefaults.textShape,
|
||||
border: BorderStroke? = null,
|
||||
colors: ButtonColors = ButtonDefaults.buttonColors(),
|
||||
contentPadding: PaddingValues = ButtonDefaults.ContentPadding,
|
||||
|
|
|
@ -11,7 +11,6 @@ import androidx.compose.material3.ColorScheme
|
|||
import androidx.compose.material3.LocalAbsoluteTonalElevation
|
||||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Shapes
|
||||
import androidx.compose.material3.contentColorFor
|
||||
import androidx.compose.runtime.Composable
|
||||
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.shadow
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.RectangleShape
|
||||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.graphics.compositeOver
|
||||
import androidx.compose.ui.semantics.Role
|
||||
|
@ -37,7 +37,7 @@ fun Surface(
|
|||
modifier: Modifier = Modifier,
|
||||
onLongClick: (() -> Unit)? = null,
|
||||
enabled: Boolean = true,
|
||||
shape: Shape = Shapes.None,
|
||||
shape: Shape = RectangleShape,
|
||||
color: Color = MaterialTheme.colorScheme.surface,
|
||||
contentColor: Color = contentColorFor(color),
|
||||
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]
|
||||
agp_version = "7.2.1"
|
||||
lifecycle_version = "2.5.0"
|
||||
lifecycle_version = "2.5.1"
|
||||
|
||||
[libraries]
|
||||
annotation = "androidx.annotation:annotation:1.4.0"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
[versions]
|
||||
compiler = "1.3.0-beta01"
|
||||
compose = "1.2.0-rc03"
|
||||
accompanist = "0.24.13-rc"
|
||||
material3 = "1.0.0-alpha14"
|
||||
compiler = "1.3.0-rc01"
|
||||
compose = "1.2.0"
|
||||
accompanist = "0.25.0"
|
||||
material3 = "1.0.0-alpha15"
|
||||
|
||||
[libraries]
|
||||
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-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" }
|
||||
|
||||
accompanist-webview = { module = "com.google.accompanist:accompanist-webview", version.ref = "accompanist" }
|
||||
|
|
Loading…
Reference in a new issue