Add downloads for Windows and Linux
This commit is contained in:
parent
1269a93624
commit
1e4ca0c61b
5 changed files with 128 additions and 2 deletions
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
|
@ -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)+'));
|
||||||
|
|
|
@ -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),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -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…
Add table
Reference in a new issue