1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-10 23:08:59 +00:00

Dart 3.9 / Flutter 3.35 [first LLM release] (#2714)

I got carried away with Gemini and basically rewrote CI and the release
process for the new LLM reality. This work was largely completed by
Gemini.

- Bump all SDK versions to the current beta (3.9.0-0)
- Run `flutter channel beta`
- Wrote `ci_script.dart` to replace the bash scripts
- Converted repository to pub workspace #2499 
- Added llm.md and release.md
- Added redirect for deprecated Samples Index

## Pre-launch Checklist

- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
This commit is contained in:
Eric Windmill
2025-08-14 12:26:24 -07:00
committed by GitHub
parent 0aa5415d5e
commit 2999d738b8
410 changed files with 28166 additions and 27661 deletions

View File

@@ -86,11 +86,14 @@ class ShareButton extends _DetailPageButton {
/// A favorite button that invokes a callback when pressed.
class FavoriteButton extends _DetailPageButton {
const FavoriteButton(VoidCallback onPressed, bool isFavorite, {super.key})
: super(
onPressed,
isFavorite ? CupertinoIcons.heart_fill : CupertinoIcons.heart,
);
const FavoriteButton(
VoidCallback onPressed,
bool isFavorite, {
super.key,
}) : super(
onPressed,
isFavorite ? CupertinoIcons.heart_fill : CupertinoIcons.heart,
);
}
class _DetailPageButton extends StatefulWidget {
@@ -124,15 +127,16 @@ class _DetailPageButtonState extends State<_DetailPageButton> {
child: Container(
width: 30,
height: 30,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(15)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),
),
child: Center(
child: ColorChangingIcon(
widget.icon,
duration: const Duration(milliseconds: 300),
color:
tapInProgress
? Styles.closeButtonPressed
: Styles.closeButtonUnpressed,
color: tapInProgress
? Styles.closeButtonPressed
: Styles.closeButtonUnpressed,
size: 20,
),
),

View File

@@ -93,8 +93,9 @@ class VeggieCard extends StatelessWidget {
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
colorFilter:
isInSeason ? null : Styles.desaturatedColorFilter,
colorFilter: isInSeason
? null
: Styles.desaturatedColorFilter,
image: AssetImage(veggie.imageAssetPath),
),
),

View File

@@ -67,6 +67,9 @@ class VeggieHeadline extends StatelessWidget {
@override
Widget build(BuildContext context) {
final themeData = CupertinoTheme.of(context);
final String location = GoRouter.of(
context,
).routerDelegate.currentConfiguration.uri.toString();
return GestureDetector(
onTap: () {
@@ -74,7 +77,7 @@ class VeggieHeadline extends StatelessWidget {
// so navigate to the absolute route, which can be either
// `/favorites/details/${veggie.id}` or `/search/details/${veggie.id}`
// see https://github.com/flutter/flutter/issues/108177
context.go('${GoRouter.of(context).location}/details/${veggie.id}');
context.go('$location/details/${veggie.id}');
},
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -93,7 +96,10 @@ class VeggieHeadline extends StatelessWidget {
children: [
Row(
children: [
Text(veggie.name, style: Styles.headlineName(themeData)),
Text(
veggie.name,
style: Styles.headlineName(themeData),
),
..._buildSeasonDots(veggie.seasons),
],
),

View File

@@ -19,7 +19,8 @@ class VeggieSeasonsPage<T> extends Page<T> {
}
class VeggieSeasonsPageRoute<T> extends PageRoute<T> {
VeggieSeasonsPageRoute(VeggieSeasonsPage<T> page) : super(settings: page);
VeggieSeasonsPageRoute(VeggieSeasonsPage<T> page)
: super(settings: page);
VeggieSeasonsPage<T> get _page => settings as VeggieSeasonsPage<T>;