mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 23:34:24 +01:00
new: upgrade on macos
This commit is contained in:
@@ -6,10 +6,8 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:r_upgrade/r_upgrade.dart';
|
||||
import 'package:toolbox/core/extension/context.dart';
|
||||
import 'package:toolbox/core/utils/misc.dart' hide pathJoin;
|
||||
import 'package:toolbox/data/model/app/update.dart';
|
||||
import 'package:toolbox/data/res/path.dart';
|
||||
import 'package:toolbox/data/res/ui.dart';
|
||||
|
||||
import '../data/provider/app.dart';
|
||||
import '../data/res/build_data.dart';
|
||||
@@ -88,55 +86,16 @@ Future<void> doUpdate(BuildContext context, {bool force = false}) async {
|
||||
}
|
||||
|
||||
Future<void> _doUpdate(AppUpdate update, BuildContext context, S s) async {
|
||||
final url = update.url.current;
|
||||
if (url == null) return;
|
||||
|
||||
if (isAndroid) {
|
||||
final url = update.url.current;
|
||||
if (url == null) return;
|
||||
final fileName = url.split('/').last;
|
||||
final id = await RUpgrade.upgrade(
|
||||
url,
|
||||
fileName: fileName,
|
||||
isAutoRequestInstall: false,
|
||||
);
|
||||
RUpgrade.stream.listen((event) async {
|
||||
if (event.status?.value == 3) {
|
||||
if (id == null) {
|
||||
showSnackBar(context, const Text('install id is null'));
|
||||
return;
|
||||
}
|
||||
final sha256 = () {
|
||||
try {
|
||||
return fileName.split('.').first;
|
||||
} catch (e) {
|
||||
_logger.warning('sha256 parse failed: $e');
|
||||
return null;
|
||||
}
|
||||
}();
|
||||
final dlPath = pathJoin(await _dlDir, fileName);
|
||||
final computed = await getFileSha256(dlPath);
|
||||
if (computed != sha256) {
|
||||
_logger.info('Mismatch sha256: $computed, $sha256');
|
||||
final resume = await showRoundDialog(
|
||||
context: context,
|
||||
title: Text(s.attention),
|
||||
child: const Text('sha256 is null'),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => context.pop(false),
|
||||
child: Text(s.cancel),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () => context.pop(true),
|
||||
child: Text(s.ok, style: textRed),
|
||||
),
|
||||
],
|
||||
);
|
||||
if (!resume) return;
|
||||
}
|
||||
RUpgrade.install(id);
|
||||
}
|
||||
});
|
||||
await RUpgrade.upgrade(url, fileName: fileName);
|
||||
} else if (isIOS) {
|
||||
await RUpgrade.upgradeFromAppStore('1586449703');
|
||||
} else if (isMacOS) {
|
||||
await openUrl(url);
|
||||
} else {
|
||||
showRoundDialog(
|
||||
context: context,
|
||||
@@ -160,4 +119,4 @@ Future<void> _rmDownloadApks() async {
|
||||
}
|
||||
}
|
||||
|
||||
Future<String> get _dlDir async => pathJoin((await docDir).path, 'Download');
|
||||
Future<String> get _dlDir async => joinPath((await docDir).path, 'Download');
|
||||
|
||||
Reference in New Issue
Block a user