initialize method

Future<bool> initialize()

Initialize Upgrader by getting saved preferences, getting platform package info, and getting released version info.

Implementation

Future<bool> initialize() async {
  if (debugLogging) {
    print('upgrader: initialize called');
  }
  if (_futureInit != null) return _futureInit!;

  _futureInit = Future(() async {
    if (debugLogging) {
      print('upgrader: initializing');
    }
    if (_initCalled) {
      assert(false, 'This should never happen.');
      return true;
    }
    _initCalled = true;

    if (messages.languageCode.isEmpty) {
      print('upgrader: error -> languageCode is empty');
    } else if (debugLogging) {
      print('upgrader: languageCode: ${messages.languageCode}');
    }

    await _getSavedPrefs();

    if (debugLogging) {
      print('upgrader: default operatingSystem: '
          '${UpgradeIO.operatingSystem} ${UpgradeIO.operatingSystemVersion}');
      print('upgrader: operatingSystem: $_operatingSystem');
      print('upgrader: platform: $platform');
      print('upgrader: defaultTargetPlatform: $defaultTargetPlatform');
      print('upgrader: '
          'isAndroid: ${UpgradeIO.isAndroid}, '
          'isIOS: ${UpgradeIO.isIOS}, '
          'isLinux: ${UpgradeIO.isLinux}, '
          'isMacOS: ${UpgradeIO.isMacOS}, '
          'isWindows: ${UpgradeIO.isWindows}, '
          'isFuchsia: ${UpgradeIO.isFuchsia}, '
          'isWeb: ${UpgradeIO.isWeb}');
    }

    if (_packageInfo == null) {
      _packageInfo = await PackageInfo.fromPlatform();
      if (debugLogging) {
        print(
            'upgrader: package info packageName: ${_packageInfo!.packageName}');
        print('upgrader: package info appName: ${_packageInfo!.appName}');
        print('upgrader: package info version: ${_packageInfo!.version}');
      }
    }

    _installedVersion = _packageInfo!.version;

    await _updateVersionInfo();

    return true;
  });
  return _futureInit!;
}