Browse Source

Add downloads for Windows and Linux

master v2.7.10
Kenneth Bruen 2 years ago
parent
commit
1e4ca0c61b
Signed by: kbruen
GPG Key ID: C1980A470C3EE5B1
  1. 2
      codemagic.yaml
  2. 2
      lib/api/releases.dart
  3. 10
      lib/models/changelog_entry.dart
  4. 58
      lib/pages/about/about_page_fluent.dart
  5. 58
      lib/pages/about/about_page_material.dart

2
codemagic.yaml

@ -38,7 +38,7 @@ workflows:
cd "$pwd" cd "$pwd"
cp build/ios/Payload.zip build/ios/ipa/infotren.ipa cp build/ios/Payload.zip build/ios/ipa/infotren.ipa
artifacts: artifacts:
- build/ios/*.zip # - build/ios/*.zip
- build/ios/ipa/*.ipa - build/ios/ipa/*.ipa
- /tmp/xcodebuild_logs/*.log - /tmp/xcodebuild_logs/*.log
- flutter_drive.log - flutter_drive.log

2
lib/api/releases.dart

@ -12,5 +12,7 @@ Future<List<ChangelogEntry>> getRemoteReleases() async {
version: ChangelogVersion.parse(e['tag_name']), version: ChangelogVersion.parse(e['tag_name']),
description: e['body'], description: e['body'],
apkLink: (e['assets'] as List<dynamic>).where((e) => (e['name'] as String).contains('.apk')).map((e) => Uri.parse(e['browser_download_url'] as String)).firstOrNull, apkLink: (e['assets'] as List<dynamic>).where((e) => (e['name'] as String).contains('.apk')).map((e) => Uri.parse(e['browser_download_url'] as String)).firstOrNull,
linuxLink: (e['assets'] as List<dynamic>).where((e) => (e['name'] as String).contains('infotren-linux')).map((e) => Uri.parse(e['browser_download_url'] as String)).firstOrNull,
windowsLink: (e['assets'] as List<dynamic>).where((e) => (e['name'] as String).contains('-win.zip')).map((e) => Uri.parse(e['browser_download_url'] as String)).firstOrNull,
)).toList(); )).toList();
} }

10
lib/models/changelog_entry.dart

@ -4,8 +4,16 @@ class ChangelogEntry {
final ChangelogVersion version; final ChangelogVersion version;
final String description; final String description;
final Uri? apkLink; final Uri? apkLink;
final Uri? linuxLink;
final Uri? windowsLink;
ChangelogEntry({required this.version, required this.description, this.apkLink}); ChangelogEntry({
required this.version,
required this.description,
this.apkLink,
this.linuxLink,
this.windowsLink,
});
factory ChangelogEntry.fromTextBlock(String text) { factory ChangelogEntry.fromTextBlock(String text) {
final lines = text.split(RegExp(r'(\r?\n)+')); final lines = text.split(RegExp(r'(\r?\n)+'));

58
lib/pages/about/about_page_fluent.dart

@ -120,6 +120,64 @@ class AboutPageStateFluent extends AboutPageState<AboutPageFluent> {
), ),
), ),
), ),
if (AboutPageState.download == 'linux' && log.linuxLink != null)
GestureDetector(
onSecondaryTap: () {
Clipboard.setData(ClipboardData(text: log.linuxLink!.toString()));
// ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
// content: Text('Link copied to clipboard'),
// ));
},
onLongPress: () {
Clipboard.setData(ClipboardData(text: log.linuxLink!.toString()));
// ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
// content: Text('Link copied to clipboard'),
// ));
},
onTap: () {
launchUrl(
log.linuxLink!,
mode: LaunchMode.externalApplication,
);
},
behavior: HitTestBehavior.translucent,
child: const Tooltip(
message: 'Download Linux ZIP',
child: Padding(
padding: EdgeInsets.all(4),
child: Icon(FluentIcons.download),
),
),
),
if (AboutPageState.download == 'windows' && log.windowsLink != null)
GestureDetector(
onSecondaryTap: () {
Clipboard.setData(ClipboardData(text: log.windowsLink!.toString()));
// ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
// content: Text('Link copied to clipboard'),
// ));
},
onLongPress: () {
Clipboard.setData(ClipboardData(text: log.windowsLink!.toString()));
// ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
// content: Text('Link copied to clipboard'),
// ));
},
onTap: () {
launchUrl(
log.windowsLink!,
mode: LaunchMode.externalApplication,
);
},
behavior: HitTestBehavior.translucent,
child: const Tooltip(
message: 'Download Windows App ZIP',
child: Padding(
padding: EdgeInsets.all(4),
child: Icon(FluentIcons.download),
),
),
),
], ],
), ),
), ),

58
lib/pages/about/about_page_material.dart

@ -121,6 +121,64 @@ class AboutPageStateMaterial extends AboutPageState<AboutPageMaterial> {
), ),
), ),
), ),
if (AboutPageState.download == 'linux' && log.linuxLink != null)
GestureDetector(
onSecondaryTap: () {
Clipboard.setData(ClipboardData(text: log.linuxLink!.toString()));
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Link copied to clipboard'),
));
},
onLongPress: () {
Clipboard.setData(ClipboardData(text: log.linuxLink!.toString()));
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Link copied to clipboard'),
));
},
onTap: () {
launchUrl(
log.linuxLink!,
mode: LaunchMode.externalApplication,
);
},
behavior: HitTestBehavior.translucent,
child: const Tooltip(
message: 'Download Linux ZIP',
child: Padding(
padding: EdgeInsets.all(4),
child: Icon(Icons.download),
),
),
),
if (AboutPageState.download == 'windows' && log.windowsLink != null)
GestureDetector(
onSecondaryTap: () {
Clipboard.setData(ClipboardData(text: log.windowsLink!.toString()));
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Link copied to clipboard'),
));
},
onLongPress: () {
Clipboard.setData(ClipboardData(text: log.windowsLink!.toString()));
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Link copied to clipboard'),
));
},
onTap: () {
launchUrl(
log.windowsLink!,
mode: LaunchMode.externalApplication,
);
},
behavior: HitTestBehavior.translucent,
child: const Tooltip(
message: 'Download Windows App ZIP',
child: Padding(
padding: EdgeInsets.all(4),
child: Icon(Icons.download),
),
),
),
], ],
), ),
), ),

Loading…
Cancel
Save