Added Material Banner demo and Material Card demo (#238)

* Fix apk release issue

* Removed TODO

* Removed TODO

* Added chip demo

* Added card demo

* Added Material Card demo and Material Banner Demo

* Updated license for demos

* Merge with master

* Fixing issues

* Banner demo issues fixed

* Fixed all issues

* Updated code samples

* Added images to card demo

* Fixed issues

* Updated code segment

* Fixed issues

* Removed unused variable

* Formatted

* Updated code segments
pull/248/head
Jose Alba 5 years ago committed by GitHub
parent 9630222230
commit c2f639c519
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

File diff suppressed because it is too large Load Diff

@ -18,10 +18,12 @@ import 'package:gallery/demos/cupertino/cupertino_slider_demo.dart';
import 'package:gallery/demos/cupertino/cupertino_switch_demo.dart'; import 'package:gallery/demos/cupertino/cupertino_switch_demo.dart';
import 'package:gallery/demos/cupertino/cupertino_tab_bar_demo.dart'; import 'package:gallery/demos/cupertino/cupertino_tab_bar_demo.dart';
import 'package:gallery/demos/cupertino/cupertino_text_field_demo.dart'; import 'package:gallery/demos/cupertino/cupertino_text_field_demo.dart';
import 'package:gallery/demos/material/banner_demo.dart';
import 'package:gallery/demos/material/bottom_app_bar_demo.dart'; import 'package:gallery/demos/material/bottom_app_bar_demo.dart';
import 'package:gallery/demos/material/bottom_navigation_demo.dart'; import 'package:gallery/demos/material/bottom_navigation_demo.dart';
import 'package:gallery/demos/material/bottom_sheet_demo.dart'; import 'package:gallery/demos/material/bottom_sheet_demo.dart';
import 'package:gallery/demos/material/button_demo.dart'; import 'package:gallery/demos/material/button_demo.dart';
import 'package:gallery/demos/material/cards_demo.dart';
import 'package:gallery/demos/material/chip_demo.dart'; import 'package:gallery/demos/material/chip_demo.dart';
import 'package:gallery/demos/material/dialog_demo.dart'; import 'package:gallery/demos/material/dialog_demo.dart';
import 'package:gallery/demos/material/grid_list_demo.dart'; import 'package:gallery/demos/material/grid_list_demo.dart';
@ -76,6 +78,21 @@ class GalleryDemoConfiguration {
List<GalleryDemo> materialDemos(BuildContext context) { List<GalleryDemo> materialDemos(BuildContext context) {
final localizations = GalleryLocalizations.of(context); final localizations = GalleryLocalizations.of(context);
return [ return [
GalleryDemo(
title: localizations.demoBannerTitle,
icon: GalleryIcons.listsLeaveBehind,
subtitle: localizations.demoBannerSubtitle,
configurations: [
GalleryDemoConfiguration(
title: localizations.demoBannerTitle,
description: localizations.demoBannerDescription,
documentationUrl:
'https://api.flutter.dev/flutter/material/MaterialBanner-class.html',
buildRoute: (_) => BannerDemo(),
code: CodeSegments.bannerDemo,
),
],
),
GalleryDemo( GalleryDemo(
title: localizations.demoBottomAppBarTitle, title: localizations.demoBottomAppBarTitle,
icon: GalleryIcons.bottomAppBar, icon: GalleryIcons.bottomAppBar,
@ -184,6 +201,21 @@ List<GalleryDemo> materialDemos(BuildContext context) {
), ),
], ],
), ),
GalleryDemo(
title: GalleryLocalizations.of(context).demoCardTitle,
icon: GalleryIcons.cards,
subtitle: GalleryLocalizations.of(context).demoCardSubtitle,
configurations: [
GalleryDemoConfiguration(
title: GalleryLocalizations.of(context).demoCardTitle,
description: GalleryLocalizations.of(context).demoCardDescription,
documentationUrl:
'https://api.flutter.dev/flutter/material/Card-class.html',
buildRoute: (context) => CardsDemo(),
code: CodeSegments.cardsDemo,
),
],
),
GalleryDemo( GalleryDemo(
title: localizations.demoChipTitle, title: localizations.demoChipTitle,
icon: GalleryIcons.chips, icon: GalleryIcons.chips,

@ -0,0 +1,123 @@
// Copyright 2020 The Flutter team. 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:gallery/l10n/gallery_localizations.dart';
// BEGIN bannerDemo
enum BannerDemoAction {
reset,
showMultipleActions,
showLeading,
}
class BannerDemo extends StatefulWidget {
@override
_BannerDemoState createState() => _BannerDemoState();
}
class _BannerDemoState extends State<BannerDemo> {
static const _itemCount = 20;
var _displayBanner = true;
var _showMultipleActions = true;
var _showLeading = true;
void handleDemoAction(BannerDemoAction action) {
setState(() {
switch (action) {
case BannerDemoAction.reset:
_displayBanner = true;
_showMultipleActions = true;
_showLeading = true;
break;
case BannerDemoAction.showMultipleActions:
_showMultipleActions = !_showMultipleActions;
break;
case BannerDemoAction.showLeading:
_showLeading = !_showLeading;
break;
}
});
}
@override
Widget build(BuildContext context) {
final banner = MaterialBanner(
content: Text(GalleryLocalizations.of(context).bannerDemoText),
leading: _showLeading
? CircleAvatar(
child: Icon(Icons.access_alarm),
backgroundColor: Theme.of(context).colorScheme.primary,
)
: null,
actions: [
FlatButton(
child: Text(GalleryLocalizations.of(context).signIn),
onPressed: () {
setState(() {
_displayBanner = false;
});
},
),
if (_showMultipleActions)
FlatButton(
child: Text(GalleryLocalizations.of(context).dismiss),
onPressed: () {
setState(() {
_displayBanner = false;
});
},
),
],
);
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
title: Text(GalleryLocalizations.of(context).demoBannerTitle),
actions: [
PopupMenuButton<BannerDemoAction>(
onSelected: handleDemoAction,
itemBuilder: (context) => <PopupMenuEntry<BannerDemoAction>>[
PopupMenuItem<BannerDemoAction>(
value: BannerDemoAction.reset,
child:
Text(GalleryLocalizations.of(context).bannerDemoResetText),
),
const PopupMenuDivider(),
CheckedPopupMenuItem<BannerDemoAction>(
value: BannerDemoAction.showMultipleActions,
checked: _showMultipleActions,
child: Text(
GalleryLocalizations.of(context).bannerDemoMultipleText),
),
CheckedPopupMenuItem<BannerDemoAction>(
value: BannerDemoAction.showLeading,
checked: _showLeading,
child: Text(
GalleryLocalizations.of(context).bannerDemoLeadingText),
),
],
),
],
),
body: ListView.builder(
itemCount: _displayBanner ? _itemCount + 1 : _itemCount,
itemBuilder: (context, index) {
if (index == 0 && _displayBanner) {
return banner;
}
return ListTile(
title: Text(
GalleryLocalizations.of(context)
.starterAppDrawerItem(_displayBanner ? index : index + 1),
),
);
}),
);
}
}
// END

@ -0,0 +1,411 @@
// Copyright 2020 The Flutter team. 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/foundation.dart';
import 'package:flutter/material.dart';
import 'package:gallery/l10n/gallery_localizations.dart';
const String _kGalleryAssetsPackage = 'flutter_gallery_assets';
// BEGIN cardsDemo
enum CardDemoType {
standard,
tappable,
selectable,
}
class TravelDestination {
const TravelDestination({
@required this.assetName,
@required this.assetPackage,
@required this.title,
@required this.description,
@required this.city,
@required this.location,
this.type = CardDemoType.standard,
}) : assert(assetName != null),
assert(assetPackage != null),
assert(title != null),
assert(description != null),
assert(city != null),
assert(location != null);
final String assetName;
final String assetPackage;
final String title;
final String description;
final String city;
final String location;
final CardDemoType type;
}
List<TravelDestination> destinations(BuildContext context) => [
TravelDestination(
assetName: 'places/india_thanjavur_market.png',
assetPackage: _kGalleryAssetsPackage,
title:
GalleryLocalizations.of(context).cardsDemoTravelDestinationTitle1,
description: GalleryLocalizations.of(context)
.cardsDemoTravelDestinationDescription1,
city: GalleryLocalizations.of(context).cardsDemoTravelDestinationCity1,
location: GalleryLocalizations.of(context)
.cardsDemoTravelDestinationLocation1,
),
TravelDestination(
assetName: 'places/india_chettinad_silk_maker.png',
assetPackage: _kGalleryAssetsPackage,
title:
GalleryLocalizations.of(context).cardsDemoTravelDestinationTitle2,
description: GalleryLocalizations.of(context)
.cardsDemoTravelDestinationDescription2,
city: GalleryLocalizations.of(context).cardsDemoTravelDestinationCity2,
location: GalleryLocalizations.of(context)
.cardsDemoTravelDestinationLocation2,
type: CardDemoType.tappable,
),
TravelDestination(
assetName: 'places/india_tanjore_thanjavur_temple.png',
assetPackage: _kGalleryAssetsPackage,
title:
GalleryLocalizations.of(context).cardsDemoTravelDestinationTitle3,
description: GalleryLocalizations.of(context)
.cardsDemoTravelDestinationDescription3,
city: GalleryLocalizations.of(context).cardsDemoTravelDestinationCity1,
location: GalleryLocalizations.of(context)
.cardsDemoTravelDestinationLocation1,
type: CardDemoType.selectable,
),
];
class TravelDestinationItem extends StatelessWidget {
const TravelDestinationItem({Key key, @required this.destination, this.shape})
: assert(destination != null),
super(key: key);
// This height will allow for all the Card's content to fit comfortably within the card.
static const height = 338.0;
final TravelDestination destination;
final ShapeBorder shape;
@override
Widget build(BuildContext context) {
return SafeArea(
top: false,
bottom: false,
child: Padding(
padding: const EdgeInsets.all(8),
child: Column(
children: [
SectionTitle(
title:
GalleryLocalizations.of(context).settingsTextScalingNormal),
SizedBox(
height: height,
child: Card(
// This ensures that the Card's children are clipped correctly.
clipBehavior: Clip.antiAlias,
shape: shape,
child: TravelDestinationContent(destination: destination),
),
),
],
),
),
);
}
}
class TappableTravelDestinationItem extends StatelessWidget {
const TappableTravelDestinationItem(
{Key key, @required this.destination, this.shape})
: assert(destination != null),
super(key: key);
// This height will allow for all the Card's content to fit comfortably within the card.
static const height = 298.0;
final TravelDestination destination;
final ShapeBorder shape;
@override
Widget build(BuildContext context) {
return SafeArea(
top: false,
bottom: false,
child: Padding(
padding: const EdgeInsets.all(8),
child: Column(
children: [
SectionTitle(
title: GalleryLocalizations.of(context).cardsDemoTappable),
SizedBox(
height: height,
child: Card(
// This ensures that the Card's children (including the ink splash) are clipped correctly.
clipBehavior: Clip.antiAlias,
shape: shape,
child: InkWell(
onTap: () {
print('Card was tapped');
},
// Generally, material cards use onSurface with 12% opacity for the pressed state.
splashColor:
Theme.of(context).colorScheme.onSurface.withOpacity(0.12),
// Generally, material cards do not have a highlight overlay.
highlightColor: Colors.transparent,
child: TravelDestinationContent(destination: destination),
),
),
),
],
),
),
);
}
}
class SelectableTravelDestinationItem extends StatefulWidget {
const SelectableTravelDestinationItem(
{Key key, @required this.destination, this.shape})
: assert(destination != null),
super(key: key);
final TravelDestination destination;
final ShapeBorder shape;
@override
_SelectableTravelDestinationItemState createState() =>
_SelectableTravelDestinationItemState();
}
class _SelectableTravelDestinationItemState
extends State<SelectableTravelDestinationItem> {
// This height will allow for all the Card's content to fit comfortably within the card.
static const height = 298.0;
var _isSelected = false;
@override
Widget build(BuildContext context) {
final ColorScheme colorScheme = Theme.of(context).colorScheme;
return SafeArea(
top: false,
bottom: false,
child: Padding(
padding: const EdgeInsets.all(8),
child: Column(
children: [
SectionTitle(
title: GalleryLocalizations.of(context).cardsDemoSelectable),
SizedBox(
height: height,
child: Card(
// This ensures that the Card's children (including the ink splash) are clipped correctly.
clipBehavior: Clip.antiAlias,
shape: widget.shape,
child: InkWell(
onLongPress: () {
print('Selectable card state changed');
setState(() {
_isSelected = !_isSelected;
});
},
// Generally, material cards use onSurface with 12% opacity for the pressed state.
splashColor: colorScheme.onSurface.withOpacity(0.12),
// Generally, material cards do not have a highlight overlay.
highlightColor: Colors.transparent,
child: Stack(
children: [
Container(
color: _isSelected
// Generally, material cards use primary with 8% opacity for the selected state.
// See: https://material.io/design/interaction/states.html#anatomy
? colorScheme.primary.withOpacity(0.08)
: Colors.transparent,
),
TravelDestinationContent(destination: widget.destination),
Align(
alignment: Alignment.topRight,
child: Padding(
padding: const EdgeInsets.all(8),
child: Icon(
Icons.check_circle,
color: _isSelected
? colorScheme.primary
: Colors.transparent,
),
),
),
],
),
),
),
),
],
),
),
);
}
}
class SectionTitle extends StatelessWidget {
const SectionTitle({
Key key,
this.title,
}) : super(key: key);
final String title;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.fromLTRB(4, 4, 4, 12),
child: Align(
alignment: Alignment.centerLeft,
child: Text(title, style: Theme.of(context).textTheme.subhead),
),
);
}
}
class TravelDestinationContent extends StatelessWidget {
const TravelDestinationContent({Key key, @required this.destination})
: assert(destination != null),
super(key: key);
final TravelDestination destination;
@override
Widget build(BuildContext context) {
final ThemeData theme = Theme.of(context);
final TextStyle titleStyle =
theme.textTheme.headline.copyWith(color: Colors.white);
final TextStyle descriptionStyle = theme.textTheme.subhead;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: 184,
child: Stack(
children: [
Positioned.fill(
// In order to have the ink splash appear above the image, you
// must use Ink.image. This allows the image to be painted as
// part of the Material and display ink effects above it. Using
// a standard Image will obscure the ink splash.
child: Ink.image(
image: AssetImage(destination.assetName,
package: destination.assetPackage),
fit: BoxFit.cover,
child: Container(),
),
),
Positioned(
bottom: 16,
left: 16,
right: 16,
child: FittedBox(
fit: BoxFit.scaleDown,
alignment: Alignment.centerLeft,
child: Text(
destination.title,
style: titleStyle,
),
),
),
],
),
),
// Description and share/explore buttons.
Padding(
padding: const EdgeInsets.fromLTRB(16, 16, 16, 0),
child: DefaultTextStyle(
softWrap: false,
overflow: TextOverflow.ellipsis,
style: descriptionStyle,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// This array contains the three line description on each card
// demo.
Padding(
padding: const EdgeInsets.only(bottom: 8),
child: Text(
destination.description,
style: descriptionStyle.copyWith(color: Colors.black54),
),
),
Text(destination.city),
Text(destination.location),
],
),
),
),
if (destination.type == CardDemoType.standard)
// share, explore buttons
ButtonBar(
alignment: MainAxisAlignment.start,
children: [
FlatButton(
child: Text(GalleryLocalizations.of(context).demoMenuShare,
semanticsLabel: GalleryLocalizations.of(context)
.cardsDemoShareSemantics(destination.title)),
textColor: Colors.amber.shade500,
onPressed: () {
print('pressed');
},
),
FlatButton(
child: Text(GalleryLocalizations.of(context).cardsDemoExplore,
semanticsLabel: GalleryLocalizations.of(context)
.cardsDemoExploreSemantics(destination.title)),
textColor: Colors.amber.shade500,
onPressed: () {
print('pressed');
},
),
],
),
],
);
}
}
class CardsDemo extends StatefulWidget {
@override
_CardsDemoState createState() => _CardsDemoState();
}
class _CardsDemoState extends State<CardsDemo> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
title: Text(GalleryLocalizations.of(context).demoCardTitle),
),
body: Scrollbar(
child: ListView(
padding: const EdgeInsets.only(top: 8, left: 8, right: 8),
children: [
for (final destination in destinations(context))
Container(
margin: const EdgeInsets.only(bottom: 8),
child: (destination.type == CardDemoType.standard)
? TravelDestinationItem(destination: destination)
: destination.type == CardDemoType.tappable
? TappableTravelDestinationItem(
destination: destination)
: SelectableTravelDestinationItem(
destination: destination),
),
],
),
),
);
}
}
// END

@ -3,8 +3,7 @@
// found in the LICENSE file. // found in the LICENSE file.
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gallery/l10n/gallery_localizations.dart';
import '../../l10n/gallery_localizations.dart';
enum ChipDemoType { enum ChipDemoType {
action, action,

@ -241,6 +241,38 @@ class GalleryLocalizations {
r'Semantic label for back button to exit a study and return to the gallery home page.'); r'Semantic label for back button to exit a study and return to the gallery home page.');
} }
String get bannerDemoLeadingText {
return Intl.message(r'Leading Icon',
locale: _localeName,
name: 'bannerDemoLeadingText',
desc:
r'If user clicks this button the leading icon in the Banner will disappear');
}
String get bannerDemoMultipleText {
return Intl.message(r'Multiple actions',
locale: _localeName,
name: 'bannerDemoMultipleText',
desc:
r'When the user clicks this button the Banner will toggle multiple actions or a single action');
}
String get bannerDemoResetText {
return Intl.message(r'Reset the banner',
locale: _localeName,
name: 'bannerDemoResetText',
desc: r'Show the Banner to the user again.');
}
String get bannerDemoText {
return Intl.message(
r'Your password was updated on your other device. Please sign in again.',
locale: _localeName,
name: 'bannerDemoText',
desc:
r'Password was updated on a different device and the user is required to sign in again');
}
String get bottomAppBarNotch { String get bottomAppBarNotch {
return Intl.message(r'Notch', return Intl.message(r'Notch',
locale: _localeName, locale: _localeName,
@ -347,6 +379,116 @@ class GalleryLocalizations {
desc: r'Tooltip text for a create button.'); desc: r'Tooltip text for a create button.');
} }
String get cardsDemoExplore {
return Intl.message(r'Explore',
locale: _localeName,
name: 'cardsDemoExplore',
desc: r'Click to see more about the content in the cards demo.');
}
String cardsDemoExploreSemantics(Object destinationName) {
return Intl.message(r'Explore $destinationName',
locale: _localeName,
name: 'cardsDemoExploreSemantics',
desc:
r'Semantics label for Explore. Label tells user to explore the destinationName to the user. Example Explore Tamil',
args: <Object>[destinationName]);
}
String get cardsDemoSelectable {
return Intl.message(r'Selectable (long press)',
locale: _localeName,
name: 'cardsDemoSelectable',
desc:
r'If the user taps and hold this card. The card will toggled between on and off.');
}
String cardsDemoShareSemantics(Object destinationName) {
return Intl.message(r'Share $destinationName',
locale: _localeName,
name: 'cardsDemoShareSemantics',
desc:
r'Semantics label for Share. Label tells user to share the destinationName to the user. Example Share Tamil',
args: <Object>[destinationName]);
}
String get cardsDemoTappable {
return Intl.message(r'Tappable',
locale: _localeName,
name: 'cardsDemoTappable',
desc: r'The user can tap this button');
}
String get cardsDemoTravelDestinationCity1 {
return Intl.message(r'Thanjavur',
locale: _localeName,
name: 'cardsDemoTravelDestinationCity1',
desc: r'Thanjavur the city');
}
String get cardsDemoTravelDestinationCity2 {
return Intl.message(r'Chettinad',
locale: _localeName,
name: 'cardsDemoTravelDestinationCity2',
desc: r'Chettinad the city');
}
String get cardsDemoTravelDestinationDescription1 {
return Intl.message(r'Number 10',
locale: _localeName,
name: 'cardsDemoTravelDestinationDescription1',
desc: r'Number 10');
}
String get cardsDemoTravelDestinationDescription2 {
return Intl.message(r'Silk Spinners',
locale: _localeName,
name: 'cardsDemoTravelDestinationDescription2',
desc: r'Silk Spinners');
}
String get cardsDemoTravelDestinationDescription3 {
return Intl.message(r'Temples',
locale: _localeName,
name: 'cardsDemoTravelDestinationDescription3',
desc: r'Temples');
}
String get cardsDemoTravelDestinationLocation1 {
return Intl.message(r'Thanjavur, Tamil Nadu',
locale: _localeName,
name: 'cardsDemoTravelDestinationLocation1',
desc: r'Thanjavur, Tamil Nadu is a location');
}
String get cardsDemoTravelDestinationLocation2 {
return Intl.message(r'Sivaganga, Tamil Nadu',
locale: _localeName,
name: 'cardsDemoTravelDestinationLocation2',
desc: r'Sivaganga, Tamil Nadu is a location');
}
String get cardsDemoTravelDestinationTitle1 {
return Intl.message(r'Top 10 Cities to Visit in Tamil Nadu',
locale: _localeName,
name: 'cardsDemoTravelDestinationTitle1',
desc: r'The top 10 cities that you can visit in Tamil Nadu');
}
String get cardsDemoTravelDestinationTitle2 {
return Intl.message(r'Artisans of Southern India',
locale: _localeName,
name: 'cardsDemoTravelDestinationTitle2',
desc: r'Artist that are from Southern India');
}
String get cardsDemoTravelDestinationTitle3 {
return Intl.message(r'Brihadisvara Temple',
locale: _localeName,
name: 'cardsDemoTravelDestinationTitle3',
desc: r'Brihadisvara Temple');
}
String get chipBiking { String get chipBiking {
return Intl.message(r'Biking', return Intl.message(r'Biking',
locale: _localeName, locale: _localeName,
@ -1280,6 +1422,28 @@ class GalleryLocalizations {
desc: r'Title for the alert dialog with title component demo.'); desc: r'Title for the alert dialog with title component demo.');
} }
String get demoBannerDescription {
return Intl.message(
r'A banner displays an important, succinct message, and provides actions for users to address (or dismiss the banner). A user action is required for it to be dismissed.',
locale: _localeName,
name: 'demoBannerDescription',
desc: r'Description for the material banner component demo.');
}
String get demoBannerSubtitle {
return Intl.message(r'Displaying a banner within a list',
locale: _localeName,
name: 'demoBannerSubtitle',
desc: r'Subtitle for the material banner component demo.');
}
String get demoBannerTitle {
return Intl.message(r'Banner',
locale: _localeName,
name: 'demoBannerTitle',
desc: r'Title for the material banner component demo.');
}
String get demoBottomAppBarDescription { String get demoBottomAppBarDescription {
return Intl.message( return Intl.message(
r'Bottom app bars provide access to a bottom navigation drawer and up to four actions, including the floating action button.', r'Bottom app bars provide access to a bottom navigation drawer and up to four actions, including the floating action button.',
@ -1434,6 +1598,28 @@ class GalleryLocalizations {
desc: r'Title for the material buttons component demo.'); desc: r'Title for the material buttons component demo.');
} }
String get demoCardDescription {
return Intl.message(
r'A card is a sheet of Material used to represent some related information, for example an album, a geographical location, a meal, contact details, etc.',
locale: _localeName,
name: 'demoCardDescription',
desc: r'Description for the material cards component demo.');
}
String get demoCardSubtitle {
return Intl.message(r'Baseline cards with rounded corners',
locale: _localeName,
name: 'demoCardSubtitle',
desc: r'Subtitle for the material cards component demo.');
}
String get demoCardTitle {
return Intl.message(r'Cards',
locale: _localeName,
name: 'demoCardTitle',
desc: r'Title for the material cards component demo.');
}
String get demoChecklistMenuTitle { String get demoChecklistMenuTitle {
return Intl.message(r'Checklist menu', return Intl.message(r'Checklist menu',
locale: _localeName, locale: _localeName,
@ -2921,6 +3107,14 @@ class GalleryLocalizations {
desc: r'Button text to display a dialog.'); desc: r'Button text to display a dialog.');
} }
String get dismiss {
return Intl.message(r'DISMISS',
locale: _localeName,
name: 'dismiss',
desc:
r'When text is pressed the banner widget will be removed from the screen.');
}
String get homeCategoryReference { String get homeCategoryReference {
return Intl.message(r'REFERENCE STYLES & MEDIA', return Intl.message(r'REFERENCE STYLES & MEDIA',
locale: _localeName, locale: _localeName,
@ -4150,6 +4344,13 @@ class GalleryLocalizations {
r'The tooltip text for a settings button. Also used as a semantic label, used by screen readers, such as TalkBack and VoiceOver.'); r'The tooltip text for a settings button. Also used as a semantic label, used by screen readers, such as TalkBack and VoiceOver.');
} }
String get signIn {
return Intl.message(r'SIGN IN',
locale: _localeName,
name: 'signIn',
desc: r'Sign in label to sign into website.');
}
String get starterAppDescription { String get starterAppDescription {
return Intl.message(r'A responsive starter layout', return Intl.message(r'A responsive starter layout',
locale: _localeName, locale: _localeName,

@ -13,10 +13,100 @@
} }
} }
}, },
"signIn": "SIGN IN",
"@signIn": {
"description": "Sign in label to sign into website."
},
"bannerDemoText": "Your password was updated on your other device. Please sign in again.",
"@bannerDemoText": {
"description": "Password was updated on a different device and the user is required to sign in again"
},
"bannerDemoResetText": "Reset the banner",
"@bannerDemoResetText": {
"description": "Show the Banner to the user again."
},
"bannerDemoMultipleText": "Multiple actions",
"@bannerDemoMultipleText": {
"description": "When the user clicks this button the Banner will toggle multiple actions or a single action"
},
"bannerDemoLeadingText": "Leading Icon",
"@bannerDemoLeadingText": {
"description": "If user clicks this button the leading icon in the Banner will disappear"
},
"dismiss": "DISMISS",
"@dismiss": {
"description": "When text is pressed the banner widget will be removed from the screen."
},
"backToGallery": "Back to Gallery", "backToGallery": "Back to Gallery",
"@backToGallery": { "@backToGallery": {
"description": "Semantic label for back button to exit a study and return to the gallery home page." "description": "Semantic label for back button to exit a study and return to the gallery home page."
}, },
"cardsDemoTappable": "Tappable",
"@cardsDemoTappable": {
"description": "The user can tap this button"
},
"cardsDemoSelectable": "Selectable (long press)",
"@cardsDemoSelectable": {
"description": "If the user taps and hold this card. The card will toggled between on and off."
},
"cardsDemoExplore": "Explore",
"@cardsDemoExplore": {
"description": "Click to see more about the content in the cards demo."
},
"cardsDemoExploreSemantics": "Explore {destinationName}",
"@cardsDemoExploreSemantics": {
"description": "Semantics label for Explore. Label tells user to explore the destinationName to the user. Example Explore Tamil",
"placeholders": {
"destinationName": "Tamil"
}
},
"cardsDemoShareSemantics": "Share {destinationName}",
"@cardsDemoShareSemantics": {
"description": "Semantics label for Share. Label tells user to share the destinationName to the user. Example Share Tamil",
"placeholders": {
"destinationName": "Tamil"
}
},
"cardsDemoTravelDestinationTitle1": "Top 10 Cities to Visit in Tamil Nadu",
"@cardsDemoTravelDestinationTitle1": {
"description": "The top 10 cities that you can visit in Tamil Nadu"
},
"cardsDemoTravelDestinationDescription1": "Number 10",
"@cardsDemoTravelDestinationDescription1": {
"description": "Number 10"
},
"cardsDemoTravelDestinationCity1": "Thanjavur",
"@cardsDemoTravelDestinationCity1": {
"description": "Thanjavur the city"
},
"cardsDemoTravelDestinationLocation1": "Thanjavur, Tamil Nadu",
"@cardsDemoTravelDestinationLocation1": {
"description": "Thanjavur, Tamil Nadu is a location"
},
"cardsDemoTravelDestinationTitle2": "Artisans of Southern India",
"@cardsDemoTravelDestinationTitle2": {
"description": "Artist that are from Southern India"
},
"cardsDemoTravelDestinationDescription2": "Silk Spinners",
"@cardsDemoTravelDestinationDescription2": {
"description": "Silk Spinners"
},
"cardsDemoTravelDestinationCity2": "Chettinad",
"@cardsDemoTravelDestinationCity2": {
"description": "Chettinad the city"
},
"cardsDemoTravelDestinationLocation2": "Sivaganga, Tamil Nadu",
"@cardsDemoTravelDestinationLocation2": {
"description": "Sivaganga, Tamil Nadu is a location"
},
"cardsDemoTravelDestinationTitle3": "Brihadisvara Temple",
"@cardsDemoTravelDestinationTitle3": {
"description": "Brihadisvara Temple"
},
"cardsDemoTravelDestinationDescription3": "Temples",
"@cardsDemoTravelDestinationDescription3": {
"description": "Temples"
},
"homeHeaderGallery": "Gallery", "homeHeaderGallery": "Gallery",
"@homeHeaderGallery": { "@homeHeaderGallery": {
"description": "Header title on home screen for Gallery section." "description": "Header title on home screen for Gallery section."
@ -477,6 +567,18 @@
"@bottomAppBarPositionFloatingCenter": { "@bottomAppBarPositionFloatingCenter": {
"description": "A setting for the position of the floating action button in the bottom app bar that places the button above the bar and aligns it in the center." "description": "A setting for the position of the floating action button in the bottom app bar that places the button above the bar and aligns it in the center."
}, },
"demoBannerTitle": "Banner",
"@demoBannerTitle": {
"description": "Title for the material banner component demo."
},
"demoBannerSubtitle": "Displaying a banner within a list",
"@demoBannerSubtitle": {
"description": "Subtitle for the material banner component demo."
},
"demoBannerDescription": "A banner displays an important, succinct message, and provides actions for users to address (or dismiss the banner). A user action is required for it to be dismissed.",
"@demoBannerDescription": {
"description": "Description for the material banner component demo."
},
"demoBottomNavigationTitle": "Bottom navigation", "demoBottomNavigationTitle": "Bottom navigation",
"@demoBottomNavigationTitle": { "@demoBottomNavigationTitle": {
"description": "Title for the material bottom navigation component demo." "description": "Title for the material bottom navigation component demo."
@ -545,10 +647,22 @@
"@demoFloatingButtonDescription": { "@demoFloatingButtonDescription": {
"description": "Description for the floating action button component demo." "description": "Description for the floating action button component demo."
}, },
"demoCardTitle": "Cards",
"@demoCardTitle": {
"description": "Title for the material cards component demo."
},
"demoCardSubtitle": "Baseline cards with rounded corners",
"@demoCardSubtitle": {
"description": "Subtitle for the material cards component demo."
},
"demoChipTitle": "Chips", "demoChipTitle": "Chips",
"@demoChipTitle": { "@demoChipTitle": {
"description": "Title for the material chips component demo." "description": "Title for the material chips component demo."
}, },
"demoCardDescription": "A card is a sheet of Material used to represent some related information, for example an album, a geographical location, a meal, contact details, etc.",
"@demoCardDescription": {
"description": "Description for the material cards component demo."
},
"demoChipSubtitle": "Compact elements that represent an input, attribute, or action", "demoChipSubtitle": "Compact elements that represent an input, attribute, or action",
"@demoChipSubtitle": { "@demoChipSubtitle": {
"description": "Subtitle for the material chips component demo." "description": "Subtitle for the material chips component demo."

@ -13,10 +13,94 @@
name="aboutDialogDescription" name="aboutDialogDescription"
description="A description about how to view the source code for this app." description="A description about how to view the source code for this app."
>To see the source code for this app, please visit the {value}.</string> >To see the source code for this app, please visit the {value}.</string>
<string
name="signIn"
description="Sign in label to sign into website."
>SIGN IN</string>
<string
name="bannerDemoText"
description="Password was updated on a different device and the user is required to sign in again"
>Your password was updated on your other device. Please sign in again.</string>
<string
name="bannerDemoResetText"
description="Show the Banner to the user again."
>Reset the banner</string>
<string
name="bannerDemoMultipleText"
description="When the user clicks this button the Banner will toggle multiple actions or a single action"
>Multiple actions</string>
<string
name="bannerDemoLeadingText"
description="If user clicks this button the leading icon in the Banner will disappear"
>Leading Icon</string>
<string
name="dismiss"
description="When text is pressed the banner widget will be removed from the screen."
>DISMISS</string>
<string <string
name="backToGallery" name="backToGallery"
description="Semantic label for back button to exit a study and return to the gallery home page." description="Semantic label for back button to exit a study and return to the gallery home page."
>Back to Gallery</string> >Back to Gallery</string>
<string
name="cardsDemoTappable"
description="The user can tap this button"
>Tappable</string>
<string
name="cardsDemoSelectable"
description="If the user taps and hold this card. The card will toggled between on and off."
>Selectable (long press)</string>
<string
name="cardsDemoExplore"
description="Click to see more about the content in the cards demo."
>Explore</string>
<string
name="cardsDemoExploreSemantics"
description="Semantics label for Explore. Label tells user to explore the destinationName to the user. Example Explore Tamil"
>Explore {destinationName}</string>
<string
name="cardsDemoShareSemantics"
description="Semantics label for Share. Label tells user to share the destinationName to the user. Example Share Tamil"
>Share {destinationName}</string>
<string
name="cardsDemoTravelDestinationTitle1"
description="The top 10 cities that you can visit in Tamil Nadu"
>Top 10 Cities to Visit in Tamil Nadu</string>
<string
name="cardsDemoTravelDestinationDescription1"
description="Number 10"
>Number 10</string>
<string
name="cardsDemoTravelDestinationCity1"
description="Thanjavur the city"
>Thanjavur</string>
<string
name="cardsDemoTravelDestinationLocation1"
description="Thanjavur, Tamil Nadu is a location"
>Thanjavur, Tamil Nadu</string>
<string
name="cardsDemoTravelDestinationTitle2"
description="Artist that are from Southern India"
>Artisans of Southern India</string>
<string
name="cardsDemoTravelDestinationDescription2"
description="Silk Spinners"
>Silk Spinners</string>
<string
name="cardsDemoTravelDestinationCity2"
description="Chettinad the city"
>Chettinad</string>
<string
name="cardsDemoTravelDestinationLocation2"
description="Sivaganga, Tamil Nadu is a location"
>Sivaganga, Tamil Nadu</string>
<string
name="cardsDemoTravelDestinationTitle3"
description="Brihadisvara Temple"
>Brihadisvara Temple</string>
<string
name="cardsDemoTravelDestinationDescription3"
description="Temples"
>Temples</string>
<string <string
name="homeHeaderGallery" name="homeHeaderGallery"
description="Header title on home screen for Gallery section." description="Header title on home screen for Gallery section."
@ -441,6 +525,18 @@
name="bottomAppBarPositionFloatingCenter" name="bottomAppBarPositionFloatingCenter"
description="A setting for the position of the floating action button in the bottom app bar that places the button above the bar and aligns it in the center." description="A setting for the position of the floating action button in the bottom app bar that places the button above the bar and aligns it in the center."
>Floating - Center</string> >Floating - Center</string>
<string
name="demoBannerTitle"
description="Title for the material banner component demo."
>Banner</string>
<string
name="demoBannerSubtitle"
description="Subtitle for the material banner component demo."
>Displaying a banner within a list</string>
<string
name="demoBannerDescription"
description="Description for the material banner component demo."
>A banner displays an important, succinct message, and provides actions for users to address (or dismiss the banner). A user action is required for it to be dismissed.</string>
<string <string
name="demoBottomNavigationTitle" name="demoBottomNavigationTitle"
description="Title for the material bottom navigation component demo." description="Title for the material bottom navigation component demo."
@ -509,10 +605,22 @@
name="demoFloatingButtonDescription" name="demoFloatingButtonDescription"
description="Description for the floating action button component demo." description="Description for the floating action button component demo."
>A floating action button is a circular icon button that hovers over content to promote a primary action in the application.</string> >A floating action button is a circular icon button that hovers over content to promote a primary action in the application.</string>
<string
name="demoCardTitle"
description="Title for the material cards component demo."
>Cards</string>
<string
name="demoCardSubtitle"
description="Subtitle for the material cards component demo."
>Baseline cards with rounded corners</string>
<string <string
name="demoChipTitle" name="demoChipTitle"
description="Title for the material chips component demo." description="Title for the material chips component demo."
>Chips</string> >Chips</string>
<string
name="demoCardDescription"
description="Description for the material cards component demo."
>A card is a sheet of Material used to represent some related information, for example an album, a geographical location, a meal, contact details, etc.</string>
<string <string
name="demoChipSubtitle" name="demoChipSubtitle"
description="Subtitle for the material chips component demo." description="Subtitle for the material chips component demo."

@ -24,6 +24,10 @@ class MessageLookup extends MessageLookupByLibrary {
static m1(title) => "Placeholder for ${title} tab"; static m1(title) => "Placeholder for ${title} tab";
static m27(destinationName) => "Explore ${destinationName}";
static m28(destinationName) => "Share ${destinationName}";
static m2(totalRestaurants) => static m2(totalRestaurants) =>
"${Intl.plural(totalRestaurants, zero: 'No Restaurants', one: '1 Restaurant', other: '${totalRestaurants} Restaurants')}"; "${Intl.plural(totalRestaurants, zero: 'No Restaurants', one: '1 Restaurant', other: '${totalRestaurants} Restaurants')}";
@ -92,6 +96,14 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Flutter samples Github repo"), MessageLookupByLibrary.simpleMessage("Flutter samples Github repo"),
"backToGallery": "backToGallery":
MessageLookupByLibrary.simpleMessage("Back to Gallery"), MessageLookupByLibrary.simpleMessage("Back to Gallery"),
"bannerDemoLeadingText":
MessageLookupByLibrary.simpleMessage("Leading Icon"),
"bannerDemoMultipleText":
MessageLookupByLibrary.simpleMessage("Multiple actions"),
"bannerDemoResetText":
MessageLookupByLibrary.simpleMessage("Reset the banner"),
"bannerDemoText": MessageLookupByLibrary.simpleMessage(
"Your password was updated on your other device. Please sign in again."),
"bottomAppBarNotch": MessageLookupByLibrary.simpleMessage("Notch"), "bottomAppBarNotch": MessageLookupByLibrary.simpleMessage("Notch"),
"bottomAppBarPosition": MessageLookupByLibrary.simpleMessage( "bottomAppBarPosition": MessageLookupByLibrary.simpleMessage(
"Floating Action Button Position"), "Floating Action Button Position"),
@ -116,6 +128,33 @@ class MessageLookup extends MessageLookupByLibrary {
"bottomNavigationContentPlaceholder": m1, "bottomNavigationContentPlaceholder": m1,
"buttonText": MessageLookupByLibrary.simpleMessage("BUTTON"), "buttonText": MessageLookupByLibrary.simpleMessage("BUTTON"),
"buttonTextCreate": MessageLookupByLibrary.simpleMessage("Create"), "buttonTextCreate": MessageLookupByLibrary.simpleMessage("Create"),
"cardsDemoExplore": MessageLookupByLibrary.simpleMessage("Explore"),
"cardsDemoExploreSemantics": m27,
"cardsDemoSelectable":
MessageLookupByLibrary.simpleMessage("Selectable (long press)"),
"cardsDemoShareSemantics": m28,
"cardsDemoTappable": MessageLookupByLibrary.simpleMessage("Tappable"),
"cardsDemoTravelDestinationCity1":
MessageLookupByLibrary.simpleMessage("Thanjavur"),
"cardsDemoTravelDestinationCity2":
MessageLookupByLibrary.simpleMessage("Chettinad"),
"cardsDemoTravelDestinationDescription1":
MessageLookupByLibrary.simpleMessage("Number 10"),
"cardsDemoTravelDestinationDescription2":
MessageLookupByLibrary.simpleMessage("Silk Spinners"),
"cardsDemoTravelDestinationDescription3":
MessageLookupByLibrary.simpleMessage("Temples"),
"cardsDemoTravelDestinationLocation1":
MessageLookupByLibrary.simpleMessage("Thanjavur, Tamil Nadu"),
"cardsDemoTravelDestinationLocation2":
MessageLookupByLibrary.simpleMessage("Sivaganga, Tamil Nadu"),
"cardsDemoTravelDestinationTitle1":
MessageLookupByLibrary.simpleMessage(
"Top 10 Cities to Visit in Tamil Nadu"),
"cardsDemoTravelDestinationTitle2":
MessageLookupByLibrary.simpleMessage("Artisans of Southern India"),
"cardsDemoTravelDestinationTitle3":
MessageLookupByLibrary.simpleMessage("Brihadisvara Temple"),
"chipBiking": MessageLookupByLibrary.simpleMessage("Biking"), "chipBiking": MessageLookupByLibrary.simpleMessage("Biking"),
"chipElevator": MessageLookupByLibrary.simpleMessage("Elevator"), "chipElevator": MessageLookupByLibrary.simpleMessage("Elevator"),
"chipFireplace": MessageLookupByLibrary.simpleMessage("Fireplace"), "chipFireplace": MessageLookupByLibrary.simpleMessage("Fireplace"),
@ -337,6 +376,11 @@ class MessageLookup extends MessageLookupByLibrary {
"demoAlertDialogTitle": MessageLookupByLibrary.simpleMessage("Alert"), "demoAlertDialogTitle": MessageLookupByLibrary.simpleMessage("Alert"),
"demoAlertTitleDialogTitle": "demoAlertTitleDialogTitle":
MessageLookupByLibrary.simpleMessage("Alert With Title"), MessageLookupByLibrary.simpleMessage("Alert With Title"),
"demoBannerDescription": MessageLookupByLibrary.simpleMessage(
"A banner displays an important, succinct message, and provides actions for users to address (or dismiss the banner). A user action is required for it to be dismissed."),
"demoBannerSubtitle": MessageLookupByLibrary.simpleMessage(
"Displaying a banner within a list"),
"demoBannerTitle": MessageLookupByLibrary.simpleMessage("Banner"),
"demoBottomAppBarDescription": MessageLookupByLibrary.simpleMessage( "demoBottomAppBarDescription": MessageLookupByLibrary.simpleMessage(
"Bottom app bars provide access to a bottom navigation drawer and up to four actions, including the floating action button."), "Bottom app bars provide access to a bottom navigation drawer and up to four actions, including the floating action button."),
"demoBottomAppBarSubtitle": MessageLookupByLibrary.simpleMessage( "demoBottomAppBarSubtitle": MessageLookupByLibrary.simpleMessage(
@ -376,6 +420,11 @@ class MessageLookup extends MessageLookupByLibrary {
"demoButtonSubtitle": MessageLookupByLibrary.simpleMessage( "demoButtonSubtitle": MessageLookupByLibrary.simpleMessage(
"Flat, raised, outline, and more"), "Flat, raised, outline, and more"),
"demoButtonTitle": MessageLookupByLibrary.simpleMessage("Buttons"), "demoButtonTitle": MessageLookupByLibrary.simpleMessage("Buttons"),
"demoCardDescription": MessageLookupByLibrary.simpleMessage(
"A card is a sheet of Material used to represent some related information, for example an album, a geographical location, a meal, contact details, etc."),
"demoCardSubtitle": MessageLookupByLibrary.simpleMessage(
"Baseline cards with rounded corners"),
"demoCardTitle": MessageLookupByLibrary.simpleMessage("Cards"),
"demoChecklistMenuTitle": "demoChecklistMenuTitle":
MessageLookupByLibrary.simpleMessage("Checklist menu"), MessageLookupByLibrary.simpleMessage("Checklist menu"),
"demoChipSubtitle": MessageLookupByLibrary.simpleMessage( "demoChipSubtitle": MessageLookupByLibrary.simpleMessage(
@ -754,6 +803,7 @@ class MessageLookup extends MessageLookupByLibrary {
"dialogSetBackup": "dialogSetBackup":
MessageLookupByLibrary.simpleMessage("Set backup account"), MessageLookupByLibrary.simpleMessage("Set backup account"),
"dialogShow": MessageLookupByLibrary.simpleMessage("SHOW DIALOG"), "dialogShow": MessageLookupByLibrary.simpleMessage("SHOW DIALOG"),
"dismiss": MessageLookupByLibrary.simpleMessage("DISMISS"),
"homeCategoryReference": "homeCategoryReference":
MessageLookupByLibrary.simpleMessage("REFERENCE STYLES & MEDIA"), MessageLookupByLibrary.simpleMessage("REFERENCE STYLES & MEDIA"),
"homeHeaderCategories": "homeHeaderCategories":
@ -1018,6 +1068,7 @@ class MessageLookup extends MessageLookupByLibrary {
"shrineTooltipSearch": MessageLookupByLibrary.simpleMessage("Search"), "shrineTooltipSearch": MessageLookupByLibrary.simpleMessage("Search"),
"shrineTooltipSettings": "shrineTooltipSettings":
MessageLookupByLibrary.simpleMessage("Settings"), MessageLookupByLibrary.simpleMessage("Settings"),
"signIn": MessageLookupByLibrary.simpleMessage("SIGN IN"),
"starterAppDescription": "starterAppDescription":
MessageLookupByLibrary.simpleMessage("A responsive starter layout"), MessageLookupByLibrary.simpleMessage("A responsive starter layout"),
"starterAppDrawerItem": m26, "starterAppDrawerItem": m26,

Loading…
Cancel
Save