-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2313 from airqo-platform/staging
move to production
- Loading branch information
Showing
20 changed files
with
4,507 additions
and
50 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 25 additions & 19 deletions
44
mobile-v3/lib/src/app/dashboard/models/forecast_response.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,41 @@ | ||
import 'package:airqo/src/app/dashboard/models/airquality_response.dart'; | ||
class ForecastResponse { | ||
List<Forecast> forecasts; | ||
List<Forecast> forecasts; | ||
|
||
ForecastResponse({ | ||
required this.forecasts, | ||
}); | ||
ForecastResponse({ | ||
required this.forecasts, | ||
}); | ||
|
||
factory ForecastResponse.fromJson(Map<String, dynamic> json) => ForecastResponse( | ||
forecasts: List<Forecast>.from(json["forecasts"].map((x) => Forecast.fromJson(x))), | ||
); | ||
factory ForecastResponse.fromJson(Map<String, dynamic> json) => | ||
ForecastResponse( | ||
forecasts: List<Forecast>.from( | ||
json["forecasts"].map((x) => Forecast.fromJson(x))), | ||
); | ||
|
||
Map<String, dynamic> toJson() => { | ||
Map<String, dynamic> toJson() => { | ||
"forecasts": List<dynamic>.from(forecasts.map((x) => x.toJson())), | ||
}; | ||
}; | ||
} | ||
|
||
class Forecast { | ||
double pm25; | ||
DateTime time; | ||
Measurement measurement; | ||
double pm25; | ||
DateTime time; | ||
|
||
Forecast({ | ||
required this.pm25, | ||
required this.time, | ||
}); | ||
Forecast({ | ||
required this.measurement, | ||
required this.pm25, | ||
required this.time, | ||
}); | ||
|
||
factory Forecast.fromJson(Map<String, dynamic> json) => Forecast( | ||
factory Forecast.fromJson(Map<String, dynamic> json) => Forecast( | ||
measurement: Measurement.fromJson(json["measurement"]), | ||
pm25: json["pm2_5"]?.toDouble(), | ||
time: DateTime.parse(json["time"]), | ||
); | ||
); | ||
|
||
Map<String, dynamic> toJson() => { | ||
Map<String, dynamic> toJson() => { | ||
"pm2_5": pm25, | ||
"time": time.toIso8601String(), | ||
}; | ||
}; | ||
} |
43 changes: 43 additions & 0 deletions
43
mobile-v3/lib/src/app/dashboard/pages/no_air_quality_data_page.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_svg/flutter_svg.dart'; | ||
|
||
class NoAirQualityDataPage extends StatelessWidget { | ||
const NoAirQualityDataPage({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return LayoutBuilder( | ||
builder: (context, constraints) { | ||
double maxWidth = constraints.maxWidth; | ||
double maxHeight = constraints.maxHeight; | ||
|
||
return Column( | ||
mainAxisAlignment: MainAxisAlignment.center, | ||
children: [ | ||
SvgPicture.asset( | ||
'assets/icons/error_occured.svg', | ||
width: maxWidth * 0.5, | ||
height: maxWidth * 0.5, | ||
), | ||
SizedBox(height: maxHeight * 0.05), | ||
Text( | ||
"No Air Quality Data", | ||
style: Theme.of(context).textTheme.headlineLarge!.copyWith( | ||
fontSize: maxWidth * 0.06, | ||
fontWeight: FontWeight.bold, | ||
), | ||
), | ||
SizedBox(height: maxHeight * 0.02), | ||
Text( | ||
"We're having issues with our network\nno worries, we'll be back up soon.", | ||
textAlign: TextAlign.center, | ||
style: TextStyle( | ||
fontSize: maxWidth * 0.04, | ||
), | ||
), | ||
], | ||
); | ||
}, | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
43 changes: 43 additions & 0 deletions
43
mobile-v3/lib/src/app/map/pages/map_search_error_page.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_svg/flutter_svg.dart'; | ||
|
||
class MapSearchErrorPage extends StatelessWidget { | ||
const MapSearchErrorPage({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return LayoutBuilder( | ||
builder: (context, constraints) { | ||
double maxWidth = constraints.maxWidth; | ||
double maxHeight = constraints.maxHeight; | ||
|
||
return Column( | ||
mainAxisAlignment: MainAxisAlignment.center, | ||
children: [ | ||
SvgPicture.asset( | ||
'assets/icons/location.svg', | ||
width: maxWidth * 0.5, | ||
height: maxWidth * 0.5, | ||
), | ||
SizedBox(height: maxHeight * 0.05), | ||
Text( | ||
"No results found", | ||
style: Theme.of(context).textTheme.headlineLarge!.copyWith( | ||
fontSize: maxWidth * 0.06, | ||
fontWeight: FontWeight.bold, | ||
), | ||
), | ||
SizedBox(height: maxHeight * 0.02), | ||
Text( | ||
"Please try again with a different location name", | ||
textAlign: TextAlign.center, | ||
style: TextStyle( | ||
fontSize: maxWidth * 0.04, | ||
), | ||
), | ||
], | ||
); | ||
}, | ||
); | ||
} | ||
} |
57 changes: 57 additions & 0 deletions
57
mobile-v3/lib/src/app/notifications/pages/cleared_notifications_page.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_svg/svg.dart'; | ||
|
||
class ClearedNotificationsScreen extends StatelessWidget { | ||
@override | ||
Widget build(BuildContext context) { | ||
return Scaffold( | ||
backgroundColor: Colors.black, | ||
body: LayoutBuilder( | ||
builder: (context, constraints) { | ||
double maxWidth = constraints.maxWidth; | ||
double maxHeight = constraints.maxHeight; | ||
|
||
return Center( | ||
child: Column( | ||
mainAxisAlignment: MainAxisAlignment.center, | ||
children: [ | ||
Container( | ||
width: maxWidth * 0.2, | ||
height: maxWidth * 0.2, | ||
decoration: BoxDecoration( | ||
color: Colors.grey[900], | ||
shape: BoxShape.circle, | ||
), | ||
// child: Icon( | ||
// Icons.notifications, | ||
// color: Colors.white, | ||
// size: maxWidth * 0.1, | ||
// ), | ||
child: SvgPicture.asset( | ||
"assets/icons/notification.svg", | ||
)), | ||
SizedBox(height: maxHeight * 0.05), | ||
Text( | ||
"You're all cleared up", | ||
style: TextStyle( | ||
color: Colors.white, | ||
fontSize: maxWidth * 0.06, | ||
fontWeight: FontWeight.bold, | ||
), | ||
), | ||
SizedBox(height: maxHeight * 0.02), | ||
Text( | ||
"You deserve some ice cream!", | ||
style: TextStyle( | ||
color: Colors.grey, | ||
fontSize: maxWidth * 0.045, | ||
), | ||
), | ||
], | ||
), | ||
); | ||
}, | ||
), | ||
); | ||
} | ||
} |
57 changes: 57 additions & 0 deletions
57
mobile-v3/lib/src/app/notifications/pages/no_notifications_page.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_svg/svg.dart'; | ||
|
||
class NoNotificationsScreen extends StatelessWidget { | ||
@override | ||
Widget build(BuildContext context) { | ||
return Scaffold( | ||
backgroundColor: Colors.black, | ||
body: LayoutBuilder( | ||
builder: (context, constraints) { | ||
double maxWidth = constraints.maxWidth; | ||
double maxHeight = constraints.maxHeight; | ||
|
||
return Center( | ||
child: Column( | ||
mainAxisAlignment: MainAxisAlignment.center, | ||
children: [ | ||
Container( | ||
width: maxWidth * 0.2, | ||
height: maxWidth * 0.2, | ||
decoration: BoxDecoration( | ||
color: Colors.grey[900], | ||
shape: BoxShape.circle, | ||
), | ||
// child: Icon( | ||
// Icons.notifications, | ||
// color: Colors.white, | ||
// size: maxWidth * 0.1, | ||
// ), | ||
child: SvgPicture.asset( | ||
"assets/icons/notification.svg", | ||
)), | ||
SizedBox(height: maxHeight * 0.05), | ||
Text( | ||
"No Notifications", | ||
style: TextStyle( | ||
color: Colors.white, | ||
fontSize: maxWidth * 0.06, | ||
fontWeight: FontWeight.bold, | ||
), | ||
), | ||
SizedBox(height: maxHeight * 0.02), | ||
Text( | ||
"Here you'll find all updates on our Air Quality network", | ||
style: TextStyle( | ||
color: Colors.grey, | ||
fontSize: maxWidth * 0.045, | ||
), | ||
), | ||
], | ||
), | ||
); | ||
}, | ||
), | ||
); | ||
} | ||
} |
Oops, something went wrong.