initialize static method

Future<MoAppUpdate> initialize({
  1. required MoAppUpdateMode mode,
  2. MoAppUpdateSelfOption? selfOption,
})

Implementation

static Future<MoAppUpdate> initialize({required MoAppUpdateMode mode, MoAppUpdateSelfOption? selfOption}) async {
  var packageInfo = await PackageInfo.fromPlatform();
  if(mode == MoAppUpdateMode.self) {
    if(selfOption == null){
      throw Exception("selfOption must not null");
    }
    else {
      if(selfOption.infoStr == null && selfOption.infoUrl == null) {
        throw Exception('infoUrl or infoStr must not null');
      }
      else {
        int buildNumber = selfOption.currentBuildNumber ?? int.parse(packageInfo.buildNumber);

        var instance = MoAppUpdate._(
          mode: mode,
          selfOption: selfOption.copyOf(
            currentBuildNumber: buildNumber,
          ),
          packageInfo: packageInfo,
        );

        var updateInfo = await instance.fetchUpdateInfo();
        instance._updateInfo = updateInfo;
        instance._lastCheckedTime = DateTime.now();
        return instance;
      }
    }
  }
  else if(mode == MoAppUpdateMode.store) {
    throw UnimplementedError("initialize store not implemented");
  }
  else {
    throw NotSupportedPlatformException();
  }
}