diff --git a/gallery/gallery/lib/codeviewer/code_segments.dart b/gallery/gallery/lib/codeviewer/code_segments.dart index bd63cee7c..17b15e37e 100644 --- a/gallery/gallery/lib/codeviewer/code_segments.dart +++ b/gallery/gallery/lib/codeviewer/code_segments.dart @@ -198,6 +198,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'CupertinoNavigationBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a middle'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -2682,7 +2689,14 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'CupertinoNavigationBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: 'middle'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a middle'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'Text'), @@ -2690,7 +2704,9 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: '_title'), TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan(style: codeStyle.baseStyle, text: 'context'), - TextSpan(style: codeStyle.punctuationStyle, text: '))),'), + TextSpan(style: codeStyle.punctuationStyle, text: ')),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -3379,6 +3395,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'CupertinoNavigationBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a middle'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), @@ -4159,6 +4182,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -5813,6 +5843,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -6326,6 +6363,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -9051,18 +9095,66 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'return'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'Scaffold'), + TextSpan(style: codeStyle.classStyle, text: 'Navigator'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Adding [ValueKey] to make sure that the widget gets rebuilt when'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// changing type.'), TextSpan(style: codeStyle.baseStyle, text: '\u000a key'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'ValueKey'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'type'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onGenerateRoute'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'settings'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.classStyle, text: '_NoAnimationMaterialPageRoute'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.punctuationStyle, text: '>('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a builder'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '=>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Scaffold'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a key'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' _scaffoldKey'), TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a appBar'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a appBar'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'Text'), @@ -9071,19 +9163,19 @@ class CodeSegments { TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan(style: codeStyle.baseStyle, text: 'context'), TextSpan(style: codeStyle.punctuationStyle, text: ')),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a body'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a body'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'Center'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'RaisedButton'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'Text'), @@ -9096,13 +9188,14 @@ class CodeSegments { TextSpan(style: codeStyle.punctuationStyle, text: ').'), TextSpan(style: codeStyle.baseStyle, text: 'dialogShow'), TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a onPressed'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onPressed'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.punctuationStyle, text: '()'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.punctuationStyle, text: '{'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'switch'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.punctuationStyle, text: '('), @@ -9110,7 +9203,7 @@ class CodeSegments { TextSpan(style: codeStyle.punctuationStyle, text: ')'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.punctuationStyle, text: '{'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'case'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'DialogDemoType'), @@ -9119,14 +9212,15 @@ class CodeSegments { TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan( style: codeStyle.baseStyle, - text: '\u000a _showAlertDialog'), + text: '\u000a _showAlertDialog'), TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan(style: codeStyle.baseStyle, text: 'context'), TextSpan(style: codeStyle.punctuationStyle, text: ');'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'break'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'case'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'DialogDemoType'), @@ -9135,14 +9229,15 @@ class CodeSegments { TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan( style: codeStyle.baseStyle, - text: '\u000a _showAlertDialogWithTitle'), + text: '\u000a _showAlertDialogWithTitle'), TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan(style: codeStyle.baseStyle, text: 'context'), TextSpan(style: codeStyle.punctuationStyle, text: ');'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'break'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'case'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'DialogDemoType'), @@ -9151,21 +9246,23 @@ class CodeSegments { TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan( style: codeStyle.baseStyle, - text: '\u000a _showSimpleDialog'), + text: '\u000a _showSimpleDialog'), TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan(style: codeStyle.baseStyle, text: 'context'), TextSpan(style: codeStyle.punctuationStyle, text: ');'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'break'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'case'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'DialogDemoType'), TextSpan(style: codeStyle.punctuationStyle, text: '.'), TextSpan(style: codeStyle.baseStyle, text: 'fullscreen'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.classStyle, text: 'Navigator'), TextSpan(style: codeStyle.punctuationStyle, text: '.'), TextSpan(style: codeStyle.baseStyle, text: 'push'), @@ -9173,14 +9270,16 @@ class CodeSegments { TextSpan(style: codeStyle.keywordStyle, text: 'void'), TextSpan(style: codeStyle.punctuationStyle, text: '>('), TextSpan( - style: codeStyle.baseStyle, text: '\u000a context'), + style: codeStyle.baseStyle, + text: '\u000a context'), TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.classStyle, text: 'MaterialPageRoute'), TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan( style: codeStyle.baseStyle, - text: '\u000a builder'), + text: '\u000a builder'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.punctuationStyle, text: '('), @@ -9193,26 +9292,35 @@ class CodeSegments { TextSpan(style: codeStyle.punctuationStyle, text: '(),'), TextSpan( style: codeStyle.baseStyle, - text: '\u000a fullscreenDialog'), + text: '\u000a fullscreenDialog'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.keywordStyle, text: 'true'), TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: ');'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'break'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '}'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '},'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: ');'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), @@ -9220,6 +9328,118 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: '\u000a'), TextSpan(style: codeStyle.punctuationStyle, text: '}'), TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: '/// A MaterialPageRoute without any transition animations.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.classStyle, text: '_NoAnimationMaterialPageRoute'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'T'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'MaterialPageRoute'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'T'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.classStyle, text: '_NoAnimationMaterialPageRoute'), + TextSpan(style: codeStyle.punctuationStyle, text: '({'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'WidgetBuilder'), + TextSpan(style: codeStyle.baseStyle, text: ' builder'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'RouteSettings'), + TextSpan(style: codeStyle.baseStyle, text: ' settings'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' maintainState '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'true'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' fullscreenDialog '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '})'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'super'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a builder'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' builder'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a maintainState'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' maintainState'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a settings'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' settings'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a fullscreenDialog'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fullscreenDialog'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Widget'), + TextSpan(style: codeStyle.baseStyle, text: ' buildTransitions'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BuildContext'), + TextSpan(style: codeStyle.baseStyle, text: ' context'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' animation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' secondaryAnimation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Widget'), + TextSpan(style: codeStyle.baseStyle, text: ' child'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' child'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), TextSpan(style: codeStyle.keywordStyle, text: 'class'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: '_DialogButton'), @@ -13728,6 +13948,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -13883,6 +14110,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -16317,6 +16551,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), @@ -17714,6 +17955,13 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), diff --git a/gallery/gallery/lib/data/demos.dart b/gallery/gallery/lib/data/demos.dart index b9e9060bb..b92322693 100644 --- a/gallery/gallery/lib/data/demos.dart +++ b/gallery/gallery/lib/data/demos.dart @@ -31,7 +31,6 @@ import 'package:gallery/demos/material/text_field_demo.dart'; import 'package:gallery/demos/reference/colors_demo.dart'; import 'package:gallery/demos/reference/typography_demo.dart'; import 'package:gallery/l10n/gallery_localizations.dart'; -import 'package:gallery/pages/demo.dart'; import 'package:gallery/themes/material_demo_theme_data.dart'; class GalleryDemo { @@ -669,35 +668,14 @@ class DemoWrapper extends StatelessWidget { @override Widget build(BuildContext context) { - bool hasCycled = true; - return MaterialApp( - theme: MaterialDemoThemeData.themeData.copyWith( + return Theme( + data: MaterialDemoThemeData.themeData.copyWith( platform: GalleryOptions.of(context).platform, ), - debugShowCheckedModeBanner: false, - localizationsDelegates: GalleryLocalizations.localizationsDelegates, - supportedLocales: GalleryLocalizations.supportedLocales, - locale: GalleryOptions.of(context).locale, - // Remove the MediaQuery padding because the demo is rendered inside of a - // different page that already accounts for this padding. - home: MediaQuery.removePadding( - context: context, - removeTop: true, - removeBottom: true, - child: Focus( - onFocusChange: (hasFocus) { - if (hasFocus && hasCycled) { - hasCycled = !hasCycled; - FocusScope.of(context).requestFocus( - InheritedDemoFocusNodes.of(context).backButtonFocusNode); - } - }, - child: ApplyTextOptions( - child: CupertinoTheme( - data: CupertinoThemeData().copyWith(brightness: Brightness.light), - child: child, - ), - ), + child: ApplyTextOptions( + child: CupertinoTheme( + data: CupertinoThemeData().copyWith(brightness: Brightness.light), + child: child, ), ), ); diff --git a/gallery/gallery/lib/demos/cupertino/cupertino_alert_demo.dart b/gallery/gallery/lib/demos/cupertino/cupertino_alert_demo.dart index 1ac4a53bb..5971a724a 100644 --- a/gallery/gallery/lib/demos/cupertino/cupertino_alert_demo.dart +++ b/gallery/gallery/lib/demos/cupertino/cupertino_alert_demo.dart @@ -216,7 +216,10 @@ class _CupertinoAlertDemoState extends State { @override Widget build(BuildContext context) { return CupertinoPageScaffold( - navigationBar: CupertinoNavigationBar(middle: Text(_title(context))), + navigationBar: CupertinoNavigationBar( + automaticallyImplyLeading: false, + middle: Text(_title(context)), + ), child: Builder( builder: (context) { return Column( diff --git a/gallery/gallery/lib/demos/cupertino/cupertino_button_demo.dart b/gallery/gallery/lib/demos/cupertino/cupertino_button_demo.dart index 8caa6c78f..fd5cbde5a 100644 --- a/gallery/gallery/lib/demos/cupertino/cupertino_button_demo.dart +++ b/gallery/gallery/lib/demos/cupertino/cupertino_button_demo.dart @@ -13,6 +13,7 @@ class CupertinoButtonDemo extends StatelessWidget { Widget build(BuildContext context) { return CupertinoPageScaffold( navigationBar: CupertinoNavigationBar( + automaticallyImplyLeading: false, middle: Text(GalleryLocalizations.of(context).demoCupertinoButtonsTitle), ), diff --git a/gallery/gallery/lib/demos/cupertino/cupertino_segmented_control_demo.dart b/gallery/gallery/lib/demos/cupertino/cupertino_segmented_control_demo.dart index 6b9a8dc99..895633280 100644 --- a/gallery/gallery/lib/demos/cupertino/cupertino_segmented_control_demo.dart +++ b/gallery/gallery/lib/demos/cupertino/cupertino_segmented_control_demo.dart @@ -37,6 +37,7 @@ class _CupertinoSegmentedControlDemoState return CupertinoPageScaffold( navigationBar: CupertinoNavigationBar( + automaticallyImplyLeading: false, middle: Text( localizations.demoCupertinoSegmentedControlTitle, ), diff --git a/gallery/gallery/lib/demos/material/bottom_navigation_demo.dart b/gallery/gallery/lib/demos/material/bottom_navigation_demo.dart index a32c55e93..202749214 100644 --- a/gallery/gallery/lib/demos/material/bottom_navigation_demo.dart +++ b/gallery/gallery/lib/demos/material/bottom_navigation_demo.dart @@ -119,6 +119,7 @@ class _BottomNavigationDemoState extends State return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(_title(context)), ), body: Center( diff --git a/gallery/gallery/lib/demos/material/bottom_sheet_demo.dart b/gallery/gallery/lib/demos/material/bottom_sheet_demo.dart index 51ce48cfc..02d949bb8 100644 --- a/gallery/gallery/lib/demos/material/bottom_sheet_demo.dart +++ b/gallery/gallery/lib/demos/material/bottom_sheet_demo.dart @@ -50,8 +50,8 @@ class BottomSheetDemo extends StatelessWidget { return MaterialPageRoute( builder: (context) => Scaffold( appBar: AppBar( - title: Text(_title(context)), automaticallyImplyLeading: false, + title: Text(_title(context)), ), floatingActionButton: FloatingActionButton( onPressed: () {}, diff --git a/gallery/gallery/lib/demos/material/button_demo.dart b/gallery/gallery/lib/demos/material/button_demo.dart index 361c3798f..346d97f4f 100644 --- a/gallery/gallery/lib/demos/material/button_demo.dart +++ b/gallery/gallery/lib/demos/material/button_demo.dart @@ -58,6 +58,7 @@ class ButtonDemo extends StatelessWidget { return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(_title(context)), ), body: buttons, diff --git a/gallery/gallery/lib/demos/material/chip_demo.dart b/gallery/gallery/lib/demos/material/chip_demo.dart index 9b4ef3f1f..040922a47 100644 --- a/gallery/gallery/lib/demos/material/chip_demo.dart +++ b/gallery/gallery/lib/demos/material/chip_demo.dart @@ -52,6 +52,7 @@ class ChipDemo extends StatelessWidget { return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(_title(context)), ), body: buttons, diff --git a/gallery/gallery/lib/demos/material/dialog_demo.dart b/gallery/gallery/lib/demos/material/dialog_demo.dart index 49615f3c0..0342ce2d1 100644 --- a/gallery/gallery/lib/demos/material/dialog_demo.dart +++ b/gallery/gallery/lib/demos/material/dialog_demo.dart @@ -124,42 +124,72 @@ class DialogDemo extends StatelessWidget { @override Widget build(BuildContext context) { - return Scaffold( - key: _scaffoldKey, - appBar: AppBar( - title: Text(_title(context)), - ), - body: Center( - child: RaisedButton( - child: Text(GalleryLocalizations.of(context).dialogShow), - onPressed: () { - switch (type) { - case DialogDemoType.alert: - _showAlertDialog(context); - break; - case DialogDemoType.alertTitle: - _showAlertDialogWithTitle(context); - break; - case DialogDemoType.simple: - _showSimpleDialog(context); - break; - case DialogDemoType.fullscreen: - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => _FullScreenDialogDemo(), - fullscreenDialog: true, - ), - ); - break; - } - }, - ), - ), + return Navigator( + // Adding [ValueKey] to make sure that the widget gets rebuilt when + // changing type. + key: ValueKey(type), + onGenerateRoute: (settings) { + return _NoAnimationMaterialPageRoute( + builder: (context) => Scaffold( + key: _scaffoldKey, + appBar: AppBar( + automaticallyImplyLeading: false, + title: Text(_title(context)), + ), + body: Center( + child: RaisedButton( + child: Text(GalleryLocalizations.of(context).dialogShow), + onPressed: () { + switch (type) { + case DialogDemoType.alert: + _showAlertDialog(context); + break; + case DialogDemoType.alertTitle: + _showAlertDialogWithTitle(context); + break; + case DialogDemoType.simple: + _showSimpleDialog(context); + break; + case DialogDemoType.fullscreen: + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => _FullScreenDialogDemo(), + fullscreenDialog: true, + ), + ); + break; + } + }, + ), + ), + ), + ); + }, ); } } +/// A MaterialPageRoute without any transition animations. +class _NoAnimationMaterialPageRoute extends MaterialPageRoute { + _NoAnimationMaterialPageRoute({ + @required WidgetBuilder builder, + RouteSettings settings, + bool maintainState = true, + bool fullscreenDialog = false, + }) : super( + builder: builder, + maintainState: maintainState, + settings: settings, + fullscreenDialog: fullscreenDialog); + + @override + Widget buildTransitions(BuildContext context, Animation animation, + Animation secondaryAnimation, Widget child) { + return child; + } +} + class _DialogButton extends StatelessWidget { const _DialogButton({Key key, this.text}) : super(key: key); diff --git a/gallery/gallery/lib/demos/material/list_demo.dart b/gallery/gallery/lib/demos/material/list_demo.dart index fe550d535..8a30d28b5 100644 --- a/gallery/gallery/lib/demos/material/list_demo.dart +++ b/gallery/gallery/lib/demos/material/list_demo.dart @@ -22,6 +22,7 @@ class ListDemo extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(GalleryLocalizations.of(context).demoListsTitle), ), body: Scrollbar( diff --git a/gallery/gallery/lib/demos/material/selection_controls_demo.dart b/gallery/gallery/lib/demos/material/selection_controls_demo.dart index fc1d07408..3e620610c 100644 --- a/gallery/gallery/lib/demos/material/selection_controls_demo.dart +++ b/gallery/gallery/lib/demos/material/selection_controls_demo.dart @@ -48,6 +48,7 @@ class SelectionControlsDemo extends StatelessWidget { return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(_title(context)), ), body: controls, diff --git a/gallery/gallery/lib/demos/material/snackbar_demo.dart b/gallery/gallery/lib/demos/material/snackbar_demo.dart index c77ff2980..512999d51 100644 --- a/gallery/gallery/lib/demos/material/snackbar_demo.dart +++ b/gallery/gallery/lib/demos/material/snackbar_demo.dart @@ -12,6 +12,7 @@ class SnackbarsDemo extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(GalleryLocalizations.of(context).demoSnackbarsTitle), ), body: Builder( diff --git a/gallery/gallery/lib/demos/material/tabs_demo.dart b/gallery/gallery/lib/demos/material/tabs_demo.dart index d78f52a56..1cb8436d3 100644 --- a/gallery/gallery/lib/demos/material/tabs_demo.dart +++ b/gallery/gallery/lib/demos/material/tabs_demo.dart @@ -23,6 +23,7 @@ class TabsDemo extends StatelessWidget { length: tabs.length, child: Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(GalleryLocalizations.of(context).demoTabsTitle), bottom: TabBar( isScrollable: true, diff --git a/gallery/gallery/lib/demos/material/text_field_demo.dart b/gallery/gallery/lib/demos/material/text_field_demo.dart index 35939a11a..d7f3cc91f 100644 --- a/gallery/gallery/lib/demos/material/text_field_demo.dart +++ b/gallery/gallery/lib/demos/material/text_field_demo.dart @@ -16,6 +16,7 @@ class TextFieldDemo extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(GalleryLocalizations.of(context).demoTextFieldTitle), ), body: TextFormFieldDemo(), diff --git a/gallery/gallery/lib/demos/reference/colors_demo.dart b/gallery/gallery/lib/demos/reference/colors_demo.dart index 418e5e958..ac668d6b2 100644 --- a/gallery/gallery/lib/demos/reference/colors_demo.dart +++ b/gallery/gallery/lib/demos/reference/colors_demo.dart @@ -243,6 +243,7 @@ class ColorsDemo extends StatelessWidget { length: palettes.length, child: Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(GalleryLocalizations.of(context).demoColorsTitle), bottom: TabBar( isScrollable: true, diff --git a/gallery/gallery/lib/demos/reference/typography_demo.dart b/gallery/gallery/lib/demos/reference/typography_demo.dart index 37fc466cc..4cad77376 100644 --- a/gallery/gallery/lib/demos/reference/typography_demo.dart +++ b/gallery/gallery/lib/demos/reference/typography_demo.dart @@ -117,6 +117,7 @@ class TypographyDemo extends StatelessWidget { return Scaffold( appBar: AppBar( + automaticallyImplyLeading: false, title: Text(GalleryLocalizations.of(context).demoTypographyTitle), ), body: Scrollbar(child: ListView(children: styleItems)), diff --git a/gallery/gallery/lib/pages/demo.dart b/gallery/gallery/lib/pages/demo.dart index a5bf30d46..9d905dafb 100644 --- a/gallery/gallery/lib/pages/demo.dart +++ b/gallery/gallery/lib/pages/demo.dart @@ -51,7 +51,6 @@ class _DemoPageState extends State with TickerProviderStateMixin { int _demoViewedCount; AnimationController _codeBackgroundColorController; - FocusNode backButonFocusNode; GalleryDemoConfiguration get _currentConfig { return widget.demo.configurations[_configIndex]; @@ -85,13 +84,11 @@ class _DemoPageState extends State with TickerProviderStateMixin { preferences.setInt(_demoViewedCountKey, _demoViewedCount + 1); }); }); - backButonFocusNode = FocusNode(); } @override void dispose() { _codeBackgroundColorController.dispose(); - backButonFocusNode.dispose(); super.dispose(); } @@ -191,7 +188,6 @@ class _DemoPageState extends State with TickerProviderStateMixin { onPressed: () { Navigator.maybePop(context); }, - focusNode: backButonFocusNode, ), actions: [ if (_hasOptions) @@ -487,10 +483,7 @@ class _DemoPageState extends State with TickerProviderStateMixin { ); } - return InheritedDemoFocusNodes( - backButtonFocusNode: backButonFocusNode, - child: FeatureDiscoveryController(page), - ); + return FeatureDiscoveryController(page); } } @@ -781,19 +774,3 @@ class CodeDisplayPage extends StatelessWidget { ); } } - -class InheritedDemoFocusNodes extends InheritedWidget { - InheritedDemoFocusNodes({ - @required Widget child, - @required this.backButtonFocusNode, - }) : assert(child != null), - super(child: child); - - final FocusNode backButtonFocusNode; - - static InheritedDemoFocusNodes of(BuildContext context) => - context.dependOnInheritedWidgetOfExactType(); - - @override - bool updateShouldNotify(InheritedWidget oldWidget) => true; -}