[cleanup] Remove unused public/dart/widgets classes
- application_deprecated
- application_widget_deprecated
- pointer_events_listener_deprecated
- lottie_player.
Change-Id: I0faf0791209733c5f1dade18a8a4bd96a4ad5ffb
diff --git a/public/dart/widgets/BUILD.gn b/public/dart/widgets/BUILD.gn
index 456748d..f976d0e 100644
--- a/public/dart/widgets/BUILD.gn
+++ b/public/dart/widgets/BUILD.gn
@@ -13,9 +13,7 @@
sources = [
"application.dart",
- "application_deprecated.dart",
"model.dart",
- "src/application/application_widget.dart",
"src/model/model.dart",
"src/model/spring_model.dart",
"src/model/ticking_model.dart",
@@ -32,14 +30,11 @@
# Including these files causes analysis errors
# "utils.dart",
# "utils_deprecated.dart",
- # "src/application/application_widget_deprecated.dart",
# "src/utils/frame_rate_tracer.dart",
# "src/utils/deprecate.dart",
# "src/utils/pointer_events_listener.dart",
# "src/utils/change_notifiers.dart",
- # "src/utils/pointer_events_listener_deprecated.dart",
# "src/model/provider.dart",
- # "src/widgets/lottie_player.dart",
# "src/widgets/screen_container.dart",
# "src/widgets/settings_item.dart",
]
diff --git a/public/dart/widgets/lib/application_deprecated.dart b/public/dart/widgets/lib/application_deprecated.dart
deleted file mode 100644
index dde2649..0000000
--- a/public/dart/widgets/lib/application_deprecated.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright 2017 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.
-
-export 'src/application/application_widget_deprecated.dart';
diff --git a/public/dart/widgets/lib/src/application/application_widget_deprecated.dart b/public/dart/widgets/lib/src/application/application_widget_deprecated.dart
deleted file mode 100644
index 7ccdced..0000000
--- a/public/dart/widgets/lib/src/application/application_widget_deprecated.dart
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright 2017 The Fuchsia 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:fidl_fuchsia_sys/fidl.dart';
-import 'package:fidl_fuchsia_ui_app/fidl.dart' show ViewProviderProxy;
-import 'package:fidl_fuchsia_ui_views/fidl_async.dart'
- show ViewToken, ViewHolderToken;
-import 'package:flutter/widgets.dart';
-import 'package:fuchsia_scenic_flutter/child_view.dart' show ChildView;
-import 'package:fuchsia_scenic_flutter/child_view_connection.dart'
- show ChildViewConnection;
-import 'package:lib.app.dart/app.dart';
-import 'package:meta/meta.dart';
-import 'package:zircon/zircon.dart';
-
-/// A [Widget] that displays the view of the application it launches.
-class ApplicationWidget extends StatefulWidget {
- /// The application to launch.
- final String url;
-
- /// The [Launcher] used to launch the application.
- final Launcher launcher;
-
- /// Called if the application terminates.
- final VoidCallback onDone;
-
- /// Child can be hit tested.
- final bool hitTestable;
-
- /// Child can be focused.
- final bool focusable;
-
- /// Constructor.
- const ApplicationWidget({
- @required this.url,
- @required this.launcher,
- Key key,
- this.onDone,
- this.hitTestable = true,
- this.focusable = true,
- }) : super(key: key);
-
- @override
- _ApplicationWidgetState createState() => _ApplicationWidgetState();
-}
-
-class _ApplicationWidgetState extends State<ApplicationWidget> {
- ComponentControllerProxy _applicationController;
- ChildViewConnection _connection;
-
- @override
- void initState() {
- super.initState();
- _launchApp();
- }
-
- @override
- void didUpdateWidget(ApplicationWidget old) {
- super.didUpdateWidget(old);
- if (old.url == widget.url && old.launcher == widget.launcher) {
- return;
- }
-
- _cleanUp();
- _launchApp();
- }
-
- @override
- void dispose() {
- _cleanUp();
- super.dispose();
- }
-
- @override
- Widget build(BuildContext context) => ChildView(
- connection: _connection,
- hitTestable: widget.hitTestable,
- focusable: widget.focusable,
- );
-
- void _cleanUp() {
- _applicationController.ctrl.close();
- _connection = null;
- }
-
- void _launchApp() {
- _applicationController = ComponentControllerProxy();
-
- Services incomingServices = Services();
- widget.launcher.createComponent(
- LaunchInfo(
- url: widget.url, directoryRequest: incomingServices.request()),
- _applicationController.ctrl.request(),
- );
-
- _connection = ChildViewConnection(
- _consumeViewProvider(
- _consumeServices(incomingServices),
- ),
- onAvailable: (_) {},
- onUnavailable: (_) => widget.onDone?.call(),
- );
- }
-
- /// Creates a [ViewProviderProxy] from a [Services], closing it in the
- /// process.
- ViewProviderProxy _consumeServices(Services services) {
- ViewProviderProxy viewProvider = ViewProviderProxy();
- services
- ..connectToService(viewProvider.ctrl)
- ..close();
- return viewProvider;
- }
-
- /// Creates a handle to a [ViewHolderToken] from a [ViewProviderProxy],
- /// closing it in the process.
- ViewHolderToken _consumeViewProvider(
- ViewProviderProxy viewProvider,
- ) {
- final viewTokens = EventPairPair();
- assert(viewTokens.status == ZX.OK);
- final viewHolderToken = ViewHolderToken(value: viewTokens.first);
- final viewToken = ViewToken(value: viewTokens.second);
-
- viewProvider.createView(viewToken.value, null, null);
- viewProvider.ctrl.close();
- return viewHolderToken;
- }
-}
diff --git a/public/dart/widgets/lib/src/utils/pointer_events_listener_deprecated.dart b/public/dart/widgets/lib/src/utils/pointer_events_listener_deprecated.dart
deleted file mode 100644
index a659d13..0000000
--- a/public/dart/widgets/lib/src/utils/pointer_events_listener_deprecated.dart
+++ /dev/null
@@ -1,207 +0,0 @@
-// Copyright 2018 The Fuchsia 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:async';
-import 'dart:developer';
-import 'dart:ui' as ui;
-
-import 'package:fidl_fuchsia_ui_input/fidl.dart';
-import 'package:fidl_fuchsia_ui_policy/fidl.dart';
-
-/// Listens for pointer events and injects them into Flutter input pipeline.
-class PointerEventsListener implements PointerCaptureListenerHack {
- // Holds the fidl binding to receive pointer events.
- final PointerCaptureListenerHackBinding _pointerCaptureListenerBinding =
- PointerCaptureListenerHackBinding();
-
- // Holds the last [PointerEvent] mapped to its pointer id. This is used to
- // determine the correct [PointerDataPacket] to generate at boundary condition
- // of the screen rect.
- final Map<int, PointerEvent> _lastPointerEvent = <int, PointerEvent>{};
-
- // Flag to remember that a down event was seen before a move event.
- // TODO(sanjayc): Should really convert to a FSM for PointerEvent.
- final Map<int, bool> _downEvent = <int, bool>{};
-
- // Holds the [onPointerDataCallback] assigned to [ui.window] at
- // the start of the program.
- ui.PointerDataPacketCallback _originalCallback;
-
- /// Starts listening to pointer events. Also overrides the original
- /// [ui.window.onPointerDataPacket] callback to a NOP since we
- /// inject the pointer events received from the [Presentation] service.
- void listen(PresentationProxy presentation) {
- _originalCallback = ui.window.onPointerDataPacket;
- ui.window.onPointerDataPacket = (ui.PointerDataPacket packet) {};
-
- presentation
- .capturePointerEventsHack(_pointerCaptureListenerBinding.wrap(this));
- }
-
- /// Stops listening to pointer events. Also restores the
- /// [ui.window.onPointerDataPacket] callback.
- void stop() {
- if (_originalCallback != null) {
- _cleanupPointerEvents();
- _pointerCaptureListenerBinding.close();
-
- // Restore the original pointer events callback on the window.
- ui.window.onPointerDataPacket = _originalCallback;
- _originalCallback = null;
- _lastPointerEvent.clear();
- _downEvent.clear();
- }
- }
-
- void _cleanupPointerEvents() {
- for (PointerEvent lastEvent in _lastPointerEvent.values.toList()) {
- if (lastEvent.phase != PointerEventPhase.remove &&
- lastEvent.type != PointerEventType.mouse) {
- onPointerEvent(_clone(lastEvent, PointerEventPhase.remove));
- }
- }
- }
-
- PointerEvent _clone(PointerEvent event, [PointerEventPhase phase]) {
- return PointerEvent(
- buttons: event.buttons,
- deviceId: event.deviceId,
- eventTime: event.eventTime,
- phase: phase ?? event.phase,
- pointerId: event.pointerId,
- radiusMajor: event.radiusMajor,
- radiusMinor: event.radiusMinor,
- type: event.type,
- x: event.x,
- y: event.y);
- }
-
- /// |PointerCaptureListener|.
- @override
- Future<void> onPointerEvent(PointerEvent event) async {
- _onPointerEvent(event);
- }
-
- void _onPointerEvent(PointerEvent event) {
- if (_originalCallback == null) {
- return;
- }
-
- Timeline.startSync('PointerEventsListener.onPointerEvent');
- final packet = _getPacket(event);
- if (packet != null) {
- _originalCallback(ui.PointerDataPacket(data: [packet]));
- }
- Timeline.finishSync();
- }
-
- ui.PointerChange _changeFromPointerEvent(PointerEvent event) {
- PointerEvent lastEvent = _lastPointerEvent[event.pointerId] ?? event;
-
- switch (event.phase) {
- case PointerEventPhase.add:
- return ui.PointerChange.add;
- case PointerEventPhase.hover:
- return ui.PointerChange.hover;
- case PointerEventPhase.down:
- _downEvent[event.pointerId] = true;
- return ui.PointerChange.down;
- case PointerEventPhase.move:
- // If move is the first event, convert to `add` event. Otherwise,
- // flutter pointer state machine throws an exception.
- if (event.type != PointerEventType.mouse &&
- _lastPointerEvent[event.pointerId] == null) {
- return ui.PointerChange.add;
- }
-
- // If move event was seen before down event, convert to `down` event.
- if (event.type != PointerEventType.mouse &&
- _downEvent[event.pointerId] != true) {
- _downEvent[event.pointerId] = true;
- return ui.PointerChange.down;
- }
-
- // For mouse, return a hover event if no buttons were pressed.
- if (event.type == PointerEventType.mouse && event.buttons == 0) {
- return ui.PointerChange.hover;
- }
-
- // Check if this is a boundary condition and convert to up/down event.
- if (lastEvent?.phase == PointerEventPhase.move) {
- if (_outside(lastEvent) && _inside(event)) {
- return ui.PointerChange.down;
- }
- if (_inside(lastEvent) && _outside(event)) {
- return ui.PointerChange.cancel;
- }
- }
-
- return ui.PointerChange.move;
- case PointerEventPhase.up:
- _downEvent[event.pointerId] = false;
- return ui.PointerChange.up;
- case PointerEventPhase.remove:
- return ui.PointerChange.remove;
- case PointerEventPhase.cancel:
- default:
- return ui.PointerChange.cancel;
- }
- }
-
- ui.PointerDeviceKind _kindFromPointerEvent(PointerEvent event) {
- switch (event.type) {
- case PointerEventType.mouse:
- return ui.PointerDeviceKind.mouse;
- case PointerEventType.stylus:
- return ui.PointerDeviceKind.stylus;
- case PointerEventType.invertedStylus:
- return ui.PointerDeviceKind.invertedStylus;
- case PointerEventType.touch:
- default:
- return ui.PointerDeviceKind.touch;
- }
- }
-
- ui.PointerData _getPacket(PointerEvent event) {
- PointerEvent lastEvent = _lastPointerEvent[event.pointerId] ?? event;
-
- // Only allow add and remove pointer events from outside the window bounds.
- // For other events, we drop them if the last two were outside the window
- // bounds. If any of current event or last event lies inside the window,
- // we generate a synthetic down or up event.
- if (event.phase != PointerEventPhase.add &&
- event.phase != PointerEventPhase.remove &&
- _outside(event) &&
- _outside(lastEvent)) {
- _lastPointerEvent[event.pointerId] = event;
- return null;
- }
-
- // Convert from PointerEvent to PointerData.
- final data = ui.PointerData(
- buttons: event.buttons,
- device: event.pointerId,
- timeStamp: Duration(microseconds: event.eventTime ~/ 1000),
- change: _changeFromPointerEvent(event),
- kind: _kindFromPointerEvent(event),
- physicalX: event.x * ui.window.devicePixelRatio,
- physicalY: event.y * ui.window.devicePixelRatio,
- );
-
- // Remember this event for checking boundary condition on the next event.
- _lastPointerEvent[event.pointerId] = event;
-
- return data;
- }
-
- bool _inside(PointerEvent event) {
- return event != null &&
- event.x * ui.window.devicePixelRatio >= 0 &&
- event.x * ui.window.devicePixelRatio < ui.window.physicalSize.width &&
- event.y * ui.window.devicePixelRatio >= 0 &&
- event.y * ui.window.devicePixelRatio < ui.window.physicalSize.height;
- }
-
- bool _outside(PointerEvent event) => !_inside(event);
-}
diff --git a/public/dart/widgets/lib/src/widgets/lottie_player.dart b/public/dart/widgets/lib/src/widgets/lottie_player.dart
deleted file mode 100644
index 59b694e..0000000
--- a/public/dart/widgets/lib/src/widgets/lottie_player.dart
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright 2017 The Fuchsia 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:typed_data';
-
-import 'package:fidl/fidl.dart' show InterfaceHandle;
-import 'package:fidl_fuchsia_mem/fidl.dart' show Buffer;
-import 'package:fidl_fuchsia_skia_skottie/fidl.dart' as skottie;
-import 'package:fidl_fuchsia_sys/fidl.dart';
-import 'package:fidl_fuchsia_ui_app/fidl.dart' show ViewProviderProxy;
-import 'package:fidl_fuchsia_ui_views/fidl_async.dart'
- show ViewToken, ViewHolderToken;
-import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
-import 'package:fuchsia_scenic_flutter/child_view.dart' show ChildView;
-import 'package:fuchsia_scenic_flutter/child_view_connection.dart'
- show ChildViewConnection;
-import 'package:lib.app.dart/app.dart';
-import 'package:meta/meta.dart';
-import 'package:zircon/zircon.dart';
-
-typedef LoadCallback = void Function(
- skottie.Status status, skottie.Player player);
-
-/// A [Widget] that displays lottie animation in a scenic view.
-class LottiePlayer extends StatefulWidget {
- /// The JSON data of the animation as a string.
- final String json;
-
- /// The background color.
- final Color backgroundColor;
-
- /// Called after animation is loaded.
- final LoadCallback onLoad;
-
- /// Loops the animation. Default [true].
- final bool loop;
-
- /// Starts playing the animation after loading. Default [true].
- final bool autoplay;
-
- /// Constructor.
- const LottiePlayer({
- @required this.json,
- this.backgroundColor = Colors.black,
- this.loop = true,
- this.autoplay = true,
- Key key,
- this.onLoad,
- }) : super(key: key);
-
- @override
- _LottiePlayerState createState() => _LottiePlayerState();
-}
-
-class _LottiePlayerState extends State<LottiePlayer> {
- final ComponentControllerProxy _controller = ComponentControllerProxy();
- final skottie.LoaderProxy _loader = skottie.LoaderProxy();
- ChildViewConnection _connection;
-
- @override
- void initState() {
- super.initState();
-
- _launchViewer();
- _loadViewer();
- }
-
- @override
- void didUpdateWidget(LottiePlayer old) {
- super.didUpdateWidget(old);
- if (old.json == widget.json &&
- old.backgroundColor == widget.backgroundColor &&
- old.loop == widget.loop &&
- old.autoplay == widget.autoplay) {
- return;
- }
-
- _loadViewer();
- }
-
- @override
- void dispose() {
- _loader?.ctrl?.close();
- _controller?.ctrl?.close();
- _connection = null;
-
- super.dispose();
- }
-
- @override
- Widget build(BuildContext context) => ChildView(
- connection: _connection,
- hitTestable: false,
- focusable: false,
- );
-
- void _launchViewer() {
- final startupContext = StartupContext.fromStartupInfo();
- final incomingServices = Services();
-
- final launcher = LauncherProxy();
- connectToService(startupContext.environmentServices, launcher.ctrl);
- launcher.createComponent(
- LaunchInfo(
- url: 'skottie_viewer',
- directoryRequest: incomingServices.request(),
- ),
- _controller.ctrl.request(),
- );
- launcher.ctrl.close();
-
- final viewTokens = EventPairPair();
- assert(viewTokens.status == ZX.OK);
- final viewHolderToken = ViewHolderToken(value: viewTokens.first);
- final viewToken = ViewToken(value: viewTokens.second);
-
- final viewProvider = ViewProviderProxy();
- incomingServices.connectToService(viewProvider.ctrl);
- viewProvider.createView(viewToken.value, null, null);
- viewProvider.ctrl.close();
-
- incomingServices
- ..connectToService(_loader.ctrl)
- ..close();
-
- _connection = ChildViewConnection(viewHolderToken);
- }
-
- void _loadViewer() {
- final SizedVmo vmo =
- SizedVmo.fromUint8List(Uint8List.fromList(widget.json.codeUnits));
- final options = skottie.Options(
- backgroundColor: widget.backgroundColor.value,
- loop: widget.loop,
- autoplay: widget.autoplay,
- );
- _loader.load(Buffer(vmo: vmo, size: vmo.size), options,
- (skottie.Status status, InterfaceHandle<skottie.Player> player) {
- widget.onLoad(status, skottie.PlayerProxy()..ctrl.bind(player));
- });
- }
-}
diff --git a/public/dart/widgets/lib/utils_deprecated.dart b/public/dart/widgets/lib/utils_deprecated.dart
deleted file mode 100644
index 2d6ae85..0000000
--- a/public/dart/widgets/lib/utils_deprecated.dart
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2018 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
-
-export 'src/utils/change_notifiers.dart';
-export 'src/utils/pointer_events_listener_deprecated.dart';
diff --git a/public/dart/widgets/lib/widgets.dart b/public/dart/widgets/lib/widgets.dart
index 2897c7b..6bf60d9 100644
--- a/public/dart/widgets/lib/widgets.dart
+++ b/public/dart/widgets/lib/widgets.dart
@@ -11,7 +11,6 @@
export 'src/widgets/conditional_builder.dart';
export 'src/widgets/fuchsia_spinner.dart';
export 'src/widgets/future_widget.dart';
-export 'src/widgets/lottie_player.dart';
export 'src/widgets/rk4_spring_simulation.dart';
export 'src/widgets/screen_container.dart';
export 'src/widgets/ticking_state.dart';