mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00
58 lines
1.9 KiB
Dart
58 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:spotube/components/links/anchor_button.dart';
|
|
import 'package:url_launcher/url_launcher_string.dart';
|
|
import 'package:spotube/extensions/context.dart';
|
|
import 'package:version/version.dart';
|
|
|
|
class RootAppUpdateDialog extends StatelessWidget {
|
|
final Version? version;
|
|
final int? nightlyBuildNum;
|
|
|
|
const RootAppUpdateDialog({super.key, this.version}) : nightlyBuildNum = null;
|
|
const RootAppUpdateDialog.nightly({super.key, required this.nightlyBuildNum})
|
|
: version = null;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
const url = "https://spotube.krtirtho.dev/downloads";
|
|
const nightlyUrl = "https://spotube.krtirtho.dev/downloads/nightly";
|
|
return AlertDialog(
|
|
title: Text(context.l10n.spotube_has_an_update),
|
|
actions: [
|
|
FilledButton(
|
|
child: Text(context.l10n.download_now),
|
|
onPressed: () => launchUrlString(
|
|
nightlyBuildNum != null ? nightlyUrl : url,
|
|
mode: LaunchMode.externalApplication,
|
|
),
|
|
),
|
|
],
|
|
content: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
Text(
|
|
nightlyBuildNum != null
|
|
? context.l10n.nightly_version(nightlyBuildNum!)
|
|
: context.l10n.release_version(version!),
|
|
),
|
|
if (nightlyBuildNum == null)
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Text(context.l10n.read_the_latest),
|
|
AnchorButton(
|
|
context.l10n.release_notes,
|
|
style: const TextStyle(color: Colors.blue),
|
|
onTap: () => launchUrlString(
|
|
url,
|
|
mode: LaunchMode.externalApplication,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|