DesktopUpdaterController constructor

DesktopUpdaterController({
  1. required Uri? appArchiveUrl,
  2. required String expectedPackageId,
  3. required UpdateRecoveryStore recoveryStore,
  4. required Map<String, String> trustedReleasePublicKeys,
  5. DesktopUpdateLocalization? localization,
  6. String channel = "stable",
  7. String? installationIdentity,
  8. UpdatePreferences? preferences,
  9. DesktopUpdaterTelemetry? telemetry,
  10. MinimumOSSupportChecker? isMinimumOSSupported,
  11. UpdateRequestHeadersProvider? requestHeadersProvider,
  12. UpdateDiagnosticsRecorder? diagnosticsRecorder,
  13. Future<void> onProblemReport(
    1. UpdateProblemReport report
    )?,
  14. FutureOr<void> onCleanupReport(
    1. UpdateCleanupReport report
    )?,
  15. bool skipInitialVersionCheck = false,
  16. ReleaseNotesLoader? releaseNotesLoader,
  17. Uri? releaseNotesUrl,
  18. ExternalUrlLauncher? externalUrlLauncher,
})

Creates a controller for a hosted zip-first app archive.

When appArchiveUrl is provided and skipInitialVersionCheck is false, the controller starts an asynchronous update check during construction.

Implementation

DesktopUpdaterController({
  required Uri? appArchiveUrl,
  required String expectedPackageId,
  required UpdateRecoveryStore recoveryStore,
  required Map<String, String> trustedReleasePublicKeys,
  DesktopUpdateLocalization? localization,
  this.channel = "stable",
  this.installationIdentity,
  this.preferences,
  this.telemetry,
  this.isMinimumOSSupported,
  this.requestHeadersProvider,
  UpdateDiagnosticsRecorder? diagnosticsRecorder,
  Future<void> Function(UpdateProblemReport report)? onProblemReport,
  FutureOr<void> Function(UpdateCleanupReport report)? onCleanupReport,
  bool skipInitialVersionCheck = false,
  ReleaseNotesLoader? releaseNotesLoader,
  Uri? releaseNotesUrl,
  ExternalUrlLauncher? externalUrlLauncher,
})  : expectedPackageId =
          _normalizeControllerExpectedPackageId(expectedPackageId),
      recoveryStore = recoveryStore,
      trustedReleasePublicKeys =
          normalizeReleasePublicKeys(trustedReleasePublicKeys),
      _isWindows = Platform.isWindows,
      _localization = localization,
      _skipInitialVersionCheck = skipInitialVersionCheck,
      _diagnosticsRecorder =
          diagnosticsRecorder ?? UpdateDiagnosticsRecorder(channel: channel),
      _onProblemReport = onProblemReport,
      _onCleanupReport = onCleanupReport,
      _releaseNotesLoader = releaseNotesLoader,
      _releaseNotesUrl = releaseNotesUrl,
      _externalUrlLauncher =
          externalUrlLauncher ?? defaultExternalUrlLauncher,
      _releaseNotesFetcher = releaseNotesUrl == null
          ? null
          : ReleaseNotesFetcher(
              requestHeadersProvider: requestHeadersProvider,
            ) {
  if (appArchiveUrl != null) {
    init(appArchiveUrl);
  }
}