Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(438)

Unified Diff: sky/sdk/example/fitness/lib/home.dart

Issue 1232673003: Delete drawerController and make drawer handle back behavior natively (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: fix settings page of fitness app Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sky/sdk/example/fitness/lib/main.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/sdk/example/fitness/lib/home.dart
diff --git a/sky/sdk/example/fitness/lib/home.dart b/sky/sdk/example/fitness/lib/home.dart
index d33a9c25f75b8c39a63b08db8ec6c1cea249f8ca..8d3c1599f8c5ff0d8d957e62ab26a0f989754281 100644
--- a/sky/sdk/example/fitness/lib/home.dart
+++ b/sky/sdk/example/fitness/lib/home.dart
@@ -34,7 +34,6 @@ class HomeFragment extends StatefulComponent {
void initState() {
// if (debug)
// new Timer(new Duration(seconds: 1), dumpState);
- _drawerController = new DrawerController(_handleDrawerStatusChanged);
super.initState();
}
@@ -46,30 +45,20 @@ class HomeFragment extends StatefulComponent {
bool _isShowingSnackBar = false;
bool _isRunning = false;
- DrawerController _drawerController;
- bool _drawerShowing = false;
-
- void _handleDrawerStatusChanged(bool showing) {
- if (!showing && navigator.currentRoute.name == "/drawer") {
- navigator.pop();
- }
- setState(() {
- _drawerShowing = showing;
- });
- }
-
void _handleFitnessModeChange(FitnessMode value) {
setState(() {
_fitnessMode = value;
});
- assert(navigator.currentRoute.name == '/drawer');
- navigator.pop();
}
Drawer buildDrawer() {
+ if (_drawerStatus == DrawerStatus.inactive)
+ return null;
return new Drawer(
- controller: _drawerController,
+ showing: _drawerShowing,
level: 3,
+ onStatusChanged: _handleDrawerStatusChange,
+ navigator: navigator,
children: [
new DrawerHeader(children: [new Text('Fitness')]),
new DrawerItem(
@@ -94,20 +83,30 @@ class HomeFragment extends StatefulComponent {
);
}
- void _handleShowSettings() {
- assert(navigator.currentRoute.name == '/drawer');
- navigator.pop();
- assert(navigator.currentRoute.name == '/');
- navigator.pushNamed('/settings');
- }
+ bool _drawerShowing = false;
+ DrawerStatus _drawerStatus = DrawerStatus.inactive;
void _handleOpenDrawer() {
- _drawerController.open();
- navigator.pushState("/drawer", (_) {
- _drawerController.close();
+ setState(() {
+ _drawerShowing = true;
+ _drawerStatus = DrawerStatus.active;
});
}
+ void _handleDrawerStatusChange(DrawerStatus status) {
+ if (status == DrawerStatus.inactive && navigator.currentRoute.name == "/drawer") {
+ navigator.pop();
+ }
+ setState(() {
+ _drawerStatus = status;
+ });
+ }
+
+ void _handleShowSettings() {
+ navigator.pop();
+ navigator.pushNamed('/settings');
+ }
+
// TODO(jackson): We should be localizing
String get fitnessModeTitle {
switch(_fitnessMode) {
@@ -203,7 +202,7 @@ class HomeFragment extends StatefulComponent {
body: buildBody(),
snackBar: buildSnackBar(),
floatingActionButton: buildFloatingActionButton(),
- drawer: _drawerShowing ? buildDrawer() : null
+ drawer: buildDrawer()
);
}
}
« no previous file with comments | « no previous file | sky/sdk/example/fitness/lib/main.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698