Compare commits

3 Commits
Author SHA1 Message Date
nvrl 67cf3044f1 fix(android): keep the accent button's width and corners
Moving the gradient onto a row inside the button lost both: the button's
own row hands its children no minimum size, so a fillMaxWidth button
painted the ramp only behind its label, and with square corners.

The gradient goes back on the button, and the 48dp touch-target padding
is taken by a box around it instead, with the button inside told not to
add its own. The primary button now matches the other buttons' 40dp
container at every width. The screenshots are re-recorded for it.
2026-10-04 17:14:11 +02:00
nvrl 66be35c3d4 chore(version): bump to 1.1.2
Patch. The only change since 1.1.1 is on Android: the primary button on the
library hero no longer draws taller than the button beside it. The catalog
schema and on-disk data are unchanged from 1.1.1.
2026-10-04 16:55:38 +02:00
nvrl 046cfe62b8 fix(android): paint the accent button's gradient inside its container
The gradient sat on the outer modifier, which Material pads out to the
48dp minimum touch target, so the primary button drew 8dp taller than
the 40dp tonal button beside it on the library hero.
2026-10-04 16:45:25 +02:00
10 changed files with 39 additions and 20 deletions

No files matched your search

Generated
+7 -7
View File
@@ -4359,7 +4359,7 @@ dependencies = [
[[package]]
name = "pstr-android"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"android_logger",
"jni 0.21.1",
@@ -4378,7 +4378,7 @@ dependencies = [
[[package]]
name = "pstr-app"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"anyhow",
"chrono",
@@ -4409,7 +4409,7 @@ dependencies = [
[[package]]
name = "pstr-cli"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"anyhow",
"clap",
@@ -4427,7 +4427,7 @@ dependencies = [
[[package]]
name = "pstr-core"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"directories",
"futures",
@@ -4445,7 +4445,7 @@ dependencies = [
[[package]]
name = "pstr-meta"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"pstr-core",
"reqwest",
@@ -4458,7 +4458,7 @@ dependencies = [
[[package]]
name = "pstr-player"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"async-trait",
"libloading",
@@ -4473,7 +4473,7 @@ dependencies = [
[[package]]
name = "pstr-stream"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"async-trait",
"futures",
+1 -1
View File
@@ -11,7 +11,7 @@ members = [
]
[workspace.package]
version = "1.1.1"
version = "1.1.2"
edition = "2024"
license = "MIT"
repository = "https://github.com/narrrl/proton-stream"
@@ -2,6 +2,7 @@ package io.narl.protonstream.ui.theme
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
@@ -9,6 +10,7 @@ import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FilledTonalButton
import androidx.compose.material3.LocalMinimumInteractiveComponentSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.NavigationBarItemDefaults
import androidx.compose.material3.NavigationDrawerItemDefaults
@@ -18,14 +20,18 @@ import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteDefaul
import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors
import androidx.compose.material3.SliderState
import androidx.compose.material3.TextButton
import androidx.compose.material3.minimumInteractiveComponentSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.CornerRadius
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
/**
@@ -68,17 +74,30 @@ internal fun AccentButton(
content: @Composable RowScope.() -> Unit,
) {
val shape = MaterialTheme.shapes.small
Button(
onClick = onClick,
// Only while it is live: a disabled button keeps Material's flat
// disabled container, because a greyed control that still wears the
// one strong colour in the window reads as pressable.
modifier = if (enabled) modifier.background(accentBrush(), shape) else modifier,
enabled = enabled,
shape = shape,
colors = ButtonDefaults.buttonColors(containerColor = Color.Transparent),
content = content,
)
// The button pads itself out to the 48dp minimum touch target, and a
// background on its modifier fills that whole target — 8dp taller than
// the 40dp container every other button draws. So the padding is taken
// here, outside the ramp, and the button inside is told not to add its
// own. The box hands its size down, so a `fillMaxWidth` still reaches it.
Box(
modifier.minimumInteractiveComponentSize(),
contentAlignment = Alignment.Center,
propagateMinConstraints = true,
) {
CompositionLocalProvider(LocalMinimumInteractiveComponentSize provides Dp.Unspecified) {
Button(
onClick = onClick,
// Only while it is live: a disabled button keeps Material's flat
// disabled container, because a greyed control that still wears the
// one strong colour in the window reads as pressable.
modifier = if (enabled) Modifier.background(accentBrush(), shape) else Modifier,
enabled = enabled,
shape = shape,
colors = ButtonDefaults.buttonColors(containerColor = Color.Transparent),
content = content,
)
}
}
}
@Composable
Binary file not shown.

Before

Width:  |  Height:  |  Size: 813 KiB

After

Width:  |  Height:  |  Size: 813 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 769 KiB

After

Width:  |  Height:  |  Size: 768 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 807 KiB

After

Width:  |  Height:  |  Size: 806 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 KiB

After

Width:  |  Height:  |  Size: 631 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 KiB

After

Width:  |  Height:  |  Size: 669 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

+1 -1
View File
@@ -14,7 +14,7 @@
# builds from the registry alone.
pkgname=proton-stream
pkgver=1.1.1
pkgver=1.1.2
pkgrel=1
pkgdesc="Netflix-style desktop client for Proton Drive public links: browse and stream a share"
arch=('x86_64')