From 367df46f7e0d0bed37d316af6a74526bff4a3807 Mon Sep 17 00:00:00 2001 From: "Vicente J. Ruiz Jurado" Date: Wed, 1 Aug 2018 22:47:18 +0200 Subject: [PATCH] More work with fire stats --- lib/activeFires.dart | 22 +++++++++++++++------- lib/generated/i18n.dart | 6 ++++++ lib/genericMap.dart | 25 +++++++++++++++++-------- lib/genericMapBottom.dart | 6 ++++-- res/values/strings_en.arb | 2 ++ res/values/strings_es.arb | 2 ++ 6 files changed, 46 insertions(+), 17 deletions(-) diff --git a/lib/activeFires.dart b/lib/activeFires.dart index 6f590ea..5075477 100644 --- a/lib/activeFires.dart +++ b/lib/activeFires.dart @@ -82,9 +82,11 @@ class _ActiveFiresPageState extends State { } Widget _buildRow(BuildContext context, YourLocation loc, onToggle, onTap) { + final fireStatsStyle = new TextStyle(color: fires600); return new ListTile( dense: true, - leading: const Icon(Icons.location_on), + isThreeLine: false, + // leading: const Icon(Icons.location_on), trailing: new IconButton( icon: new Icon(loc.subscribed ? Icons.notifications_active @@ -93,12 +95,18 @@ class _ActiveFiresPageState extends State { loc.subscribed = !loc.subscribed; onToggle(loc); }), - title: - new Text(loc.description) - , - subtitle: loc.currentNumFires == YourLocation.withoutStats || - loc.currentNumFires == 0 ? null: new Text(S.of(context).firesAroundThisArea( - loc.currentNumFires.toString(), loc.distance.toString())), + title: new Text(loc.description), + subtitle: loc.currentNumFires == YourLocation.withoutStats + ? null + : loc.currentNumFires == 0 + ? new Text(S.of(context).noFiresAround) + : loc.currentNumFires == 1 + ? new Text(S + .of(context) + .fireAroundThisArea(loc.distance.toString()), style: fireStatsStyle) + : new Text(S.of(context).firesAroundThisArea( + loc.currentNumFires.toString(), + loc.distance.toString()), style: fireStatsStyle), onLongPress: () { showSnackMsg(S.of(context).toDeleteThisPlace); }, diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 9b0c5bd..0267484 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -57,6 +57,7 @@ class S implements WidgetsLocalizations { String get firesNearPlace => "Fires near other place"; String get getAlertsOfFiresinThatArea => "Get alerts of fires in that area"; String get isYourUbicationEnabled => "I cannot get your current location. It's your ubication enabled?"; + String get noFiresAround => "There is no fires"; String get notPermsUbication => "We don't have permission to get your location"; String get notifyAFire => "Notify a fire"; String get privacyPolicy => "Privacy Policy"; @@ -73,6 +74,7 @@ class S implements WidgetsLocalizations { String get youDeletedThisPlace => "You deleted this place"; String activeFiresWorldWide(String activeFires) => "$activeFires active fires worldwide"; String appLicense(String thisYear) => "(c) 2017-$thisYear Comunes Association under the GNU Affero GPL v3"; + String fireAroundThisArea(String kmAround) => "A fire at $kmAround км around this area"; String firesAroundThisArea(String numFires, String kmAround) => "$numFires fires at $kmAround км around this area"; String inDays(String value) => "$value days"; String inHours(String value) => "$value hours"; @@ -139,6 +141,8 @@ class es extends S { @override String get callEmergencyServicesTitle => "Llama al 112"; @override + String get noFiresAround => "Sin fuegos"; + @override String get chooseAPlace => "Elige un lugar"; @override String get firesNearPlace => "Fuegos cercanos a ti"; @@ -219,6 +223,8 @@ class es extends S { @override String activeFiresWorldWide(String activeFires) => "$activeFires fuegos activos en el mundo"; @override + String fireAroundThisArea(String kmAround) => "Un fuego a $kmAround км a la redonda"; + @override String inSomething(String something) => "en $something"; @override String inMinutes(String value) => "$value minutos"; diff --git a/lib/genericMap.dart b/lib/genericMap.dart index 4d413ed..e726451 100644 --- a/lib/genericMap.dart +++ b/lib/genericMap.dart @@ -38,7 +38,7 @@ class _ViewModel { _ViewModel( {@required this.mapState, - @required this.serverUrl, + @required this.serverUrl, @required this.onSubs, @required this.onSubsConfirmed, @required this.onUnSubs, @@ -107,7 +107,7 @@ class _genericMapState extends State { store.dispatch(new UpdateYourLocationMapAction(loc)); store.dispatch(new EditConfirmYourLocationAction(loc)); }, - serverUrl: store.state.firesApiUrl, + serverUrl: store.state.firesApiUrl, mapState: store.state.fireMapState); }, builder: (context, view) { @@ -205,10 +205,16 @@ class _genericMapState extends State { new TextEditingValue( text: _location.description, selection: new TextSelection.collapsed( - offset: _location.description.length - 1))), + offset: _location.description.length ))), onChanged: (newDesc) { + debugPrint("OnChanged"); _location = _location.copyWith(description: newDesc); }, + onSubmitted: (newDesc) { + debugPrint("OnSubmitted"); + _location = _location.copyWith(description: newDesc); + view.onEditConfirm(_location); + }, ) : status == FireMapStatus.viewFireNotification ? new Text(S.of(context).fireNotificationTitle) @@ -255,7 +261,8 @@ class _genericMapState extends State { Stack(fit: StackFit.expand, children: [ // Material(color: Colors.yellowAccent), new Opacity( - opacity: status == FireMapStatus.subscriptionConfirm + opacity: status == FireMapStatus.subscriptionConfirm || + status == FireMapStatus.edit ? 0.5 : 1.0, child: map), @@ -303,10 +310,12 @@ class _genericMapState extends State { case FireMapStatus.viewFireNotification: return [ new IconButton( - icon: new Icon(Icons.share), - onPressed: () { - Share.share('${view.mapState.fireNotification.description}. ${view.serverUrl}fire/${view.mapState.fireNotification.sealed}'); - }) + icon: new Icon(Icons.share), + onPressed: () { + Share.share( + '${view.mapState.fireNotification.description}. ${view + .serverUrl}fire/${view.mapState.fireNotification.sealed}'); + }) ]; default: return []; diff --git a/lib/genericMapBottom.dart b/lib/genericMapBottom.dart index 77d96ae..1c27d3d 100644 --- a/lib/genericMapBottom.dart +++ b/lib/genericMapBottom.dart @@ -72,8 +72,10 @@ class GenericMapBottom extends StatelessWidget { case FireMapStatus.view: if (state.numFires != null) { actionList.add(new Text(state.numFires > 0 - ? S.of(context).firesAroundThisArea( - state.numFires.toString(), kmAround.toString()) + ? loc.currentNumFires == 1 + ? S.of(context).fireAroundThisArea(loc.distance.toString()) + : S.of(context).firesAroundThisArea( + state.numFires.toString(), kmAround.toString()) : S.of(context).noFiresAroundThisArea(kmAround.toString()))); // SizedBox(width: 10.0) } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 23205c7..428dca0 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -15,7 +15,9 @@ "confirm": "Confirm", "unsubscribe": "Unsubscribe", "firesAroundThisArea": "$numFires fires at $kmAround км around this area", + "fireAroundThisArea": "A fire at $kmAround км around this area", "noFiresAroundThisArea": "There is no fires at $kmAround км around this area", + "noFiresAround": "There is no fires", "activeFiresWorldWide": "$activeFires active fires worldwide", "updatedLastCheck": "Updated $lastCheck", "appLicense": "(c) 2017-$thisYear Comunes Association under the GNU Affero GPL v3", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index d3d8b9b..a83745d 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -15,6 +15,8 @@ "confirm": "Confirmar", "unsubscribe": "Desuscríbete", "firesAroundThisArea": "$numFires fuegos a $kmAround км a la redonda", + "fireAroundThisArea": "Un fuego a $kmAround км a la redonda", + "noFiresAround": "Sin fuegos", "noFiresAroundThisArea": "No hay fuegos a $kmAround км a la redonda", "activeFiresWorldWide": "$activeFires fuegos activos en el mundo", "updatedLastCheck": "Actualizado $lastCheck",