checkVersion method

Future<void> checkVersion(
  1. BuildContext context
)

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);
    }
  }
}