mirror of
https://github.com/flutter/samples.git
synced 2025-11-08 22:09:06 +00:00
Update flutter web samples (#161)
* update gallery and web samples compatable with SDK version 2a576b774c: Flutter 1.12.3-pre.38 • channel master • git@github.com:flutter/flutter.git Framework • revision 2a576b774c (2 hours ago) • 2019-11-15 13:15:05 -0800 Engine • revision b2640d97e7 Tools • Dart 2.7.0 * add preview image
This commit is contained in:
@@ -47,7 +47,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -1,28 +1,32 @@
|
|||||||
# Flutter gallery
|
# Flutter gallery
|
||||||
|
|
||||||
This is a copy of the [Flutter gallery] hosted at
|
A demo app for Flutter's material design and cupertino widgets, as
|
||||||
[flutter.github.io/samples][hosted url].
|
well as many other features of the Flutter SDK.
|
||||||
|
|
||||||
## Updating
|
## Building
|
||||||
|
|
||||||
To update, copy the contents of the gallery directory, and remove the following
|
You can follow these instructions to build the gallery app
|
||||||
files and directories:
|
and install it onto your device.
|
||||||
|
|
||||||
```bash
|
### Prerequisites
|
||||||
rm BUILD.gn
|
|
||||||
rm -rf tool/
|
|
||||||
rm -rf test/
|
|
||||||
rm -rf android/
|
|
||||||
rm -rf ios/
|
|
||||||
```
|
|
||||||
|
|
||||||
If you changed the `pubspec.yaml` file, make sure to use Google Sans instead of
|
If you are new to Flutter, please first follow
|
||||||
San Francisco (which is not available on the web) by copy-pasting the `fonts`
|
the [Flutter Setup](https://flutter.dev/setup/) guide.
|
||||||
section from Google Sans:
|
|
||||||
- Use "GoogleSans" for ".SF Pro Text".
|
|
||||||
- Use "GoogleSansDisplay" for ".SF Pro Display"
|
|
||||||
- Use "GoogleSans" for ".SF UI Text"
|
|
||||||
- Use "GoogleSansDisplay" for ".SF UI Display".
|
|
||||||
|
|
||||||
[Flutter gallery]: https://github.com/flutter/flutter/tree/master/examples/flutter_gallery
|
### Building and installing the Flutter app
|
||||||
[hosted url]: https://flutter.github.io/samples/gallery/#/
|
|
||||||
|
* `cd $FLUTTER_ROOT/examples/flutter_gallery`
|
||||||
|
* `flutter pub get`
|
||||||
|
* `flutter run --release`
|
||||||
|
|
||||||
|
The `flutter run --release` command both builds and installs the Flutter app.
|
||||||
|
|
||||||
|
## Prerelease checklist
|
||||||
|
|
||||||
|
* Verify that the About box's license page scrolls and reveals its long
|
||||||
|
long stream of license texts.
|
||||||
|
|
||||||
|
## Icon
|
||||||
|
|
||||||
|
Android launcher icons were generated using Android Asset Studio:
|
||||||
|
https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.type=image&foreground.space.trim=1&foreground.space.pad=0.1&foreColor=607d8b%2C0&crop=0&backgroundShape=square&backColor=fafafa%2C100&effects=none
|
||||||
|
|||||||
@@ -143,6 +143,7 @@ class CupertinoDemoTab1 extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return CupertinoPageScaffold(
|
return CupertinoPageScaffold(
|
||||||
|
backgroundColor: CupertinoColors.systemGroupedBackground,
|
||||||
child: CustomScrollView(
|
child: CustomScrollView(
|
||||||
semanticChildCount: _kChildCount,
|
semanticChildCount: _kChildCount,
|
||||||
slivers: <Widget>[
|
slivers: <Widget>[
|
||||||
@@ -199,56 +200,59 @@ class Tab1RowItem extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
));
|
));
|
||||||
},
|
},
|
||||||
child: SafeArea(
|
child: Container(
|
||||||
top: false,
|
color: CupertinoDynamicColor.resolve(CupertinoColors.systemBackground, context),
|
||||||
bottom: false,
|
child: SafeArea(
|
||||||
child: Padding(
|
top: false,
|
||||||
padding: const EdgeInsets.only(left: 16.0, top: 8.0, bottom: 8.0, right: 8.0),
|
bottom: false,
|
||||||
child: Row(
|
child: Padding(
|
||||||
children: <Widget>[
|
padding: const EdgeInsets.only(left: 16.0, top: 8.0, bottom: 8.0, right: 8.0),
|
||||||
Container(
|
child: Row(
|
||||||
height: 60.0,
|
children: <Widget>[
|
||||||
width: 60.0,
|
Container(
|
||||||
decoration: BoxDecoration(
|
height: 60.0,
|
||||||
color: color,
|
width: 60.0,
|
||||||
borderRadius: BorderRadius.circular(8.0),
|
decoration: BoxDecoration(
|
||||||
),
|
color: color,
|
||||||
),
|
borderRadius: BorderRadius.circular(8.0),
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12.0),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: <Widget>[
|
|
||||||
Text(colorName),
|
|
||||||
const Padding(padding: EdgeInsets.only(top: 8.0)),
|
|
||||||
const Text(
|
|
||||||
'Buy this cool color',
|
|
||||||
style: TextStyle(
|
|
||||||
color: Color(0xFF8E8E93),
|
|
||||||
fontSize: 13.0,
|
|
||||||
fontWeight: FontWeight.w300,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
Expanded(
|
||||||
CupertinoButton(
|
child: Padding(
|
||||||
padding: EdgeInsets.zero,
|
padding: const EdgeInsets.symmetric(horizontal: 12.0),
|
||||||
child: const Icon(CupertinoIcons.plus_circled,
|
child: Column(
|
||||||
semanticLabel: 'Add',
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Text(colorName),
|
||||||
|
const Padding(padding: EdgeInsets.only(top: 8.0)),
|
||||||
|
Text(
|
||||||
|
'Buy this cool color',
|
||||||
|
style: TextStyle(
|
||||||
|
color: CupertinoDynamicColor.resolve(CupertinoColors.secondaryLabel, context),
|
||||||
|
fontSize: 13.0,
|
||||||
|
fontWeight: FontWeight.w300,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
onPressed: () { },
|
CupertinoButton(
|
||||||
),
|
padding: EdgeInsets.zero,
|
||||||
CupertinoButton(
|
child: const Icon(CupertinoIcons.plus_circled,
|
||||||
padding: EdgeInsets.zero,
|
semanticLabel: 'Add',
|
||||||
child: const Icon(CupertinoIcons.share,
|
),
|
||||||
semanticLabel: 'Share',
|
onPressed: () { },
|
||||||
),
|
),
|
||||||
onPressed: () { },
|
CupertinoButton(
|
||||||
),
|
padding: EdgeInsets.zero,
|
||||||
],
|
child: const Icon(CupertinoIcons.share,
|
||||||
|
semanticLabel: 'Share',
|
||||||
|
),
|
||||||
|
onPressed: () { },
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -263,7 +267,7 @@ class Tab1RowItem extends StatelessWidget {
|
|||||||
row,
|
row,
|
||||||
Container(
|
Container(
|
||||||
height: 1.0,
|
height: 1.0,
|
||||||
color: const Color(0xFFD9D9D9),
|
color: CupertinoDynamicColor.resolve(CupertinoColors.separator, context),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@@ -336,8 +340,8 @@ class Tab1ItemPageState extends State<Tab1ItemPage> {
|
|||||||
const Padding(padding: EdgeInsets.only(top: 6.0)),
|
const Padding(padding: EdgeInsets.only(top: 6.0)),
|
||||||
Text(
|
Text(
|
||||||
'Item number ${widget.index}',
|
'Item number ${widget.index}',
|
||||||
style: const TextStyle(
|
style: TextStyle(
|
||||||
color: Color(0xFF8E8E93),
|
color: CupertinoDynamicColor.resolve(CupertinoColors.secondaryLabel, context),
|
||||||
fontSize: 16.0,
|
fontSize: 16.0,
|
||||||
fontWeight: FontWeight.w100,
|
fontWeight: FontWeight.w100,
|
||||||
),
|
),
|
||||||
@@ -433,7 +437,10 @@ class CupertinoDemoTab2 extends StatelessWidget {
|
|||||||
child: CupertinoScrollbar(
|
child: CupertinoScrollbar(
|
||||||
child: ListView(
|
child: ListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Tab2Header(),
|
CupertinoUserInterfaceLevel(
|
||||||
|
data: CupertinoUserInterfaceLevelData.elevated,
|
||||||
|
child: Tab2Header(),
|
||||||
|
),
|
||||||
...buildTab2Conversation(),
|
...buildTab2Conversation(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -456,18 +463,18 @@ class Tab2Header extends StatelessWidget {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Container(
|
Container(
|
||||||
decoration: const BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Color(0xFFE5E5E5),
|
color: CupertinoDynamicColor.resolve(CupertinoColors.systemFill, context),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 18.0, vertical: 12.0),
|
padding: const EdgeInsets.symmetric(horizontal: 18.0, vertical: 12.0),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: const <Widget>[
|
children: <Widget>[
|
||||||
Text(
|
Text(
|
||||||
'SUPPORT TICKET',
|
'SUPPORT TICKET',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Color(0xFF646464),
|
color: CupertinoDynamicColor.resolve(CupertinoColors.secondaryLabel, context),
|
||||||
letterSpacing: -0.9,
|
letterSpacing: -0.9,
|
||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
@@ -476,7 +483,7 @@ class Tab2Header extends StatelessWidget {
|
|||||||
Text(
|
Text(
|
||||||
'Show More',
|
'Show More',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Color(0xFF646464),
|
color: CupertinoDynamicColor.resolve(CupertinoColors.secondaryLabel, context),
|
||||||
letterSpacing: -0.6,
|
letterSpacing: -0.6,
|
||||||
fontSize: 12.0,
|
fontSize: 12.0,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
@@ -487,8 +494,8 @@ class Tab2Header extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
decoration: const BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Color(0xFFF3F3F3),
|
color: CupertinoDynamicColor.resolve(CupertinoColors.quaternarySystemFill, context),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 18.0, vertical: 12.0),
|
padding: const EdgeInsets.symmetric(horizontal: 18.0, vertical: 12.0),
|
||||||
@@ -576,21 +583,31 @@ class Tab2ConversationBubble extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
Color backgroundColor;
|
||||||
|
Color foregroundColor;
|
||||||
|
|
||||||
|
switch (color) {
|
||||||
|
case Tab2ConversationBubbleColor.gray:
|
||||||
|
backgroundColor = CupertinoDynamicColor.resolve(CupertinoColors.systemFill, context);
|
||||||
|
foregroundColor = CupertinoDynamicColor.resolve(CupertinoColors.label, context);
|
||||||
|
break;
|
||||||
|
case Tab2ConversationBubbleColor.blue:
|
||||||
|
backgroundColor = CupertinoTheme.of(context).primaryColor;
|
||||||
|
foregroundColor = CupertinoColors.white;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: const BorderRadius.all(Radius.circular(18.0)),
|
borderRadius: const BorderRadius.all(Radius.circular(18.0)),
|
||||||
color: color == Tab2ConversationBubbleColor.blue
|
color: backgroundColor,
|
||||||
? CupertinoColors.activeBlue
|
|
||||||
: CupertinoColors.lightBackgroundGray,
|
|
||||||
),
|
),
|
||||||
margin: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 8.0),
|
margin: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 8.0),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 14.0, vertical: 10.0),
|
padding: const EdgeInsets.symmetric(horizontal: 14.0, vertical: 10.0),
|
||||||
child: Text(
|
child: Text(
|
||||||
text,
|
text,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: color == Tab2ConversationBubbleColor.blue
|
color: foregroundColor,
|
||||||
? CupertinoColors.white
|
|
||||||
: CupertinoColors.black,
|
|
||||||
letterSpacing: -0.4,
|
letterSpacing: -0.4,
|
||||||
fontSize: 15.0,
|
fontSize: 15.0,
|
||||||
fontWeight: FontWeight.w400,
|
fontWeight: FontWeight.w400,
|
||||||
@@ -655,11 +672,14 @@ class Tab2ConversationRow extends StatelessWidget {
|
|||||||
crossAxisAlignment: isSelf ? CrossAxisAlignment.center : CrossAxisAlignment.end,
|
crossAxisAlignment: isSelf ? CrossAxisAlignment.center : CrossAxisAlignment.end,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
if (avatar != null) avatar,
|
if (avatar != null) avatar,
|
||||||
Tab2ConversationBubble(
|
CupertinoUserInterfaceLevel(
|
||||||
text: text,
|
data: CupertinoUserInterfaceLevelData.elevated,
|
||||||
color: isSelf
|
child: Tab2ConversationBubble(
|
||||||
|
text: text,
|
||||||
|
color: isSelf
|
||||||
? Tab2ConversationBubbleColor.blue
|
? Tab2ConversationBubbleColor.blue
|
||||||
: Tab2ConversationBubbleColor.gray,
|
: Tab2ConversationBubbleColor.gray,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -709,55 +729,47 @@ class CupertinoDemoTab3 extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return CupertinoPageScaffold(
|
return CupertinoPageScaffold(
|
||||||
navigationBar: CupertinoNavigationBar(
|
navigationBar: CupertinoNavigationBar(trailing: trailingButtons),
|
||||||
trailing: trailingButtons,
|
backgroundColor: CupertinoColors.systemBackground,
|
||||||
),
|
child: ListView(
|
||||||
child: DecoratedBox(
|
children: <Widget>[
|
||||||
decoration: BoxDecoration(
|
const Padding(padding: EdgeInsets.only(top: 32.0)),
|
||||||
color: CupertinoTheme.of(context).brightness == Brightness.light
|
GestureDetector(
|
||||||
? CupertinoColors.extraLightBackgroundGray
|
onTap: () {
|
||||||
: CupertinoColors.darkBackgroundGray,
|
Navigator.of(context, rootNavigator: true).push(
|
||||||
),
|
CupertinoPageRoute<bool>(
|
||||||
child: ListView(
|
fullscreenDialog: true,
|
||||||
children: <Widget>[
|
builder: (BuildContext context) => Tab3Dialog(),
|
||||||
const Padding(padding: EdgeInsets.only(top: 32.0)),
|
|
||||||
GestureDetector(
|
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context, rootNavigator: true).push(
|
|
||||||
CupertinoPageRoute<bool>(
|
|
||||||
fullscreenDialog: true,
|
|
||||||
builder: (BuildContext context) => Tab3Dialog(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: CupertinoTheme.of(context).scaffoldBackgroundColor,
|
|
||||||
border: const Border(
|
|
||||||
top: BorderSide(color: Color(0xFFBCBBC1), width: 0.0),
|
|
||||||
bottom: BorderSide(color: Color(0xFFBCBBC1), width: 0.0),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
height: 44.0,
|
);
|
||||||
child: Padding(
|
},
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
|
child: Container(
|
||||||
child: SafeArea(
|
decoration: BoxDecoration(
|
||||||
top: false,
|
color: CupertinoTheme.of(context).scaffoldBackgroundColor,
|
||||||
bottom: false,
|
border: const Border(
|
||||||
child: Row(
|
top: BorderSide(color: Color(0xFFBCBBC1), width: 0.0),
|
||||||
children: <Widget>[
|
bottom: BorderSide(color: Color(0xFFBCBBC1), width: 0.0),
|
||||||
Text(
|
),
|
||||||
'Sign in',
|
),
|
||||||
style: TextStyle(color: CupertinoTheme.of(context).primaryColor),
|
height: 44.0,
|
||||||
),
|
child: Padding(
|
||||||
],
|
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
|
||||||
),
|
child: SafeArea(
|
||||||
|
top: false,
|
||||||
|
bottom: false,
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Text(
|
||||||
|
'Sign in',
|
||||||
|
style: TextStyle(color: CupertinoTheme.of(context).primaryColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
),
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,21 +17,50 @@ class CupertinoPickerDemo extends StatefulWidget {
|
|||||||
_CupertinoPickerDemoState createState() => _CupertinoPickerDemoState();
|
_CupertinoPickerDemoState createState() => _CupertinoPickerDemoState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
class _BottomPicker extends StatelessWidget {
|
||||||
int _selectedColorIndex = 0;
|
const _BottomPicker({
|
||||||
|
Key key,
|
||||||
|
@required this.child,
|
||||||
|
}) : assert(child != null),
|
||||||
|
super(key: key);
|
||||||
|
|
||||||
Duration timer = const Duration();
|
final Widget child;
|
||||||
|
|
||||||
// Value that is shown in the date picker in date mode.
|
@override
|
||||||
DateTime date = DateTime.now();
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
height: _kPickerSheetHeight,
|
||||||
|
padding: const EdgeInsets.only(top: 6.0),
|
||||||
|
color: CupertinoColors.systemBackground.resolveFrom(context),
|
||||||
|
child: DefaultTextStyle(
|
||||||
|
style: TextStyle(
|
||||||
|
color: CupertinoColors.label.resolveFrom(context),
|
||||||
|
fontSize: 22.0,
|
||||||
|
),
|
||||||
|
child: GestureDetector(
|
||||||
|
// Blocks taps from propagating to the modal sheet and popping.
|
||||||
|
onTap: () { },
|
||||||
|
child: SafeArea(
|
||||||
|
top: false,
|
||||||
|
child: child,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Value that is shown in the date picker in time mode.
|
class _Menu extends StatelessWidget {
|
||||||
DateTime time = DateTime.now();
|
const _Menu({
|
||||||
|
Key key,
|
||||||
|
@required this.children,
|
||||||
|
}) : assert(children != null),
|
||||||
|
super(key: key);
|
||||||
|
|
||||||
// Value that is shown in the date picker in dateAndTime mode.
|
final List<Widget> children;
|
||||||
DateTime dateTime = DateTime.now();
|
|
||||||
|
|
||||||
Widget _buildMenu(List<Widget> children) {
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: CupertinoTheme.of(context).scaffoldBackgroundColor,
|
color: CupertinoTheme.of(context).scaffoldBackgroundColor,
|
||||||
@@ -54,28 +83,21 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Widget _buildBottomPicker(Widget picker) {
|
class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
||||||
return Container(
|
int _selectedColorIndex = 0;
|
||||||
height: _kPickerSheetHeight,
|
|
||||||
padding: const EdgeInsets.only(top: 6.0),
|
Duration timer = const Duration();
|
||||||
color: CupertinoColors.white,
|
|
||||||
child: DefaultTextStyle(
|
// Value that is shown in the date picker in date mode.
|
||||||
style: const TextStyle(
|
DateTime date = DateTime.now();
|
||||||
color: CupertinoColors.black,
|
|
||||||
fontSize: 22.0,
|
// Value that is shown in the date picker in time mode.
|
||||||
),
|
DateTime time = DateTime.now();
|
||||||
child: GestureDetector(
|
|
||||||
// Blocks taps from propagating to the modal sheet and popping.
|
// Value that is shown in the date picker in dateAndTime mode.
|
||||||
onTap: () { },
|
DateTime dateTime = DateTime.now();
|
||||||
child: SafeArea(
|
|
||||||
top: false,
|
|
||||||
child: picker,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildColorPicker(BuildContext context) {
|
Widget _buildColorPicker(BuildContext context) {
|
||||||
final FixedExtentScrollController scrollController =
|
final FixedExtentScrollController scrollController =
|
||||||
@@ -86,11 +108,11 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
await showCupertinoModalPopup<void>(
|
await showCupertinoModalPopup<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return _buildBottomPicker(
|
return _BottomPicker(
|
||||||
CupertinoPicker(
|
child: CupertinoPicker(
|
||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
itemExtent: _kPickerItemHeight,
|
itemExtent: _kPickerItemHeight,
|
||||||
backgroundColor: CupertinoColors.white,
|
backgroundColor: CupertinoColors.systemBackground.resolveFrom(context),
|
||||||
onSelectedItemChanged: (int index) {
|
onSelectedItemChanged: (int index) {
|
||||||
setState(() => _selectedColorIndex = index);
|
setState(() => _selectedColorIndex = index);
|
||||||
},
|
},
|
||||||
@@ -104,14 +126,12 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: _buildMenu(
|
child: _Menu(
|
||||||
<Widget>[
|
children: <Widget>[
|
||||||
const Text('Favorite Color'),
|
const Text('Favorite Color'),
|
||||||
Text(
|
Text(
|
||||||
coolColorNames[_selectedColorIndex],
|
coolColorNames[_selectedColorIndex],
|
||||||
style: const TextStyle(
|
style: TextStyle(color: CupertinoDynamicColor.resolve(CupertinoColors.inactiveGray, context)),
|
||||||
color: CupertinoColors.inactiveGray
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -124,8 +144,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
showCupertinoModalPopup<void>(
|
showCupertinoModalPopup<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return _buildBottomPicker(
|
return _BottomPicker(
|
||||||
CupertinoTimerPicker(
|
child: CupertinoTimerPicker(
|
||||||
|
backgroundColor: CupertinoColors.systemBackground.resolveFrom(context),
|
||||||
initialTimerDuration: timer,
|
initialTimerDuration: timer,
|
||||||
onTimerDurationChanged: (Duration newTimer) {
|
onTimerDurationChanged: (Duration newTimer) {
|
||||||
setState(() => timer = newTimer);
|
setState(() => timer = newTimer);
|
||||||
@@ -135,14 +156,14 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: _buildMenu(
|
child: _Menu(
|
||||||
<Widget>[
|
children: <Widget>[
|
||||||
const Text('Countdown Timer'),
|
const Text('Countdown Timer'),
|
||||||
Text(
|
Text(
|
||||||
'${timer.inHours}:'
|
'${timer.inHours}:'
|
||||||
'${(timer.inMinutes % 60).toString().padLeft(2,'0')}:'
|
'${(timer.inMinutes % 60).toString().padLeft(2,'0')}:'
|
||||||
'${(timer.inSeconds % 60).toString().padLeft(2,'0')}',
|
'${(timer.inSeconds % 60).toString().padLeft(2,'0')}',
|
||||||
style: const TextStyle(color: CupertinoColors.inactiveGray),
|
style: TextStyle(color: CupertinoDynamicColor.resolve(CupertinoColors.inactiveGray, context)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -155,8 +176,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
showCupertinoModalPopup<void>(
|
showCupertinoModalPopup<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return _buildBottomPicker(
|
return _BottomPicker(
|
||||||
CupertinoDatePicker(
|
child: CupertinoDatePicker(
|
||||||
|
backgroundColor: CupertinoColors.systemBackground.resolveFrom(context),
|
||||||
mode: CupertinoDatePickerMode.date,
|
mode: CupertinoDatePickerMode.date,
|
||||||
initialDateTime: date,
|
initialDateTime: date,
|
||||||
onDateTimeChanged: (DateTime newDateTime) {
|
onDateTimeChanged: (DateTime newDateTime) {
|
||||||
@@ -167,12 +189,12 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: _buildMenu(
|
child: _Menu(
|
||||||
<Widget>[
|
children: <Widget>[
|
||||||
const Text('Date'),
|
const Text('Date'),
|
||||||
Text(
|
Text(
|
||||||
DateFormat.yMMMMd().format(date),
|
DateFormat.yMMMMd().format(date),
|
||||||
style: const TextStyle(color: CupertinoColors.inactiveGray),
|
style: TextStyle(color: CupertinoDynamicColor.resolve(CupertinoColors.inactiveGray, context)),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
@@ -185,8 +207,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
showCupertinoModalPopup<void>(
|
showCupertinoModalPopup<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return _buildBottomPicker(
|
return _BottomPicker(
|
||||||
CupertinoDatePicker(
|
child: CupertinoDatePicker(
|
||||||
|
backgroundColor: CupertinoColors.systemBackground.resolveFrom(context),
|
||||||
mode: CupertinoDatePickerMode.time,
|
mode: CupertinoDatePickerMode.time,
|
||||||
initialDateTime: time,
|
initialDateTime: time,
|
||||||
onDateTimeChanged: (DateTime newDateTime) {
|
onDateTimeChanged: (DateTime newDateTime) {
|
||||||
@@ -197,12 +220,12 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: _buildMenu(
|
child: _Menu(
|
||||||
<Widget>[
|
children: <Widget>[
|
||||||
const Text('Time'),
|
const Text('Time'),
|
||||||
Text(
|
Text(
|
||||||
DateFormat.jm().format(time),
|
DateFormat.jm().format(time),
|
||||||
style: const TextStyle(color: CupertinoColors.inactiveGray),
|
style: TextStyle(color: CupertinoDynamicColor.resolve(CupertinoColors.inactiveGray, context)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -215,8 +238,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
showCupertinoModalPopup<void>(
|
showCupertinoModalPopup<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return _buildBottomPicker(
|
return _BottomPicker(
|
||||||
CupertinoDatePicker(
|
child: CupertinoDatePicker(
|
||||||
|
backgroundColor: CupertinoColors.systemBackground.resolveFrom(context),
|
||||||
mode: CupertinoDatePickerMode.dateAndTime,
|
mode: CupertinoDatePickerMode.dateAndTime,
|
||||||
initialDateTime: dateTime,
|
initialDateTime: dateTime,
|
||||||
onDateTimeChanged: (DateTime newDateTime) {
|
onDateTimeChanged: (DateTime newDateTime) {
|
||||||
@@ -227,12 +251,12 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: _buildMenu(
|
child: _Menu(
|
||||||
<Widget>[
|
children: <Widget>[
|
||||||
const Text('Date and Time'),
|
const Text('Date and Time'),
|
||||||
Text(
|
Text(
|
||||||
DateFormat.yMMMd().add_jm().format(dateTime),
|
DateFormat.yMMMd().add_jm().format(dateTime),
|
||||||
style: const TextStyle(color: CupertinoColors.inactiveGray),
|
style: TextStyle(color: CupertinoDynamicColor.resolve(CupertinoColors.inactiveGray, context)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -252,22 +276,15 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
),
|
),
|
||||||
child: DefaultTextStyle(
|
child: DefaultTextStyle(
|
||||||
style: CupertinoTheme.of(context).textTheme.textStyle,
|
style: CupertinoTheme.of(context).textTheme.textStyle,
|
||||||
child: DecoratedBox(
|
child: ListView(
|
||||||
decoration: BoxDecoration(
|
children: <Widget>[
|
||||||
color: CupertinoTheme.of(context).brightness == Brightness.light
|
const Padding(padding: EdgeInsets.only(top: 32.0)),
|
||||||
? CupertinoColors.extraLightBackgroundGray
|
_buildColorPicker(context),
|
||||||
: CupertinoColors.darkBackgroundGray,
|
_buildCountdownTimerPicker(context),
|
||||||
),
|
_buildDatePicker(context),
|
||||||
child: ListView(
|
_buildTimePicker(context),
|
||||||
children: <Widget>[
|
_buildDateAndTimePicker(context),
|
||||||
const Padding(padding: EdgeInsets.only(top: 32.0)),
|
],
|
||||||
_buildColorPicker(context),
|
|
||||||
_buildCountdownTimerPicker(context),
|
|
||||||
_buildDatePicker(context),
|
|
||||||
_buildTimePicker(context),
|
|
||||||
_buildDateAndTimePicker(context),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -41,59 +41,53 @@ class _CupertinoRefreshControlDemoState extends State<CupertinoRefreshControlDem
|
|||||||
return DefaultTextStyle(
|
return DefaultTextStyle(
|
||||||
style: CupertinoTheme.of(context).textTheme.textStyle,
|
style: CupertinoTheme.of(context).textTheme.textStyle,
|
||||||
child: CupertinoPageScaffold(
|
child: CupertinoPageScaffold(
|
||||||
child: DecoratedBox(
|
backgroundColor: CupertinoColors.systemGroupedBackground,
|
||||||
decoration: BoxDecoration(
|
child: CustomScrollView(
|
||||||
color: CupertinoTheme.of(context).brightness == Brightness.light
|
// If left unspecified, the [CustomScrollView] appends an
|
||||||
? CupertinoColors.extraLightBackgroundGray
|
// [AlwaysScrollableScrollPhysics]. Behind the scene, the ScrollableState
|
||||||
: CupertinoColors.darkBackgroundGray,
|
// will attach that [AlwaysScrollableScrollPhysics] to the output of
|
||||||
),
|
// [ScrollConfiguration.of] which will be a [ClampingScrollPhysics]
|
||||||
child: CustomScrollView(
|
// on Android.
|
||||||
// If left unspecified, the [CustomScrollView] appends an
|
// To demonstrate the iOS behavior in this demo and to ensure that the list
|
||||||
// [AlwaysScrollableScrollPhysics]. Behind the scene, the ScrollableState
|
// always scrolls, we specifically use a [BouncingScrollPhysics] combined
|
||||||
// will attach that [AlwaysScrollableScrollPhysics] to the output of
|
// with a [AlwaysScrollableScrollPhysics]
|
||||||
// [ScrollConfiguration.of] which will be a [ClampingScrollPhysics]
|
physics: const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
|
||||||
// on Android.
|
slivers: <Widget>[
|
||||||
// To demonstrate the iOS behavior in this demo and to ensure that the list
|
CupertinoSliverNavigationBar(
|
||||||
// always scrolls, we specifically use a [BouncingScrollPhysics] combined
|
largeTitle: const Text('Refresh'),
|
||||||
// with a [AlwaysScrollableScrollPhysics]
|
// We're specifying a back label here because the previous page
|
||||||
physics: const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
|
// is a Material page. CupertinoPageRoutes could auto-populate
|
||||||
slivers: <Widget>[
|
// these back labels.
|
||||||
CupertinoSliverNavigationBar(
|
previousPageTitle: 'Cupertino',
|
||||||
largeTitle: const Text('Refresh'),
|
trailing: CupertinoDemoDocumentationButton(CupertinoRefreshControlDemo.routeName),
|
||||||
// We're specifying a back label here because the previous page
|
),
|
||||||
// is a Material page. CupertinoPageRoutes could auto-populate
|
CupertinoSliverRefreshControl(
|
||||||
// these back labels.
|
onRefresh: () {
|
||||||
previousPageTitle: 'Cupertino',
|
return Future<void>.delayed(const Duration(seconds: 2))
|
||||||
trailing: CupertinoDemoDocumentationButton(CupertinoRefreshControlDemo.routeName),
|
..then<void>((_) {
|
||||||
),
|
if (mounted) {
|
||||||
CupertinoSliverRefreshControl(
|
setState(() => repopulateList());
|
||||||
onRefresh: () {
|
}
|
||||||
return Future<void>.delayed(const Duration(seconds: 2))
|
});
|
||||||
..then<void>((_) {
|
},
|
||||||
if (mounted) {
|
),
|
||||||
setState(() => repopulateList());
|
SliverSafeArea(
|
||||||
}
|
top: false, // Top safe area is consumed by the navigation bar.
|
||||||
});
|
sliver: SliverList(
|
||||||
},
|
delegate: SliverChildBuilderDelegate(
|
||||||
),
|
(BuildContext context, int index) {
|
||||||
SliverSafeArea(
|
return _ListItem(
|
||||||
top: false, // Top safe area is consumed by the navigation bar.
|
name: randomizedContacts[index][0],
|
||||||
sliver: SliverList(
|
place: randomizedContacts[index][1],
|
||||||
delegate: SliverChildBuilderDelegate(
|
date: randomizedContacts[index][2],
|
||||||
(BuildContext context, int index) {
|
called: randomizedContacts[index][3] == 'true',
|
||||||
return _ListItem(
|
);
|
||||||
name: randomizedContacts[index][0],
|
},
|
||||||
place: randomizedContacts[index][1],
|
childCount: 20,
|
||||||
date: randomizedContacts[index][2],
|
|
||||||
called: randomizedContacts[index][3] == 'true',
|
|
||||||
);
|
|
||||||
},
|
|
||||||
childCount: 20,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
),
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -163,7 +157,7 @@ class _ListItem extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
color: CupertinoTheme.of(context).scaffoldBackgroundColor,
|
color: CupertinoDynamicColor.resolve(CupertinoColors.systemBackground, context),
|
||||||
height: 60.0,
|
height: 60.0,
|
||||||
padding: const EdgeInsets.only(top: 9.0),
|
padding: const EdgeInsets.only(top: 9.0),
|
||||||
child: Row(
|
child: Row(
|
||||||
@@ -171,11 +165,11 @@ class _ListItem extends StatelessWidget {
|
|||||||
Container(
|
Container(
|
||||||
width: 38.0,
|
width: 38.0,
|
||||||
child: called
|
child: called
|
||||||
? const Align(
|
? Align(
|
||||||
alignment: Alignment.topCenter,
|
alignment: Alignment.topCenter,
|
||||||
child: Icon(
|
child: Icon(
|
||||||
CupertinoIcons.phone_solid,
|
CupertinoIcons.phone_solid,
|
||||||
color: CupertinoColors.inactiveGray,
|
color: CupertinoColors.inactiveGray.resolveFrom(context),
|
||||||
size: 18.0,
|
size: 18.0,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@@ -209,10 +203,10 @@ class _ListItem extends StatelessWidget {
|
|||||||
place,
|
place,
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: const TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 15.0,
|
fontSize: 15.0,
|
||||||
letterSpacing: -0.24,
|
letterSpacing: -0.24,
|
||||||
color: CupertinoColors.inactiveGray,
|
color: CupertinoColors.inactiveGray.resolveFrom(context),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -220,8 +214,8 @@ class _ListItem extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
date,
|
date,
|
||||||
style: const TextStyle(
|
style: TextStyle(
|
||||||
color: CupertinoColors.inactiveGray,
|
color: CupertinoColors.inactiveGray.resolveFrom(context),
|
||||||
fontSize: 15.0,
|
fontSize: 15.0,
|
||||||
letterSpacing: -0.41,
|
letterSpacing: -0.41,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -46,7 +46,13 @@ class _CupertinoSegmentedControlDemoState extends State<CupertinoSegmentedContro
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
int sharedValue = 0;
|
int currentSegment = 0;
|
||||||
|
|
||||||
|
void onValueChanged(int newValue) {
|
||||||
|
setState(() {
|
||||||
|
currentSegment = newValue;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@@ -60,23 +66,28 @@ class _CupertinoSegmentedControlDemoState extends State<CupertinoSegmentedContro
|
|||||||
trailing: CupertinoDemoDocumentationButton(CupertinoSegmentedControlDemo.routeName),
|
trailing: CupertinoDemoDocumentationButton(CupertinoSegmentedControlDemo.routeName),
|
||||||
),
|
),
|
||||||
child: DefaultTextStyle(
|
child: DefaultTextStyle(
|
||||||
style: CupertinoTheme.of(context).textTheme.textStyle,
|
style: CupertinoTheme.of(context).textTheme.textStyle.copyWith(fontSize: 13),
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
const Padding(
|
const Padding(padding: EdgeInsets.all(16.0)),
|
||||||
padding: EdgeInsets.all(16.0),
|
|
||||||
),
|
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 500.0,
|
width: 500.0,
|
||||||
child: CupertinoSegmentedControl<int>(
|
child: CupertinoSegmentedControl<int>(
|
||||||
children: children,
|
children: children,
|
||||||
onValueChanged: (int newValue) {
|
onValueChanged: onValueChanged,
|
||||||
setState(() {
|
groupValue: currentSegment,
|
||||||
sharedValue = newValue;
|
),
|
||||||
});
|
),
|
||||||
},
|
SizedBox(
|
||||||
groupValue: sharedValue,
|
width: 500,
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(16.0),
|
||||||
|
child: CupertinoSlidingSegmentedControl<int>(
|
||||||
|
children: children,
|
||||||
|
onValueChanged: onValueChanged,
|
||||||
|
groupValue: currentSegment,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
@@ -85,36 +96,43 @@ class _CupertinoSegmentedControlDemoState extends State<CupertinoSegmentedContro
|
|||||||
vertical: 32.0,
|
vertical: 32.0,
|
||||||
horizontal: 16.0,
|
horizontal: 16.0,
|
||||||
),
|
),
|
||||||
child: Container(
|
child: CupertinoUserInterfaceLevel(
|
||||||
padding: const EdgeInsets.symmetric(
|
data: CupertinoUserInterfaceLevelData.elevated,
|
||||||
vertical: 64.0,
|
child: Builder(
|
||||||
horizontal: 16.0,
|
builder: (BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
padding: const EdgeInsets.symmetric(
|
||||||
|
vertical: 64.0,
|
||||||
|
horizontal: 16.0,
|
||||||
|
),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: CupertinoTheme.of(context).scaffoldBackgroundColor,
|
||||||
|
borderRadius: BorderRadius.circular(3.0),
|
||||||
|
boxShadow: const <BoxShadow>[
|
||||||
|
BoxShadow(
|
||||||
|
offset: Offset(0.0, 3.0),
|
||||||
|
blurRadius: 5.0,
|
||||||
|
spreadRadius: -1.0,
|
||||||
|
color: _kKeyUmbraOpacity,
|
||||||
|
),
|
||||||
|
BoxShadow(
|
||||||
|
offset: Offset(0.0, 6.0),
|
||||||
|
blurRadius: 10.0,
|
||||||
|
spreadRadius: 0.0,
|
||||||
|
color: _kKeyPenumbraOpacity,
|
||||||
|
),
|
||||||
|
BoxShadow(
|
||||||
|
offset: Offset(0.0, 1.0),
|
||||||
|
blurRadius: 18.0,
|
||||||
|
spreadRadius: 0.0,
|
||||||
|
color: _kAmbientShadowOpacity,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: icons[currentSegment],
|
||||||
|
);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: CupertinoTheme.of(context).scaffoldBackgroundColor,
|
|
||||||
borderRadius: BorderRadius.circular(3.0),
|
|
||||||
boxShadow: const <BoxShadow>[
|
|
||||||
BoxShadow(
|
|
||||||
offset: Offset(0.0, 3.0),
|
|
||||||
blurRadius: 5.0,
|
|
||||||
spreadRadius: -1.0,
|
|
||||||
color: _kKeyUmbraOpacity,
|
|
||||||
),
|
|
||||||
BoxShadow(
|
|
||||||
offset: Offset(0.0, 6.0),
|
|
||||||
blurRadius: 10.0,
|
|
||||||
spreadRadius: 0.0,
|
|
||||||
color: _kKeyPenumbraOpacity,
|
|
||||||
),
|
|
||||||
BoxShadow(
|
|
||||||
offset: Offset(0.0, 1.0),
|
|
||||||
blurRadius: 18.0,
|
|
||||||
spreadRadius: 0.0,
|
|
||||||
color: _kAmbientShadowOpacity,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
child: icons[sharedValue],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../gallery/demo.dart';
|
import '../gallery/demo.dart';
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../gallery/demo.dart';
|
import '../../gallery/demo.dart';
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'dart:ui' show Vertices;
|
import 'dart:ui' show Vertices;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'transformations_demo_board.dart';
|
import 'transformations_demo_board.dart';
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'dart:collection' show IterableMixin;
|
import 'dart:collection' show IterableMixin;
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
import 'dart:ui' show Vertices;
|
import 'dart:ui' show Vertices;
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
// A generic widget for a list of selectable colors.
|
// A generic widget for a list of selectable colors.
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'transformations_demo_board.dart';
|
import 'transformations_demo_board.dart';
|
||||||
import 'transformations_demo_color_picker.dart';
|
import 'transformations_demo_color_picker.dart';
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:vector_math/vector_math_64.dart' show Vector3;
|
import 'package:vector_math/vector_math_64.dart' show Vector3;
|
||||||
import 'transformations_demo_inertial_motion.dart';
|
import 'transformations_demo_inertial_motion.dart';
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:vector_math/vector_math.dart' show Vector2;
|
import 'package:vector_math/vector_math.dart' show Vector2;
|
||||||
|
|||||||
@@ -131,6 +131,14 @@ List<GalleryDemo> _buildGalleryDemos() {
|
|||||||
routeName: TransformationsDemo.routeName,
|
routeName: TransformationsDemo.routeName,
|
||||||
buildRoute: (BuildContext context) => const TransformationsDemo(),
|
buildRoute: (BuildContext context) => const TransformationsDemo(),
|
||||||
),
|
),
|
||||||
|
GalleryDemo(
|
||||||
|
title: 'Pesto',
|
||||||
|
subtitle: 'Simple recipe browser',
|
||||||
|
icon: Icons.adjust,
|
||||||
|
category: _kDemos,
|
||||||
|
routeName: PestoDemo.routeName,
|
||||||
|
buildRoute: (BuildContext context) => const PestoDemo(),
|
||||||
|
),
|
||||||
|
|
||||||
// Style
|
// Style
|
||||||
GalleryDemo(
|
GalleryDemo(
|
||||||
@@ -555,23 +563,6 @@ List<GalleryDemo> _buildGalleryDemos() {
|
|||||||
buildRoute: (BuildContext context) => const VideoDemo(),
|
buildRoute: (BuildContext context) => const VideoDemo(),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
// Keep Pesto around for its regression test value. It is not included
|
|
||||||
// in (release builds) the performance tests.
|
|
||||||
assert(() {
|
|
||||||
galleryDemos.insert(0,
|
|
||||||
GalleryDemo(
|
|
||||||
title: 'Pesto',
|
|
||||||
subtitle: 'Simple recipe browser',
|
|
||||||
icon: Icons.adjust,
|
|
||||||
category: _kDemos,
|
|
||||||
routeName: PestoDemo.routeName,
|
|
||||||
buildRoute: (BuildContext context) => const PestoDemo(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return true;
|
|
||||||
}());
|
|
||||||
|
|
||||||
return galleryDemos;
|
return galleryDemos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ packages:
|
|||||||
name: analyzer
|
name: analyzer
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.36.4"
|
version: "0.38.5"
|
||||||
archive:
|
archive:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: archive
|
name: archive
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.10"
|
version: "2.0.11"
|
||||||
args:
|
args:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -28,7 +28,7 @@ packages:
|
|||||||
name: async
|
name: async
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.4.0"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -56,7 +56,7 @@ packages:
|
|||||||
name: connectivity
|
name: connectivity
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.5+1"
|
version: "0.4.5+3"
|
||||||
convert:
|
convert:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -64,6 +64,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.1"
|
version: "2.1.1"
|
||||||
|
coverage:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: coverage
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.13.3+1"
|
||||||
crypto:
|
crypto:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -91,7 +98,7 @@ packages:
|
|||||||
name: device_info
|
name: device_info
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.1"
|
version: "0.4.1+1"
|
||||||
file:
|
file:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -139,7 +146,7 @@ packages:
|
|||||||
name: front_end
|
name: front_end
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.19"
|
version: "0.1.27"
|
||||||
fuchsia_remote_debug_protocol:
|
fuchsia_remote_debug_protocol:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
@@ -221,21 +228,28 @@ packages:
|
|||||||
name: kernel
|
name: kernel
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.19"
|
version: "0.3.27"
|
||||||
|
logging:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: logging
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.11.3+2"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.5"
|
version: "0.12.6"
|
||||||
meta:
|
meta:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
mime:
|
mime:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -443,21 +457,21 @@ packages:
|
|||||||
name: test
|
name: test
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.3"
|
version: "1.9.4"
|
||||||
test_api:
|
test_api:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.5"
|
version: "0.2.11"
|
||||||
test_core:
|
test_core:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: test_core
|
name: test_core
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.5"
|
version: "0.2.15"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -471,7 +485,14 @@ packages:
|
|||||||
name: url_launcher
|
name: url_launcher
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.2.3"
|
version: "5.2.5"
|
||||||
|
url_launcher_platform_interface:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: url_launcher_platform_interface
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.1"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -486,6 +507,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.10.2+5"
|
version: "0.10.2+5"
|
||||||
|
vm_service:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: vm_service
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.2.0"
|
||||||
vm_service_client:
|
vm_service_client:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ dependencies:
|
|||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
collection: 1.14.11
|
collection: 1.14.11
|
||||||
device_info: 0.4.1
|
device_info: 0.4.1+1
|
||||||
intl: 0.16.0
|
intl: 0.16.0
|
||||||
connectivity: 0.4.5+1
|
connectivity: 0.4.5+3
|
||||||
string_scanner: 1.0.5
|
string_scanner: 1.0.5
|
||||||
url_launcher: 5.2.3
|
url_launcher: 5.2.5
|
||||||
cupertino_icons: 0.1.2
|
cupertino_icons: 0.1.2
|
||||||
video_player: 0.10.2+5
|
video_player: 0.10.2+5
|
||||||
scoped_model: 1.0.1
|
scoped_model: 1.0.1
|
||||||
@@ -22,11 +22,12 @@ dependencies:
|
|||||||
flutter_gallery_assets: 0.1.9+2
|
flutter_gallery_assets: 0.1.9+2
|
||||||
|
|
||||||
charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
meta: 1.1.7 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
meta: 1.1.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
path: 1.6.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
path: 1.6.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
source_span: 1.5.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
source_span: 1.5.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
|
url_launcher_platform_interface: 1.0.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
vector_math: 2.0.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
vector_math: 2.0.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
@@ -36,18 +37,19 @@ dev_dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
flutter_goldens:
|
flutter_goldens:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
test: 1.6.3
|
test: 1.9.4
|
||||||
|
|
||||||
analyzer: 0.36.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
analyzer: 0.38.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
archive: 2.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
archive: 2.0.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
async: 2.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
async: 2.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
boolean_selector: 1.0.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
boolean_selector: 1.0.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
convert: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
convert: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
|
coverage: 0.13.3+1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
crypto: 2.1.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
crypto: 2.1.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
csslib: 0.16.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
csslib: 0.16.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
file: 5.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
file: 5.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
front_end: 0.1.19 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
front_end: 0.1.27 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
glob: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
glob: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
html: 0.14.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
html: 0.14.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
http: 0.12.0+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
http: 0.12.0+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
@@ -57,8 +59,9 @@ dev_dependencies:
|
|||||||
io: 0.3.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
io: 0.3.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
js: 0.6.1+1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
js: 0.6.1+1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
json_rpc_2: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
json_rpc_2: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
kernel: 0.3.19 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
kernel: 0.3.27 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
matcher: 0.12.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
logging: 0.11.3+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
|
matcher: 0.12.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
mime: 0.9.6+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
mime: 0.9.6+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
multi_server_socket: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
multi_server_socket: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
node_interop: 1.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
node_interop: 1.0.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
@@ -81,8 +84,9 @@ dev_dependencies:
|
|||||||
source_maps: 0.10.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
source_maps: 0.10.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
stack_trace: 1.9.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
stack_trace: 1.9.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
stream_channel: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
stream_channel: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
test_api: 0.2.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
test_api: 0.2.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
test_core: 0.2.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
test_core: 0.2.15 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
|
vm_service: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
vm_service_client: 0.2.6+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
vm_service_client: 0.2.6+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
watcher: 0.9.7+12 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
watcher: 0.9.7+12 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
web_socket_channel: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
web_socket_channel: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
|
||||||
@@ -260,7 +264,7 @@ flutter:
|
|||||||
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Italic.ttf
|
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Italic.ttf
|
||||||
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf
|
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf
|
||||||
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf
|
- asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf
|
||||||
# TODO (ryjohn): Find a way to get Cupertino fonts working
|
# Work around missing Cupertino fonts by using GoogleSans instead.
|
||||||
- family: .SF Pro Text
|
- family: .SF Pro Text
|
||||||
fonts:
|
fonts:
|
||||||
- asset: packages/flutter_gallery_assets/fonts/private/googlesans/GoogleSans-BoldItalic.ttf
|
- asset: packages/flutter_gallery_assets/fonts/private/googlesans/GoogleSans-BoldItalic.ttf
|
||||||
@@ -330,5 +334,4 @@ flutter:
|
|||||||
- asset: packages/flutter_gallery_assets/fonts/private/googlesans/GoogleSansDisplay-Regular.ttf
|
- asset: packages/flutter_gallery_assets/fonts/private/googlesans/GoogleSansDisplay-Regular.ttf
|
||||||
weight: 400
|
weight: 400
|
||||||
|
|
||||||
|
# PUBSPEC CHECKSUM: 1e1b
|
||||||
# PUBSPEC CHECKSUM: 76b5
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ packages:
|
|||||||
name: archive
|
name: archive
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.10"
|
version: "2.0.11"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -28,7 +28,7 @@ packages:
|
|||||||
name: async
|
name: async
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.4.0"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -57,6 +57,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.1"
|
version: "2.1.1"
|
||||||
|
coverage:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: coverage
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.13.3+1"
|
||||||
crypto:
|
crypto:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -144,13 +151,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.1+1"
|
version: "0.6.1+1"
|
||||||
json_rpc_2:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: json_rpc_2
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.1.0"
|
|
||||||
kernel:
|
kernel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -158,20 +158,27 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.19"
|
version: "0.3.19"
|
||||||
|
logging:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: logging
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.11.3+2"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.5"
|
version: "0.12.6"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -337,21 +344,21 @@ packages:
|
|||||||
name: test
|
name: test
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.3"
|
version: "1.9.4"
|
||||||
test_api:
|
test_api:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.5"
|
version: "0.2.11"
|
||||||
test_core:
|
test_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_core
|
name: test_core
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.5"
|
version: "0.2.15"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -366,13 +373,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.8"
|
version: "2.0.8"
|
||||||
vm_service_client:
|
vm_service:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service_client
|
name: vm_service
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.6+3"
|
version: "2.1.1"
|
||||||
watcher:
|
watcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ packages:
|
|||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.7"
|
version: "1.1.8"
|
||||||
redux:
|
redux:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|||||||
Reference in New Issue
Block a user