From e4b1eab85477bfbd2782d82dcee1647fa0accd1c Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Tue, 8 Mar 2016 16:35:23 -0800 Subject: [PATCH] Remove //examples/widgets Most of the remaining widget examples are actually manual tests. This patch moves them into //dev/manual_tests. A couple are examples of using services, which I've moved to //examples/layers/services. The remainder are out-dated and are removed by this patch. --- dev/manual_tests/.gitignore | 9 ++ .../manual_tests}/card_collection.dart | 0 .../manual_tests}/drag_and_drop.dart | 0 .../widgets => dev/manual_tests}/mozart.dart | 0 .../manual_tests}/overlay_geometry.dart | 0 .../manual_tests}/pageable_list.dart | 0 .../widgets => dev/manual_tests}/pubspec.yaml | 2 +- .../manual_tests}/raw_keyboard.dart | 0 examples/layers/README.md | 3 + .../services/media_service.dart} | 0 .../services/start_activity.dart} | 0 examples/widgets/README.md | 10 -- examples/widgets/assets/1.5x/starcircle.png | Bin 15844 -> 0 bytes examples/widgets/assets/2.0x/starcircle.png | Bin 16312 -> 0 bytes examples/widgets/assets/3.0x/starcircle.png | Bin 17856 -> 0 bytes examples/widgets/assets/4.0x/starcircle.png | Bin 19220 -> 0 bytes examples/widgets/assets/starcircle.png | Bin 15358 -> 0 bytes examples/widgets/flutter.yaml | 4 - examples/widgets/hero_under.dart | 138 ------------------ examples/widgets/http_post.dart | 73 --------- examples/widgets/indexed_stack.dart | 67 --------- examples/widgets/mimic_demo.dart | 102 ------------- examples/widgets/resolution_awareness.dart | 87 ----------- examples/widgets/scrollbar.dart | 76 ---------- .../lib/src/commands/update_packages.dart | 1 + 25 files changed, 14 insertions(+), 558 deletions(-) create mode 100644 dev/manual_tests/.gitignore rename {examples/widgets => dev/manual_tests}/card_collection.dart (100%) rename {examples/widgets => dev/manual_tests}/drag_and_drop.dart (100%) rename {examples/widgets => dev/manual_tests}/mozart.dart (100%) rename {examples/widgets => dev/manual_tests}/overlay_geometry.dart (100%) rename {examples/widgets => dev/manual_tests}/pageable_list.dart (100%) rename {examples/widgets => dev/manual_tests}/pubspec.yaml (68%) rename {examples/widgets => dev/manual_tests}/raw_keyboard.dart (100%) rename examples/{widgets/piano.dart => layers/services/media_service.dart} (100%) rename examples/{widgets/launch_url.dart => layers/services/start_activity.dart} (100%) delete mode 100644 examples/widgets/README.md delete mode 100644 examples/widgets/assets/1.5x/starcircle.png delete mode 100644 examples/widgets/assets/2.0x/starcircle.png delete mode 100644 examples/widgets/assets/3.0x/starcircle.png delete mode 100644 examples/widgets/assets/4.0x/starcircle.png delete mode 100644 examples/widgets/assets/starcircle.png delete mode 100644 examples/widgets/flutter.yaml delete mode 100644 examples/widgets/hero_under.dart delete mode 100644 examples/widgets/http_post.dart delete mode 100644 examples/widgets/indexed_stack.dart delete mode 100644 examples/widgets/mimic_demo.dart delete mode 100644 examples/widgets/resolution_awareness.dart delete mode 100644 examples/widgets/scrollbar.dart diff --git a/dev/manual_tests/.gitignore b/dev/manual_tests/.gitignore new file mode 100644 index 0000000000..52808ddc1e --- /dev/null +++ b/dev/manual_tests/.gitignore @@ -0,0 +1,9 @@ +.atom +.DS_Store +.buildlog +.idea +.packages +.pub/ +build/ +packages +pubspec.lock diff --git a/examples/widgets/card_collection.dart b/dev/manual_tests/card_collection.dart similarity index 100% rename from examples/widgets/card_collection.dart rename to dev/manual_tests/card_collection.dart diff --git a/examples/widgets/drag_and_drop.dart b/dev/manual_tests/drag_and_drop.dart similarity index 100% rename from examples/widgets/drag_and_drop.dart rename to dev/manual_tests/drag_and_drop.dart diff --git a/examples/widgets/mozart.dart b/dev/manual_tests/mozart.dart similarity index 100% rename from examples/widgets/mozart.dart rename to dev/manual_tests/mozart.dart diff --git a/examples/widgets/overlay_geometry.dart b/dev/manual_tests/overlay_geometry.dart similarity index 100% rename from examples/widgets/overlay_geometry.dart rename to dev/manual_tests/overlay_geometry.dart diff --git a/examples/widgets/pageable_list.dart b/dev/manual_tests/pageable_list.dart similarity index 100% rename from examples/widgets/pageable_list.dart rename to dev/manual_tests/pageable_list.dart diff --git a/examples/widgets/pubspec.yaml b/dev/manual_tests/pubspec.yaml similarity index 68% rename from examples/widgets/pubspec.yaml rename to dev/manual_tests/pubspec.yaml index aefa4bfcde..b3708d8307 100644 --- a/examples/widgets/pubspec.yaml +++ b/dev/manual_tests/pubspec.yaml @@ -1,4 +1,4 @@ -name: sky_widgets_examples +name: flutter_manual_tests dependencies: flutter: path: ../../packages/flutter diff --git a/examples/widgets/raw_keyboard.dart b/dev/manual_tests/raw_keyboard.dart similarity index 100% rename from examples/widgets/raw_keyboard.dart rename to dev/manual_tests/raw_keyboard.dart diff --git a/examples/layers/README.md b/examples/layers/README.md index cedc4665cf..04c1d0897e 100644 --- a/examples/layers/README.md +++ b/examples/layers/README.md @@ -15,6 +15,9 @@ Flutter's layered architecture. * [*widgets/*](widgets/) These examples use Flutter's widgets to build more elaborate apps using a reactive framework. + * [*services/*](services/) These examples use services available in Flutter to + interact with the host platform. + To run each example, use the `-t` argument to the `flutter` tool: ``` diff --git a/examples/widgets/piano.dart b/examples/layers/services/media_service.dart similarity index 100% rename from examples/widgets/piano.dart rename to examples/layers/services/media_service.dart diff --git a/examples/widgets/launch_url.dart b/examples/layers/services/start_activity.dart similarity index 100% rename from examples/widgets/launch_url.dart rename to examples/layers/services/start_activity.dart diff --git a/examples/widgets/README.md b/examples/widgets/README.md deleted file mode 100644 index 11addfcd1e..0000000000 --- a/examples/widgets/README.md +++ /dev/null @@ -1,10 +0,0 @@ -Small examples of the Flutter widget framework -============================================== - -To run these, open a terminal in this directory and use the following command: - -```bash -flutter run -t foo.dart -``` - -...where `foo.dart` is the file you want to run. diff --git a/examples/widgets/assets/1.5x/starcircle.png b/examples/widgets/assets/1.5x/starcircle.png deleted file mode 100644 index 6db147df179c3c042f9976efa3defec936d38a50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15844 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 diff --git a/examples/widgets/assets/2.0x/starcircle.png b/examples/widgets/assets/2.0x/starcircle.png deleted file mode 100644 index 82d9109d23305ed317e0e96286563bb5cb19b015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16312 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%0AwzF1lZ4*DMU$N^;AH%0ykL&3e2#^$SBm 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 diff --git a/examples/widgets/flutter.yaml b/examples/widgets/flutter.yaml deleted file mode 100644 index b393464143..0000000000 --- a/examples/widgets/flutter.yaml +++ /dev/null @@ -1,4 +0,0 @@ -name: widgets -uses-material-design: true -assets: - - assets/starcircle.png diff --git a/examples/widgets/hero_under.dart b/examples/widgets/hero_under.dart deleted file mode 100644 index ed5a397887..0000000000 --- a/examples/widgets/hero_under.dart +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright (c) 2015, the Flutter project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -import 'dart:ui' as ui show window; - -import 'package:flutter/widgets.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/rendering.dart'; -import 'package:flutter/scheduler.dart'; -import 'package:flutter/services.dart'; - -void main() { - timeDilation = 8.0; - runApp( - new MaterialApp( - title: "Hero Under", - routes: { - '/': (RouteArguments args) => new HeroDemo() - } - ) - ); -} - -const String kImageSrc = 'http://uploads0.wikiart.org/images/m-c-escher/crab-canon.jpg!Blog.jpg'; - -const String kText = """ -Low-crab diets are dietary programs that restrict crustacean consumption, often for the treatment of obesity or diabetes. Foods high in easily digestible crustaceans (e.g., crab, lobster, shrimp) are limited or replaced with foods made from other animals (e.g., poultry, beef, pork) and other crustaceans that are hard to digest (e.g., barnacles), although krill are often allowed. The amount of crab allowed varies with different low-crab diets. -"""; - -class HeroImage extends StatelessComponent { - HeroImage({ this.size }); - final Size size; - Widget build(BuildContext context) { - return new Hero( - child: new Container( - width: size.width, - height: size.height, - decoration: new BoxDecoration( - backgroundImage: new BackgroundImage( - fit: ImageFit.cover, - image: imageCache.load(kImageSrc) - ) - ) - ), - tag: HeroImage - ); - } -} - -class HeroDemo extends StatelessComponent { - Widget build(BuildContext context) { - return new Scaffold( - toolBar: new ToolBar( - left: new IconButton(icon: Icons.menu), - center: new Text('Diets') - ), - body: new Center( - child: new GestureDetector( - onTap: () => Navigator.push(context, new CrabRoute()), - child: new Card( - child: new Row( - children: [ - new HeroImage( - size: const Size(100.0, 100.0) - ), - new Flexible( - child: new Container( - padding: const EdgeDims.all(10.0), - child: new Text( - "Low Crab Diet", - style: Theme.of(context).text.title - ) - ) - ) - ] - ) - ) - ) - ) - ); - } -} - -class CrabRoute extends MaterialPageRoute { - CrabRoute() : super(builder: (BuildContext context) => new CrabPage()); - void insertHeroOverlayEntry(OverlayEntry entry, Object tag, OverlayState overlay) { - overlay.insert(entry, above: overlayEntries.first); - } -} - -class CrabPage extends StatelessComponent { - Widget build(BuildContext context) { - TextStyle titleStyle = Typography.white.display2.copyWith(color: Colors.white); - return new Material( - color: const Color(0x00000000), - child: new Block( - children: [ - new Stack( - children: [ - new HeroImage( - size: new Size(ui.window.size.width, ui.window.size.width) - ), - new ToolBar( - padding: new EdgeDims.only(top: ui.window.padding.top), - backgroundColor: const Color(0x00000000), - left: new IconButton( - icon: Icons.arrow_back, - onPressed: () => Navigator.pop(context) - ), - right: [ - new IconButton(icon: Icons.more_vert) - ] - ), - new Positioned( - bottom: 10.0, - left: 10.0, - child: new Text("Low Crab Diet", style: titleStyle) - ) - ] - ), - new Material( - child: new Container( - padding: const EdgeDims.all(10.0), - child: new Column( - children: [ - new Text(kText, style: Theme.of(context).text.body1), - new Container(height: 800.0), - ], - alignItems: FlexAlignItems.start - ) - ) - ) - ] - ) - ); - } -} diff --git a/examples/widgets/http_post.dart b/examples/widgets/http_post.dart deleted file mode 100644 index db500163d7..0000000000 --- a/examples/widgets/http_post.dart +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2015, the Flutter project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -import 'dart:async'; - -import 'package:flutter/http.dart' as http; -import 'package:flutter/material.dart'; - -void main() { - runApp( - new MaterialApp( - title: "HTTP POST Example", - routes: { - '/': (RouteArguments args) => const PostDemo() - } - ) - ); -} - -class PostDemo extends StatefulComponent { - const PostDemo(); - PostDemoState createState() => new PostDemoState(); -} - -class PostDemoState extends State { - - String _response = null; - - void initState() { - _refresh(); - super.initState(); - } - - Future _refresh() async { - setState(() { - _response = null; - }); - http.Response response = await http.post( - "http://httpbin.org/post", - body: '{"foo": "bar"}', - headers: { "Content-Type": "application/json", "baz": "qux" } - ); - setState(() { - _response = response.body; - }); - } - - Widget build(BuildContext context) { - return new Scaffold( - toolBar: new ToolBar( - center: new Text("HTTP POST example") - ), - body: new Material( - child: new Block( - children: [ - new Text( - "${_response ?? 'Loading...'}", - style: Typography.black.body1 - ) - ] - ) - ), - floatingActionButton: new FloatingActionButton( - tooltip: 'Refresh', - child: new Icon( - icon: Icons.refresh - ), - onPressed: _refresh - ) - ); - } -} diff --git a/examples/widgets/indexed_stack.dart b/examples/widgets/indexed_stack.dart deleted file mode 100644 index 7e782b3906..0000000000 --- a/examples/widgets/indexed_stack.dart +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/material.dart'; -import 'package:flutter/rendering.dart'; - -class IndexedStackDemo extends StatefulComponent { - IndexedStackDemoState createState() => new IndexedStackDemoState(); -} - -class IndexedStackDemoState extends State { - int _itemCount = 7; - int _itemIndex = 0; - - void _handleTap() { - setState(() { - _itemIndex = (_itemIndex + 1) % _itemCount; - }); - } - - List> _buildMenu() { - TextStyle style = const TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold); - String pad = ''; - return new List.generate(_itemCount, (int i) { - pad += '-'; - return new PopupMenuItem(value: i, child: new Text('$pad Hello World $i $pad', style: style)); - }); - } - - Widget build(BuildContext context) { - List> items = _buildMenu(); - IndexedStack indexedStack = new IndexedStack( - children: items, - index: _itemIndex, - alignment: const FractionalOffset(0.5, 0.0) - ); - - return new Scaffold( - toolBar: new ToolBar(center: new Text('IndexedStackDemo Demo')), - body: new GestureDetector( - onTap: _handleTap, - child: new Center( - child: new Container( - child: indexedStack, - padding: const EdgeDims.all(8.0), - decoration: new BoxDecoration(border: new Border.all(color: Theme.of(context).accentColor)) - ) - ) - ) - ); - } -} - -void main() { - runApp(new MaterialApp( - title: 'IndexedStackDemo', - theme: new ThemeData( - brightness: ThemeBrightness.light, - primarySwatch: Colors.blue, - accentColor: Colors.redAccent[200] - ), - routes: { - '/': (RouteArguments args) => new IndexedStackDemo(), - } - )); -} diff --git a/examples/widgets/mimic_demo.dart b/examples/widgets/mimic_demo.dart deleted file mode 100644 index 3ce73c8c12..0000000000 --- a/examples/widgets/mimic_demo.dart +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/material.dart'; - -const double _kHeight = 150.0; -const Duration _kEffectDuration = const Duration(seconds: 1); - -class MimicDemo extends StatefulComponent { - _MimicDemoState createState() => new _MimicDemoState(); -} - -class _MimicDemoState extends State { - GlobalKey _orange = new GlobalKey(); - GlobalKey _targetContainer = new GlobalKey(); - - bool _slotForOrangeOnTop = false; - bool _orangeOnTop = false; - - void _handleTap() { - if (_slotForOrangeOnTop) - return; - setState(() { - _slotForOrangeOnTop = true; - }); - MimicOverlayEntry entry = _orange.currentState.liftToOverlay(); - entry.animateTo(targetKey: _targetContainer, duration: _kEffectDuration, curve: Curves.ease).then((_) { - setState(() { - _orangeOnTop = true; - }); - entry.dispose(); - }); - } - - void _reset() { - setState(() { - _slotForOrangeOnTop = false; - _orangeOnTop = false; - }); - } - - Widget _buildOrange() { - return new Mimicable( - key: _orange, - child: new Container( - height: _kHeight, - decoration: new BoxDecoration( - backgroundColor: Colors.deepOrange[500] - ) - ) - ); - } - - Widget build(BuildContext context) { - List children = [ - new Container( - height: _kHeight, - decoration: new BoxDecoration( - backgroundColor: Colors.amber[500] - ) - ), - new AnimatedContainer( - key: _targetContainer, - height: _slotForOrangeOnTop ? _kHeight : 0.0, - duration: _kEffectDuration, - curve: Curves.ease, - child: _orangeOnTop ? _buildOrange() : null - ), - new Container( - height: _kHeight, - decoration: new BoxDecoration( - backgroundColor: Colors.green[500] - ) - ), - new Container( - height: _kHeight, - decoration: new BoxDecoration( - backgroundColor: Colors.blue[500] - ) - ), - ]; - - if (!_orangeOnTop) - children.add(_buildOrange()); - - return new GestureDetector( - onTap: _handleTap, - onLongPress: _reset, - child: new Block(children: children) - ); - } -} - -void main() { - runApp(new MaterialApp( - title: 'Mimic Demo', - routes: { - '/': (_) => new MimicDemo() - } - )); -} diff --git a/examples/widgets/resolution_awareness.dart b/examples/widgets/resolution_awareness.dart deleted file mode 100644 index c98117f77f..0000000000 --- a/examples/widgets/resolution_awareness.dart +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) 2016, the Flutter project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -import 'dart:ui' as ui show window; - -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter/widgets.dart'; - -class ExampleApp extends StatefulComponent { - ExampleState createState() => new ExampleState(); -} - -const List _ratios = const [ 1.0, 1.8, 1.3, 2.4, 2.5, 2.6, 3.9 ]; - -class ExampleState extends State { - - int _index = 0; - double _ratio = _ratios[0]; - - final EdgeDims padding = new EdgeDims.TRBL( - ui.window.padding.top, - ui.window.padding.right, - ui.window.padding.bottom, - ui.window.padding.left - ); - - void _handlePressed() { - setState(() { - _index++; - _index = _index % _ratios.length; - _ratio = _ratios[_index]; - }); - } - - Widget build(BuildContext context) { - const double size = 200.0; // 200 logical pixels - TextStyle style = new TextStyle(color: const Color(0xFF0000000)); - return new MediaQuery( - data: new MediaQueryData( - size: ui.window.size, - devicePixelRatio: _ratio, - padding: padding - ), - child: new AssetVendor( - bundle: rootBundle, - devicePixelRatio: _ratio, - child: new Material( - child: new Padding( - padding: const EdgeDims.symmetric(vertical: 48.0), - child: new Column( - children: [ - new AssetImage( - name: 'assets/2.0x/starcircle.png', - height: size, - width: size, - fit: ImageFit.fill - ), - new Text('Image designed for pixel ratio 2.0', style: style), - new AssetImage( - name: 'assets/starcircle.png', - height: size, - width: size, - fit: ImageFit.fill - ), - new Text( - 'Image variant for pixel ratio: ' + _ratio.toString(), - style: style - ), - new RaisedButton( - child: new Text('Change pixel ratio', style: style), - onPressed: _handlePressed - ) - ], - justifyContent: FlexJustifyContent.spaceBetween - ) - ) - ) - ) - ); - } -} - -main() { - runApp(new ExampleApp()); -} diff --git a/examples/widgets/scrollbar.dart b/examples/widgets/scrollbar.dart deleted file mode 100644 index 50bdc26e51..0000000000 --- a/examples/widgets/scrollbar.dart +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:intl/intl.dart'; -import 'package:flutter/material.dart'; - -final NumberFormat _dd = new NumberFormat("00", "en_US"); - -class _Item extends StatelessComponent { - _Item(this.index); - - int index; - - Widget build(BuildContext context) { - return new Text('Item ${_dd.format(index)}', - key: new ValueKey(index), - style: Theme.of(context).text.title - ); - } -} - -class ScrollbarApp extends StatefulComponent { - ScrollbarAppState createState() => new ScrollbarAppState(); -} - -class ScrollbarAppState extends State { - final int _itemCount = 20; - final double _itemExtent = 50.0; - final ScrollbarPainter _scrollbarPainter = new ScrollbarPainter(); - - Widget _buildMenu(BuildContext context) { - return new ScrollableList( - itemExtent: _itemExtent, - scrollableListPainter: _scrollbarPainter, - children: new List.generate(_itemCount, (int i) => new _Item(i)) - ); - } - - Widget build(BuildContext context) { - Widget scrollable = new Container( - margin: new EdgeDims.symmetric(horizontal: 6.0), // TODO(hansmuller) 6.0 should be based on _kScrollbarThumbWidth - child: new Center( - widthFactor: 1.0, - heightFactor: 1.0, - child: new Container( - width: 80.0, - height: _itemExtent * 5.0, - child: _buildMenu(context) - ) - ) - ); - - return new Scaffold( - toolBar: new ToolBar(center: new Text('Scrollbar Demo')), - body: new Container( - padding: new EdgeDims.all(12.0), - child: new Center(child: new Card(child: scrollable)) - ) - ); - } -} - -void main() { - runApp(new MaterialApp( - title: 'ScrollbarApp', - theme: new ThemeData( - brightness: ThemeBrightness.light, - primarySwatch: Colors.blue, - accentColor: Colors.redAccent[200] - ), - routes: { - '/': (RouteArguments args) => new ScrollbarApp(), - } - )); -} diff --git a/packages/flutter_tools/lib/src/commands/update_packages.dart b/packages/flutter_tools/lib/src/commands/update_packages.dart index eabc692f6f..d49bc48953 100644 --- a/packages/flutter_tools/lib/src/commands/update_packages.dart +++ b/packages/flutter_tools/lib/src/commands/update_packages.dart @@ -45,6 +45,7 @@ class UpdatePackagesCommand extends FlutterCommand { bool upgrade = argResults['upgrade']; count += await _runPub(new Directory("${ArtifactStore.flutterRoot}/packages"), upgrade: upgrade); count += await _runPub(new Directory("${ArtifactStore.flutterRoot}/examples"), upgrade: upgrade); + count += await _runPub(new Directory("${ArtifactStore.flutterRoot}/dev"), upgrade: upgrade); printStatus('Ran "pub" $count time${count == 1 ? "" : "s"} in ${timer.elapsedMilliseconds} ms'); return 0; }