๐Ÿ”— Redirect Bluesky links to your preferred client
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix build

+14 -11
+4 -3
shared/src/main/java/dev/zwander/shared/components/AppChooserLayout.kt
··· 16 16 import androidx.compose.foundation.lazy.staggeredgrid.items 17 17 import androidx.compose.material3.CardDefaults 18 18 import androidx.compose.material3.ElevatedCard 19 + import androidx.compose.material3.ExperimentalMaterial3Api 19 20 import androidx.compose.material3.Icon 20 21 import androidx.compose.material3.IconButton 21 22 import androidx.compose.material3.IconButtonDefaults 22 23 import androidx.compose.material3.LocalContentColor 23 - import androidx.compose.material3.LocalMinimumInteractiveComponentSize 24 + import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement 24 25 import androidx.compose.material3.MaterialTheme 25 26 import androidx.compose.material3.OutlinedCard 26 27 import androidx.compose.material3.Text ··· 36 37 import androidx.compose.ui.res.painterResource 37 38 import androidx.compose.ui.res.stringResource 38 39 import androidx.compose.ui.text.style.TextAlign 39 - import androidx.compose.ui.unit.Dp 40 40 import androidx.compose.ui.unit.dp 41 41 import dev.zwander.shared.DiscoveredGroup 42 42 import dev.zwander.shared.LaunchStrategy ··· 194 194 } 195 195 } 196 196 197 + @OptIn(ExperimentalMaterial3Api::class) 197 198 @Composable 198 199 private fun SingleCard( 199 200 strategy: LaunchStrategy, ··· 252 253 if (!enabled) { 253 254 strategy.sourceUrl?.let { sourceUrl -> 254 255 CompositionLocalProvider( 255 - LocalMinimumInteractiveComponentSize provides Dp.Unspecified, 256 + LocalMinimumInteractiveComponentEnforcement provides false, 256 257 ) { 257 258 IconButton( 258 259 onClick = { context.launchUrl(sourceUrl) },
+4 -4
shared/src/main/java/dev/zwander/shared/components/FooterLayout.kt
··· 15 15 import androidx.compose.foundation.lazy.LazyColumn 16 16 import androidx.compose.material3.AlertDialog 17 17 import androidx.compose.material3.CardDefaults 18 + import androidx.compose.material3.ExperimentalMaterial3Api 18 19 import androidx.compose.material3.Icon 19 - import androidx.compose.material3.LocalMinimumInteractiveComponentSize 20 + import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement 20 21 import androidx.compose.material3.MaterialTheme 21 22 import androidx.compose.material3.Text 22 23 import androidx.compose.material3.TextButton ··· 33 34 import androidx.compose.ui.platform.LocalContext 34 35 import androidx.compose.ui.res.painterResource 35 36 import androidx.compose.ui.res.stringResource 36 - import androidx.compose.ui.unit.Dp 37 37 import androidx.compose.ui.unit.dp 38 38 import androidx.compose.ui.viewinterop.AndroidView 39 39 import com.bugsnag.android.Bugsnag ··· 56 56 ) 57 57 58 58 @OptIn( 59 - ExperimentalLayoutApi::class, 59 + ExperimentalLayoutApi::class, ExperimentalMaterial3Api::class, 60 60 ) 61 61 @Composable 62 62 fun FooterLayout( ··· 113 113 } 114 114 115 115 CompositionLocalProvider( 116 - LocalMinimumInteractiveComponentSize provides Dp.Unspecified, 116 + LocalMinimumInteractiveComponentEnforcement provides false, 117 117 ) { 118 118 FlowRow( 119 119 modifier = modifier.padding(bottom = 8.dp),
+3 -1
shared/src/main/java/dev/zwander/shared/components/LinkBlocklistLayout.kt
··· 1 1 package dev.zwander.shared.components 2 2 3 3 import androidx.compose.animation.Crossfade 4 + import androidx.compose.foundation.ExperimentalFoundationApi 4 5 import androidx.compose.foundation.layout.Arrangement 5 6 import androidx.compose.foundation.layout.Box 6 7 import androidx.compose.foundation.layout.Column ··· 27 28 import dev.zwander.shared.util.collectAvailableDomainsSortedByStatus 28 29 import kotlinx.coroutines.launch 29 30 31 + @OptIn(ExperimentalFoundationApi::class) 30 32 @Composable 31 33 fun LinkBlocklistLayout( 32 34 modifier: Modifier = Modifier, ··· 83 85 domain = it, 84 86 modifier = Modifier 85 87 .fillMaxWidth() 86 - .animateItem(), 88 + .animateItemPlacement(), 87 89 ) 88 90 } 89 91 }
+3 -3
shared/src/main/java/dev/zwander/shared/components/LongClickableIconButton.kt
··· 7 7 import androidx.compose.foundation.interaction.MutableInteractionSource 8 8 import androidx.compose.foundation.layout.Box 9 9 import androidx.compose.foundation.layout.size 10 + import androidx.compose.material.ripple.rememberRipple 10 11 import androidx.compose.material3.IconButtonColors 11 12 import androidx.compose.material3.IconButtonDefaults 12 13 import androidx.compose.material3.LocalContentColor 13 14 import androidx.compose.material3.minimumInteractiveComponentSize 14 - import androidx.compose.material3.ripple 15 15 import androidx.compose.material3.tokens.IconButtonTokens 16 16 import androidx.compose.material3.value 17 17 import androidx.compose.runtime.Composable ··· 44 44 enabled = enabled, 45 45 role = Role.Button, 46 46 interactionSource = interactionSource, 47 - indication = ripple( 47 + indication = rememberRipple( 48 48 bounded = false, 49 - radius = IconButtonTokens.StateLayerSize / 2 49 + radius = IconButtonTokens.StateLayerSize / 2, 50 50 ), 51 51 onLongClick = onLongClick, 52 52 ),