From 74d17c70ff6420ab717df15ea782320522ab1c7c Mon Sep 17 00:00:00 2001 From: marco Date: Tue, 28 Jan 2025 23:04:37 +0100 Subject: [PATCH] added an about page --- lib/main.dart | 2 ++ lib/pages/about_page.dart | 29 +++++++++++++++++++++++++ lib/pages/main_navigation_scaffold.dart | 11 ++++++++++ 3 files changed, 42 insertions(+) create mode 100644 lib/pages/about_page.dart diff --git a/lib/main.dart b/lib/main.dart index 19fdaa8..c7fa20c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'pages/about_page.dart'; import 'pages/flood_station_page.dart'; import 'pages/main_navigation_scaffold.dart'; import 'services/flood_station_provider.dart'; @@ -31,6 +32,7 @@ class MyApp extends StatelessWidget { routes: { MainNavigationScaffold.routeName: (context) => MainNavigationScaffold(), FloodStationPage.routeName: (context) => FloodStationPage(), + AboutPage.routeName: (context) => AboutPage(), }, ); } diff --git a/lib/pages/about_page.dart b/lib/pages/about_page.dart new file mode 100644 index 0000000..8f1918e --- /dev/null +++ b/lib/pages/about_page.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; + +class AboutPage extends StatelessWidget { + const AboutPage({super.key}); + + static const String aboutText = ''' +This App was build for demonstration purposes. +It requests data from the Environment Agency Real Time flood-monitoring API and displays a list and map of all flood measurement stations, +as well as a graph showing the last 24 hours of measurements. +The source code can be found at https://git.skup.in/. + '''; + + static const String routeName = '/about'; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('About'), + ), + body: Center( + child: Text( + aboutText, + style: Theme.of(context).textTheme.bodyLarge, + ), + ), + ); + } +} diff --git a/lib/pages/main_navigation_scaffold.dart b/lib/pages/main_navigation_scaffold.dart index b7a7bd5..eda92b9 100644 --- a/lib/pages/main_navigation_scaffold.dart +++ b/lib/pages/main_navigation_scaffold.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; +import 'about_page.dart'; import 'landing_page.dart'; import 'map_page.dart'; @@ -23,6 +24,16 @@ class _MainNavigationScaffoldState extends State { @override Widget build(BuildContext context) { return Scaffold( + appBar: AppBar( + title: Text('Floodwatch'), + actions: [ + IconButton( + onPressed: () => + Navigator.of(context).pushNamed(AboutPage.routeName), + icon: Icon(Icons.info_outline), + ) + ], + ), bottomNavigationBar: NavigationBar( selectedIndex: _selectedPageIndex, onDestinationSelected: (value) => setState(() {