Open the link to Github APK instead of downloading it in-app

This commit is contained in:
vishnukvmd 2024-03-13 11:21:36 +05:30
parent 46522c329c
commit be3b4dc7ba
2 changed files with 4 additions and 141 deletions

View file

@ -1,8 +1,4 @@
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:photos/core/configuration.dart';
import 'package:photos/core/network/network.dart';
import 'package:photos/ente_theme_data.dart';
import "package:photos/generated/l10n.dart";
import 'package:photos/services/update_service.dart';
import 'package:photos/theme/ente_theme.dart';
@ -66,16 +62,12 @@ class _AppUpdateDialogState extends State<AppUpdateDialog> {
const Padding(padding: EdgeInsets.all(8)),
ButtonWidget(
buttonType: ButtonType.primary,
labelText: S.of(context).update,
labelText: S.of(context).download,
onTap: () async {
Navigator.pop(context);
// ignore: unawaited_futures
showDialog(
context: context,
builder: (BuildContext context) {
return ApkDownloaderDialog(widget.latestVersionInfo);
},
barrierDismissible: false,
launchUrlString(
widget.latestVersionInfo!.url,
mode: LaunchMode.externalApplication,
);
},
),
@ -87,22 +79,6 @@ class _AppUpdateDialogState extends State<AppUpdateDialog> {
Navigator.of(context).pop();
},
),
const Padding(padding: EdgeInsets.all(8)),
Center(
child: InkWell(
child: Text(
S.of(context).installManually,
style: Theme.of(context)
.textTheme
.bodySmall!
.copyWith(decoration: TextDecoration.underline),
),
onTap: () => launchUrlString(
widget.latestVersionInfo!.url,
mode: LaunchMode.externalApplication,
),
),
),
],
);
final shouldForceUpdate =
@ -135,114 +111,3 @@ class _AppUpdateDialogState extends State<AppUpdateDialog> {
);
}
}
class ApkDownloaderDialog extends StatefulWidget {
final LatestVersionInfo? versionInfo;
const ApkDownloaderDialog(this.versionInfo, {Key? key}) : super(key: key);
@override
State<ApkDownloaderDialog> createState() => _ApkDownloaderDialogState();
}
class _ApkDownloaderDialogState extends State<ApkDownloaderDialog> {
String? _saveUrl;
double? _downloadProgress;
@override
void initState() {
super.initState();
_saveUrl = Configuration.instance.getTempDirectory() +
"ente-" +
widget.versionInfo!.name +
".apk";
_downloadApk();
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async => false,
child: AlertDialog(
title: Text(
S.of(context).downloading,
style: const TextStyle(
fontSize: 16,
),
textAlign: TextAlign.center,
),
content: LinearProgressIndicator(
value: _downloadProgress,
valueColor: AlwaysStoppedAnimation<Color>(
Theme.of(context).colorScheme.greenAlternative,
),
),
),
);
}
Future<void> _downloadApk() async {
try {
await NetworkClient.instance.getDio().download(
widget.versionInfo!.url,
_saveUrl,
onReceiveProgress: (count, _) {
setState(() {
_downloadProgress = count / widget.versionInfo!.size;
});
},
);
Navigator.of(context, rootNavigator: true).pop('dialog');
// OpenFile.open(_saveUrl);
} catch (e) {
Logger("ApkDownloader").severe(e);
final AlertDialog alert = AlertDialog(
title: Text(S.of(context).sorry),
content: Text(S.of(context).theDownloadCouldNotBeCompleted),
actions: [
TextButton(
child: Text(
S.of(context).ignoreUpdate,
style: const TextStyle(
color: Colors.white,
),
),
onPressed: () {
Navigator.of(context, rootNavigator: true).pop('dialog');
Navigator.of(context, rootNavigator: true).pop('dialog');
},
),
TextButton(
child: Text(
S.of(context).retry,
style: TextStyle(
color: Theme.of(context).colorScheme.greenAlternative,
),
),
onPressed: () {
Navigator.of(context, rootNavigator: true).pop('dialog');
Navigator.of(context, rootNavigator: true).pop('dialog');
showDialog(
context: context,
builder: (BuildContext context) {
return ApkDownloaderDialog(widget.versionInfo);
},
barrierDismissible: false,
);
},
),
],
);
// ignore: unawaited_futures
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
barrierColor: Colors.black87,
);
return;
}
}
}

View file

@ -122,8 +122,6 @@ dependencies:
motionphoto:
git: "https://github.com/ente-io/motionphoto.git"
move_to_background: ^1.0.2
# open_file: ^3.2.1
onnxruntime:
git:
url: https://github.com/ente-io/onnxruntime.git