From ff9b0b092cab3bcee74d7cb78454cc08f8a651c8 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Fri, 12 Jun 2015 16:53:29 -0700 Subject: [PATCH] Port sky_home to the new SkyView world R=ianh@google.com, eseidel@chromium.org Review URL: https://codereview.chromium.org/1178293004. --- engine/src/flutter/home.dart | 83 +++++++++++++++++++++++++ engine/src/flutter/shell/ios/Info.plist | 2 +- engine/src/flutter/sky_home | 10 --- engine/src/flutter/sky_home.dart | 56 ----------------- engine/src/flutter/tools/shelldb | 2 +- 5 files changed, 85 insertions(+), 68 deletions(-) create mode 100644 engine/src/flutter/home.dart delete mode 100644 engine/src/flutter/sky_home delete mode 100644 engine/src/flutter/sky_home.dart diff --git a/engine/src/flutter/home.dart b/engine/src/flutter/home.dart new file mode 100644 index 00000000000..d41cb237c65 --- /dev/null +++ b/engine/src/flutter/home.dart @@ -0,0 +1,83 @@ +// 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 'dart:sky'; + +import 'package:mojom/intents/intents.mojom.dart'; +import 'package:sky/framework/shell.dart' as shell; +import 'package:sky/framework/theme2/colors.dart' as colors; +import 'package:sky/framework/theme2/edges.dart'; +import 'package:sky/framework/theme2/typography.dart' as typography; +import 'package:sky/framework/widgets/material.dart'; +import 'package:sky/framework/widgets/raised_button.dart'; +import 'package:sky/framework/widgets/scaffold.dart'; +import 'package:sky/framework/widgets/tool_bar.dart'; +import 'package:sky/framework/widgets/wrappers.dart'; + +void launch(String relativeUrl) { + Uri url = Uri.base.resolve(relativeUrl); + url = url.replace(scheme: 'sky'); + + ActivityManagerProxy activityManager = new ActivityManagerProxy.unbound(); + Intent intent = new Intent() + ..action = 'android.intent.action.VIEW' + ..url = url.toString(); + shell.requestService(null, activityManager); + activityManager.ptr.startActivity(intent); +} + +class SkyDemo extends Component { + String text; + String href; + + SkyDemo(String text, this.href) : this.text = text, super(key: text); + + void _handlePress() { + launch(href); + } + + UINode build() { + return new RaisedButton( + child: new Text(text), + onPressed: _handlePress + ); + } +} + +class SkyHome extends App { + UINode build() { + List children = [ + new SkyDemo('Stocks2 App', 'examples/stocks2/lib/stock_app.dart'), + new SkyDemo('Box2D Game', 'examples/game/main.dart'), + new SkyDemo('Interactive Flex', 'examples/rendering/interactive_flex.dart'), + new SkyDemo('Sector Layout', 'examples/rendering/sector_layout.dart'), + new SkyDemo('Touch Demo', 'examples/rendering/touch_demo.dart'), + + // TODO(eseidel): We could use to separate these groups? + new SkyDemo('Stocks App (Old)', 'examples/stocks/main.sky'), + new SkyDemo('Touch Demo (Old)', 'examples/raw/touch-demo.sky'), + new SkyDemo('Spinning Square (Old)', 'examples/raw/spinning-square.sky'), + + new SkyDemo('Licences (Old)', 'LICENSES.sky'), + ]; + + return new Scaffold( + toolbar: new ToolBar( + center: new Text('Sky Demos', style: typography.white.title), + backgroundColor: colors.Blue[500]), + body: new Material( + edge: MaterialEdge.canvas, + child: new Flex( + children, + direction: FlexDirection.vertical, + justifyContent: FlexJustifyContent.spaceAround + ) + ) + ); + } +} + +void main() { + new SkyHome(); +} diff --git a/engine/src/flutter/shell/ios/Info.plist b/engine/src/flutter/shell/ios/Info.plist index cd5b90f17f5..b0cf7959459 100644 --- a/engine/src/flutter/shell/ios/Info.plist +++ b/engine/src/flutter/shell/ios/Info.plist @@ -53,7 +53,7 @@ Sky Load URL --> com.google.sky.load_url - https://domokit.github.io/sky_home + https://domokit.github.io/home.dart