checkVersion method
check version from iOS/Android/Mac store and provide update dialog if update is available.
Implementation
Future<void> checkVersion(BuildContext context) async {
final PackageInfo packageInfo = await PackageInfo.fromPlatform();
packageName ??= packageInfo.packageName;
packageVersion ??= packageInfo.version;
_country = country ?? 'us';
if (getStoreVersionAndUrl == null) {
switch (Platform.operatingSystem) {
case 'android':
getStoreVersionAndUrl = _getAndroidStoreVersionAndUrl;
break;
case 'ios':
getStoreVersionAndUrl = _getIOSStoreVersionAndUrl;
break;
case 'macos':
getStoreVersionAndUrl = _getMacStoreVersionAndUrl;
break;
default:
throw 'Platform ${Platform.operatingSystem} not supported.';
}
}
final storeVersionAndUrl = await getStoreVersionAndUrl!(packageName!);
if (storeVersionAndUrl != null) {
storeVersion = storeVersionAndUrl.storeVersion;
storeUrl = storeVersionAndUrl.storeUrl;
if (hasUpdate) {
showUpdateDialog ??= _showUpdateDialog;
// ignore: use_build_context_synchronously
showUpdateDialog!(context, this);
}
}
}