Fix manual update checker

This commit is contained in:
problematicconsumer
2023-11-10 12:17:51 +03:30
parent ebda7098c8
commit 52dd2e38de
3 changed files with 22 additions and 12 deletions

View File

@@ -9,6 +9,7 @@ import 'package:hiddify/utils/pref_notifier.dart';
import 'package:hiddify/utils/utils.dart'; import 'package:hiddify/utils/utils.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:upgrader/upgrader.dart'; import 'package:upgrader/upgrader.dart';
import 'package:version/version.dart';
part 'app_update_notifier.freezed.dart'; part 'app_update_notifier.freezed.dart';
part 'app_update_notifier.g.dart'; part 'app_update_notifier.g.dart';
@@ -63,7 +64,6 @@ class AppUpdateNotifier extends _$AppUpdateNotifier with AppLogger {
); );
return state = const AppUpdateState.disabled(); return state = const AppUpdateState.disabled();
} }
final currentVersion = appInfo.version;
return ref return ref
.watch(appRepositoryProvider) .watch(appRepositoryProvider)
.getLatestVersion( .getLatestVersion(
@@ -75,18 +75,27 @@ class AppUpdateNotifier extends _$AppUpdateNotifier with AppLogger {
return state = AppUpdateState.error(err); return state = AppUpdateState.error(err);
}, },
(remote) { (remote) {
if (remote.version.compareTo(currentVersion) > 0) { try {
if (remote.version == _ignoreReleasePref.getValue()) { final latestVersion = Version.parse(remote.version);
loggy.debug("ignored release [${remote.version}]"); final currentVersion = Version.parse(appInfo.version);
return state = AppUpdateStateIgnored(remote); if (latestVersion > currentVersion) {
if (remote.version == _ignoreReleasePref.getValue()) {
loggy.debug("ignored release [${remote.version}]");
return state = AppUpdateStateIgnored(remote);
}
loggy.debug("new version available: $remote");
return state = AppUpdateState.available(remote);
} }
loggy.debug("new version available: $remote"); loggy.info(
return state = AppUpdateState.available(remote); "already using latest version[$currentVersion], remote: [${remote.version}]",
);
return state = const AppUpdateState.notAvailable();
} catch (error, stackTrace) {
loggy.warning("error parsing versions", error, stackTrace);
return state = AppUpdateState.error(
AppFailure.unexpected(error, stackTrace),
);
} }
loggy.info(
"already using latest version[$currentVersion], remote: [${remote.version}]",
);
return state = const AppUpdateState.notAvailable();
}, },
).run(); ).run();
} }

View File

@@ -1563,7 +1563,7 @@ packages:
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
version: version:
dependency: transitive dependency: "direct main"
description: description:
name: version name: version
sha256: "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94" sha256: "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94"

View File

@@ -67,6 +67,7 @@ dependencies:
humanizer: ^2.2.0 humanizer: ^2.2.0
upgrader: ^8.2.0 upgrader: ^8.2.0
toastification: ^1.1.0 toastification: ^1.1.0
version: ^3.0.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: