Fix manual update checker
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user