Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions sky/packages/sky/example/fitness/lib/feed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class FeedFragment extends StatefulComponent {
return new Drawer(
showing: _drawerShowing,
level: 3,
onStatusChanged: _handleDrawerStatusChange,
onDismissed: _handleDrawerDismissed,
navigator: navigator,
children: [
new DrawerHeader(children: [new Text('Fitness')]),
Expand Down Expand Up @@ -132,9 +132,9 @@ class FeedFragment extends StatefulComponent {
});
}

void _handleDrawerStatusChange(AnimationStatus status) {
void _handleDrawerDismissed() {
setState(() {
_drawerStatus = status;
_drawerStatus = AnimationStatus.dismissed;
});
}

Expand Down
14 changes: 7 additions & 7 deletions sky/packages/sky/example/stocks/lib/stock_home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ class StockHome extends StatefulComponent {
});
}

void _handleDrawerStatusChange(AnimationStatus status) {
void _handleDrawerDismissed() {
setState(() {
_drawerStatus = status;
_drawerStatus = AnimationStatus.dismissed;
});
}

Expand All @@ -90,9 +90,9 @@ class StockHome extends StatefulComponent {
});
}

void _handleMenuStatusChanged(AnimationStatus status) {
void _handleMenuDismissed() {
setState(() {
_menuStatus = status;
_menuStatus = AnimationStatus.dismissed;
});
}

Expand All @@ -119,7 +119,7 @@ class StockHome extends StatefulComponent {
return new Drawer(
level: 3,
showing: _drawerShowing,
onStatusChanged: _handleDrawerStatusChange,
onDismissed: _handleDrawerDismissed,
navigator: navigator,
children: [
new DrawerHeader(children: [new Text('Stocks')]),
Expand Down Expand Up @@ -254,7 +254,7 @@ class StockHome extends StatefulComponent {
showing: _isSnackBarShowing,
content: new Text("Stock purchased!"),
actions: [new SnackBarAction(label: "UNDO", onPressed: _handleUndo)],
onStatusChanged: (status) { setState(() { _snackBarStatus = status; }); }
onDismissed: () { setState(() { _snackBarStatus = AnimationStatus.dismissed; }); }
);
}

Expand All @@ -279,7 +279,7 @@ class StockHome extends StatefulComponent {
overlays.add(new ModalOverlay(
children: [new StockMenu(
showing: _menuShowing,
onStatusChanged: _handleMenuStatusChanged,
onDismissed: _handleMenuDismissed,
navigator: navigator,
autorefresh: _autorefresh,
onAutorefreshChanged: _handleAutorefreshChanged
Expand Down
6 changes: 3 additions & 3 deletions sky/packages/sky/example/stocks/lib/stock_menu.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ class StockMenu extends Component {
StockMenu({
Key key,
this.showing,
this.onStatusChanged,
this.onDismissed,
this.navigator,
this.autorefresh: false,
this.onAutorefreshChanged
}) : super(key: key);

final bool showing;
final PopupMenuStatusChangedCallback onStatusChanged;
final PopupMenuDismissedCallback onDismissed;
final Navigator navigator;
final bool autorefresh;
final ValueChanged onAutorefreshChanged;
Expand All @@ -38,7 +38,7 @@ class StockMenu extends Component {
],
level: 4,
showing: showing,
onStatusChanged: onStatusChanged,
onDismissed: onDismissed,
navigator: navigator
),
right: sky.view.paddingRight,
Expand Down
19 changes: 7 additions & 12 deletions sky/packages/sky/lib/widgets/drawer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,22 +40,22 @@ const Duration _kThemeChangeDuration = const Duration(milliseconds: 200);
const Point _kOpenPosition = Point.origin;
const Point _kClosedPosition = const Point(-_kWidth, 0.0);

typedef void DrawerStatusChangedCallback(AnimationStatus status);
typedef void DrawerDismissedCallback();

class Drawer extends StatefulComponent {
Drawer({
Key key,
this.children,
this.showing: false,
this.level: 0,
this.onStatusChanged,
this.onDismissed,
this.navigator
}) : super(key: key);

List<Widget> children;
bool showing;
int level;
DrawerStatusChangedCallback onStatusChanged;
DrawerDismissedCallback onDismissed;
Navigator navigator;

AnimationPerformance _performance;
Expand All @@ -80,7 +80,7 @@ class Drawer extends StatefulComponent {
level = source.level;
navigator = source.navigator;
showing = source.showing;
onStatusChanged = source.onStatusChanged;
onDismissed = source.onDismissed;
}

Widget build() {
Expand Down Expand Up @@ -120,18 +120,13 @@ class Drawer extends StatefulComponent {
}

void _onDismissed() {
_onStatusChanged(AnimationStatus.dismissed);
}

void _onStatusChanged(AnimationStatus status) {
scheduleMicrotask(() {
if (status == AnimationStatus.dismissed &&
navigator != null &&
if (navigator != null &&
navigator.currentRoute is RouteState &&
(navigator.currentRoute as RouteState).owner == this) // TODO(ianh): remove cast once analyzer is cleverer
navigator.pop();
if (onStatusChanged != null)
onStatusChanged(status);
if (onDismissed != null)
onDismissed();
});
}

Expand Down
11 changes: 5 additions & 6 deletions sky/packages/sky/lib/widgets/popup_menu.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,21 @@ const double _kMenuMaxWidth = 5.0 * _kMenuWidthStep;
const double _kMenuHorizontalPadding = 16.0;
const double _kMenuVerticalPadding = 8.0;

typedef void PopupMenuStatusChangedCallback(AnimationStatus status);
typedef void PopupMenuDismissedCallback();

class PopupMenu extends StatefulComponent {

PopupMenu({
Key key,
this.showing,
this.onStatusChanged,
this.onDismissed,
this.items,
this.level,
this.navigator
}) : super(key: key);

bool showing;
PopupMenuStatusChangedCallback onStatusChanged;
PopupMenuDismissedCallback onDismissed;
List<PopupMenuItem> items;
int level;
Navigator navigator;
Expand All @@ -63,7 +63,6 @@ class PopupMenu extends StatefulComponent {
if (!showing && source.showing)
_open();
showing = source.showing;
onStatusChanged = source.onStatusChanged;
if (level != source.level) {
level = source.level;
_updateBoxPainter();
Expand Down Expand Up @@ -96,8 +95,8 @@ class PopupMenu extends StatefulComponent {
navigator.currentRoute is RouteState &&
(navigator.currentRoute as RouteState).owner == this) // TODO(ianh): remove cast once analyzer is cleverer
navigator.pop();
if (onStatusChanged != null)
onStatusChanged(AnimationStatus.dismissed);
if (onDismissed != null)
onDismissed();
}

BoxPainter _painter;
Expand Down
10 changes: 5 additions & 5 deletions sky/packages/sky/lib/widgets/snack_bar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import 'package:sky/widgets/transitions.dart';

export 'package:sky/animation/animation_performance.dart' show AnimationStatus;

typedef void SnackBarStatusChangedCallback(AnimationStatus status);
typedef void SnackBarDismissedCallback();

const Duration _kSlideInDuration = const Duration(milliseconds: 200);

Expand Down Expand Up @@ -46,19 +46,19 @@ class SnackBar extends Component {
this.content,
this.actions,
this.showing,
this.onStatusChanged
this.onDismissed
}) : super(key: key) {
assert(content != null);
}

Widget content;
List<SnackBarAction> actions;
bool showing;
SnackBarStatusChangedCallback onStatusChanged;
SnackBarDismissedCallback onDismissed;

void _onDismissed() {
if (onStatusChanged != null)
scheduleMicrotask(() { onStatusChanged(AnimationStatus.dismissed); });
if (onDismissed != null)
scheduleMicrotask(() { onDismissed(); });
}

Widget build() {
Expand Down