Unverified Commit c9954f10 authored by Chris Bracken's avatar Chris Bracken Committed by GitHub

Gallery demos: reordered and retitled (#17220) (#17273)

parent c8908ff0
...@@ -177,6 +177,25 @@ class _DemoItem extends StatelessWidget { ...@@ -177,6 +177,25 @@ class _DemoItem extends StatelessWidget {
final bool isDark = theme.brightness == Brightness.dark; final bool isDark = theme.brightness == Brightness.dark;
final double textScaleFactor = MediaQuery.of(context)?.textScaleFactor ?? 1.0; final double textScaleFactor = MediaQuery.of(context)?.textScaleFactor ?? 1.0;
final List<Widget> titleChildren = <Widget>[
new Text(
demo.title,
style: theme.textTheme.subhead.copyWith(
color: isDark ? Colors.white : const Color(0xFF202124),
),
),
];
if (demo.subtitle != null) {
titleChildren.add(
new Text(
demo.subtitle,
style: theme.textTheme.body1.copyWith(
color: isDark ? Colors.white : const Color(0xFF60646B)
),
),
);
}
return new RawMaterialButton( return new RawMaterialButton(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
splashColor: theme.primaryColor.withOpacity(0.12), splashColor: theme.primaryColor.withOpacity(0.12),
...@@ -202,19 +221,7 @@ class _DemoItem extends StatelessWidget { ...@@ -202,19 +221,7 @@ class _DemoItem extends StatelessWidget {
child: new Column( child: new Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[ children: titleChildren,
new Text(
demo.title,
style: theme.textTheme.subhead.copyWith(
color: isDark ? Colors.white : const Color(0xFF202124),
),
),
new Text(
demo.subtitle,
style: theme.textTheme.body1.copyWith(
color: isDark ? Colors.white : const Color(0xFF60646B)),
),
],
), ),
), ),
const SizedBox(width: 44.0), const SizedBox(width: 44.0),
......
...@@ -21,28 +21,32 @@ const FileSystem _fs = const LocalFileSystem(); ...@@ -21,28 +21,32 @@ const FileSystem _fs = const LocalFileSystem();
// --trace-startup, as we do in this test, the VM stores trace events in an // --trace-startup, as we do in this test, the VM stores trace events in an
// endless buffer instead of a ring buffer. // endless buffer instead of a ring buffer.
// //
// These names must match GalleryItem titles from kAllGalleryItems // These names must match GalleryItem titles from kAllGalleryDemos
// in examples/flutter_gallery/lib/gallery.item.dart // in examples/flutter_gallery/lib/gallery/demos.dart
const List<String> kProfiledDemos = const <String>[ const List<String> kProfiledDemos = const <String>[
'Shrine', 'Shrine@Vignettes',
'Contact profile', 'Contact profile@Vignettes',
'Animation', 'Animation@Vignettes',
'Bottom navigation', 'Bottom navigation@Material',
'Buttons', 'Buttons@Material',
'Cards', 'Cards@Material',
'Chips', 'Chips@Material',
'Date and time pickers', 'Dialogs@Material',
'Dialog', 'Pickers@Material',
]; ];
// Demos that will be backed out of within FlutterDriver.runUnsynchronized(); // Demos that will be backed out of within FlutterDriver.runUnsynchronized();
// //
// These names must match GalleryItem titles from kAllGalleryItems // These names must match GalleryItem titles from kAllGalleryDemos
// in examples/flutter_gallery/lib/gallery.item.dart // in examples/flutter_gallery/lib/gallery/demos.dart
const List<String> kUnsynchronizedDemos = const <String>[ const List<String> kUnsynchronizedDemos = const <String>[
'Progress indicators', 'Progress indicators@Material',
'Activity Indicator', 'Activity Indicator@Cupertino',
'Video', 'Video@Media',
];
const List<String> kSkippedDemos = const <String>[
'Pull to refresh@Cupertino', // The back button lacks a tooltip.
]; ];
// All of the gallery demos, identified as "title@category". // All of the gallery demos, identified as "title@category".
...@@ -124,9 +128,12 @@ Future<Null> runDemos(List<String> demos, FlutterDriver driver) async { ...@@ -124,9 +128,12 @@ Future<Null> runDemos(List<String> demos, FlutterDriver driver) async {
String currentDemoCategory; String currentDemoCategory;
for (String demo in demos) { for (String demo in demos) {
final String demoAtCategory = _allDemos.firstWhere((String s) => s.startsWith(demo)); if (kSkippedDemos.contains(demo))
final String demoCategory = demoAtCategory.substring(demoAtCategory.indexOf('@') + 1); continue;
print('> $demoAtCategory');
final String demoName = demo.substring(0, demo.indexOf('@'));
final String demoCategory = demo.substring(demo.indexOf('@') + 1);
print('> $demo');
if (currentDemoCategory == null) { if (currentDemoCategory == null) {
await driver.tap(find.text(demoCategory)); await driver.tap(find.text(demoCategory));
...@@ -138,7 +145,7 @@ Future<Null> runDemos(List<String> demos, FlutterDriver driver) async { ...@@ -138,7 +145,7 @@ Future<Null> runDemos(List<String> demos, FlutterDriver driver) async {
} }
currentDemoCategory = demoCategory; currentDemoCategory = demoCategory;
final SerializableFinder demoItem = find.text(demo); final SerializableFinder demoItem = find.text(demoName);
await driver.scrollUntilVisible(demoList, demoItem, dyScroll: -48.0, alignment: 0.5); await driver.scrollUntilVisible(demoList, demoItem, dyScroll: -48.0, alignment: 0.5);
for (int i = 0; i < 2; i += 1) { for (int i = 0; i < 2; i += 1) {
...@@ -204,8 +211,7 @@ void main([List<String> args = const <String>[]]) { ...@@ -204,8 +211,7 @@ void main([List<String> args = const <String>[]]) {
await saveDurationsHistogram(timeline.json['traceEvents'], histogramPath); await saveDurationsHistogram(timeline.json['traceEvents'], histogramPath);
// Execute the remaining tests. // Execute the remaining tests.
final List<String> allDemoNames = _allDemos.map((String s) => s.substring(0, s.indexOf('@'))); final Set<String> unprofiledDemos = new Set<String>.from(_allDemos)..removeAll(kProfiledDemos);
final Set<String> unprofiledDemos = new Set<String>.from(allDemoNames)..removeAll(kProfiledDemos);
await runDemos(unprofiledDemos.toList(), driver); await runDemos(unprofiledDemos.toList(), driver);
}, timeout: const Timeout(const Duration(minutes: 5))); }, timeout: const Timeout(const Duration(minutes: 5)));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment