mobile: Add about screen

This commit is contained in:
Elias Projahn 2020-05-24 11:45:23 +02:00
parent 0ccebb2217
commit a0310883fb
4 changed files with 81 additions and 0 deletions

View file

@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:url_launcher/url_launcher.dart' as url;
class AboutScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final textTheme = theme.textTheme;
return Scaffold(
appBar: AppBar(
title: Text('About'),
),
body: FutureBuilder<String>(
future: rootBundle.loadString('assets/about.md'),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Markdown(
data: snapshot.data,
styleSheet: MarkdownStyleSheet(
h1: textTheme.headline6.copyWith(
height: 2.0,
),
a: textTheme.bodyText1.copyWith(
color: theme.accentColor,
decoration: TextDecoration.underline,
),
),
onTapLink: (link) => url.launch(link),
);
} else {
return Container();
}
},
),
);
}
}

View file

@ -4,6 +4,7 @@ import 'package:musicus_database/musicus_database.dart';
import '../icons.dart';
import 'about.dart';
import 'person.dart';
import 'settings.dart';
@ -48,6 +49,10 @@ class _HomeScreenState extends State<HomeScreen> {
value: 2,
child: Text('Settings'),
),
PopupMenuItem(
value: 3,
child: Text('About'),
),
],
onSelected: (selected) {
if (selected == 1) {
@ -65,6 +70,13 @@ class _HomeScreenState extends State<HomeScreen> {
builder: (context) => SettingsScreen(),
),
);
} else if (selected == 3) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AboutScreen(),
),
);
}
},
),