diff --git a/lib/base.dart b/lib/base.dart index 34611e1..b6eb0f3 100644 --- a/lib/base.dart +++ b/lib/base.dart @@ -41,12 +41,30 @@ class _BaseState extends State with WidgetsBindingObserver { final PermissionHandlerPlatform permissionHandler = PermissionHandlerPlatform.instance; + bool updateExists(String appVersion, String gitHubVersion) { + final List appVersionSplit = List.from(appVersion.split('.').map((e) => int.parse(e))); + final List gitHubVersionSplit = List.from(gitHubVersion.split('.').map((e) => int.parse(e))); + + if (gitHubVersionSplit[0] > appVersionSplit[0]) { + return true; + } + else if (gitHubVersionSplit[0] == appVersionSplit[0] && gitHubVersionSplit[1] > appVersionSplit[1]) { + return true; + } + else if (gitHubVersionSplit[0] == appVersionSplit[0] && gitHubVersionSplit[1] == appVersionSplit[1] && gitHubVersionSplit[2] > appVersionSplit[2]) { + return true; + } + else { + return false; + } + } + Future checkInstallationSource() async { Source installationSource = await StoreChecker.getSource; if (installationSource != Source.IS_INSTALLED_FROM_PLAY_STORE) { final result = await checkAppUpdatesGitHub(); if (result['result'] == 'success') { - if (result['body'].tagName != widget.appConfigProvider.getAppInfo!.version) { + if (updateExists(widget.appConfigProvider.getAppInfo!.version, result['body'].tagName)) { return result['body']; } }