feat: Make licenses work better
This commit is contained in:
parent
286f705c41
commit
037fab6409
@ -21,7 +21,9 @@
|
||||
},
|
||||
"about": {
|
||||
"title": "About",
|
||||
"source": "Source code"
|
||||
"source": "Source code",
|
||||
"license": "License",
|
||||
"close": "Clsoe"
|
||||
},
|
||||
"tooltips": {
|
||||
"addNewItem": "Add new item"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,7 @@ import 'package:anitrack/i18n/strings.g.dart';
|
||||
import 'package:anitrack/licenses.g.dart';
|
||||
import 'package:anitrack/src/ui/constants.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
class AboutPage extends StatelessWidget {
|
||||
@ -35,14 +36,49 @@ class AboutPage extends StatelessWidget {
|
||||
'AniTrack',
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: () async {
|
||||
await launchUrl(
|
||||
Uri.parse('https://codeberg.org/PapaTutuWawa/anitrack'),
|
||||
mode: LaunchMode.externalApplication,
|
||||
);
|
||||
},
|
||||
child: Text(t.about.source),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 4),
|
||||
child: ElevatedButton(
|
||||
onPressed: () async {
|
||||
await launchUrl(
|
||||
Uri.parse(
|
||||
'https://codeberg.org/PapaTutuWawa/anitrack',
|
||||
),
|
||||
mode: LaunchMode.externalApplication,
|
||||
);
|
||||
},
|
||||
child: Text(t.about.source),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 4),
|
||||
child: ElevatedButton(
|
||||
onPressed: () async {
|
||||
final licenseText = await rootBundle.loadString(
|
||||
'LICENSE',
|
||||
);
|
||||
await showDialog<void>(
|
||||
context: context,
|
||||
builder: (context) {
|
||||
return SimpleDialog(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Text(licenseText),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
child: Text(t.about.license),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
@ -54,12 +90,32 @@ class AboutPage extends StatelessWidget {
|
||||
|
||||
return ListTile(
|
||||
title: Text(dep.name),
|
||||
onTap: () async {
|
||||
if (dep.repository == null) return;
|
||||
|
||||
await launchUrl(
|
||||
Uri.parse(dep.repository!),
|
||||
mode: LaunchMode.externalApplication,
|
||||
onTap: () {
|
||||
showDialog<void>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
content: SingleChildScrollView(
|
||||
child: Text(dep.license ?? ''),
|
||||
),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
child: Text(t.about.close),
|
||||
),
|
||||
if (dep.repository != null)
|
||||
TextButton(
|
||||
onPressed: () async {
|
||||
await launchUrl(
|
||||
Uri.parse(dep.repository!),
|
||||
mode: LaunchMode.externalApplication,
|
||||
);
|
||||
},
|
||||
child: Text(t.about.source),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
@ -46,6 +46,8 @@ dev_dependencies:
|
||||
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
assets:
|
||||
- LICENSE
|
||||
|
||||
flutter_icons:
|
||||
android: "launcher_icon"
|
||||
|
Loading…
Reference in New Issue
Block a user