More work with fire stats

This commit is contained in:
Vicente J. Ruiz Jurado 2018-08-01 22:47:18 +02:00
parent 74b0d37839
commit 367df46f7e
6 changed files with 46 additions and 17 deletions

View file

@ -82,9 +82,11 @@ class _ActiveFiresPageState extends State<ActiveFiresPage> {
}
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<ActiveFiresPage> {
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);
},

View file

@ -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";

View file

@ -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<genericMap> {
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<genericMap> {
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<genericMap> {
Stack(fit: StackFit.expand, children: <Widget>[
// 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<genericMap> {
case FireMapStatus.viewFireNotification:
return <Widget>[
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 <Widget>[];

View file

@ -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)
}