You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
4.1 KiB
112 lines
4.1 KiB
import 'package:flutter/material.dart'; |
|
import 'package:info_tren/pages/about/about_page.dart'; |
|
import 'package:url_launcher/url_launcher.dart'; |
|
|
|
class AboutPageStateMaterial extends AboutPageState { |
|
@override |
|
Widget build(BuildContext context) { |
|
return Scaffold( |
|
appBar: AppBar( |
|
title: Text(pageTitle), |
|
centerTitle: true, |
|
), |
|
body: SingleChildScrollView( |
|
child: Column( |
|
mainAxisSize: MainAxisSize.min, |
|
crossAxisAlignment: CrossAxisAlignment.stretch, |
|
children: [ |
|
Center( |
|
child: Text( |
|
'Info Tren', |
|
style: Theme.of(context).textTheme.displayMedium, |
|
), |
|
), |
|
if (packageInfo != null) |
|
Center( |
|
child: Text( |
|
packageInfo!.packageName, |
|
style: Theme.of(context).textTheme.caption, |
|
), |
|
), |
|
// ListTile( |
|
// title: Text(versionTitleText), |
|
// subtitle: localChangelog.isEmpty ? null : Text(localChangelog.first.title), |
|
// ), |
|
Divider(), |
|
for (final log in mergedChangelogs) ...[ |
|
Padding( |
|
padding: const EdgeInsets.fromLTRB(8, 8, 8, 0), |
|
child: Row( |
|
crossAxisAlignment: CrossAxisAlignment.center, |
|
children: [ |
|
Expanded( |
|
child: Text( |
|
log.version.toString(), |
|
style: Theme.of(context).textTheme.headline4, |
|
), |
|
), |
|
if (localChangelog.isNotEmpty && log.version == localChangelog.first.version) |
|
Container( |
|
decoration: BoxDecoration( |
|
border: Border.all( |
|
color: Theme.of(context).colorScheme.onBackground, |
|
width: 1, |
|
), |
|
borderRadius: BorderRadius.circular(20), |
|
), |
|
child: Padding( |
|
padding: const EdgeInsets.all(4), |
|
child: Text( |
|
currentVersionText, |
|
style: TextStyle( |
|
inherit: true, |
|
), |
|
), |
|
), |
|
), |
|
if (remoteChangelog.isNotEmpty && log.version == remoteChangelog.first.version && (localChangelog.isEmpty || localChangelog.first.version != log.version)) |
|
Container( |
|
decoration: BoxDecoration( |
|
border: Border.all( |
|
color: Colors.green, |
|
width: 1, |
|
), |
|
borderRadius: BorderRadius.circular(20), |
|
), |
|
child: Padding( |
|
padding: const EdgeInsets.all(4), |
|
child: Text( |
|
latestVersionText, |
|
style: TextStyle( |
|
inherit: true, |
|
color: Colors.green, |
|
), |
|
), |
|
), |
|
), |
|
if (AboutPageState.DOWNLOAD == 'apk' && log.apkLink != null) |
|
IconButton( |
|
onPressed: () { |
|
launchUrl(log.apkLink!); |
|
}, |
|
icon: Icon(Icons.download), |
|
tooltip: 'Download APK', |
|
), |
|
], |
|
), |
|
), |
|
Padding( |
|
padding: const EdgeInsets.all(8.0), |
|
child: RichText( |
|
text: TextSpan( |
|
text: log.description, |
|
), |
|
), |
|
), |
|
], |
|
], |
|
), |
|
), |
|
); |
|
} |
|
} |