diff --git a/lib/activeFires.dart b/lib/activeFires.dart index bb3fa75..941a5ad 100644 --- a/lib/activeFires.dart +++ b/lib/activeFires.dart @@ -203,7 +203,7 @@ class _ActiveFiresPageState extends State { return Scaffold( key: _scaffoldKey, // FIXME new? - drawer: new MainDrawer(context), + drawer: MainDrawer.getDrawer(context), appBar: new AppBar( title: Text(title), leading: IconButton( diff --git a/lib/fireNotificationList.dart b/lib/fireNotificationList.dart index 626615a..3d81208 100644 --- a/lib/fireNotificationList.dart +++ b/lib/fireNotificationList.dart @@ -178,7 +178,7 @@ class _FireNotificationListState extends State { return Scaffold( key: _scaffoldKey, - drawer: new MainDrawer(context), + drawer: MainDrawer.getDrawer(context), appBar: new AppBar( title: Text(title), leading: IconButton( diff --git a/lib/homePage.dart b/lib/homePage.dart index 2f9aa6e..7cac249 100644 --- a/lib/homePage.dart +++ b/lib/homePage.dart @@ -27,7 +27,7 @@ class HomePage extends StatelessWidget { Widget build(BuildContext context) { return new Scaffold( key: _scaffoldKey, - drawer: new MainDrawer(context), + drawer: MainDrawer.getDrawer(context), floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, floatingActionButton: Column(mainAxisAlignment: MainAxisAlignment.end, children: [ diff --git a/lib/mainDrawer.dart b/lib/mainDrawer.dart index ca1ff46..06aa6ba 100644 --- a/lib/mainDrawer.dart +++ b/lib/mainDrawer.dart @@ -2,6 +2,7 @@ import 'package:badge/badge.dart'; import 'package:comunes_flutter/comunes_flutter.dart'; import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; +import 'package:flutter_simple_dependency_injection/injector.dart'; import 'activeFires.dart'; import 'colors.dart'; @@ -37,6 +38,18 @@ class _ViewModel { class MainDrawer extends Drawer { MainDrawer(BuildContext context, {key}) : super(key: key, child: mainDrawer(context)); + + static getDrawer(BuildContext context) { + Injector inj = Injector.getInjector(); + MainDrawer d; + try { + d = inj.get(); + } catch (e) { + inj.map((i) => new MainDrawer(context), isSingleton: true); + d = inj.get(); + } + return d; + } } Widget mainDrawer(BuildContext context) { @@ -97,7 +110,7 @@ Widget mainDrawer(BuildContext context) { leading: const Icon(Icons.notifications), title: view.unreadCount > 0 ? Badge.after( - spacing: 5.0, + spacing: 5.0, borderColor: Colors.red, child: Text(S.of(context).fireNotificationsTitleShort), value: ' ${view.unreadCount.toString()} ')