downloadAndInstall method

  1. @override
Future<UpdateInstallResult> downloadAndInstall(
  1. SoftwareAsset asset
)
override

Implementation

@override
Future<UpdateInstallResult> downloadAndInstall(SoftwareAsset asset) async {
  if (asset.urls.isEmpty) {
    throw StateError('Android update asset has no download URL');
  }
  final result = await _channel.invokeMethod<String>('downloadAndInstall', {
    'urls': asset.urls,
    'sha256': asset.sha256,
    'packageId': asset.identifier,
    'versionCode': asset.versionCode,
    'size': asset.size,
    'certificateHashes': asset.certificateHashes,
  });
  return switch (result) {
    'permissionRequired' => UpdateInstallResult.permissionRequired,
    'awaitingUserAction' => UpdateInstallResult.awaitingUserAction,
    'cancelled' => UpdateInstallResult.cancelled,
    _ => throw StateError('Unexpected Android installer result: $result'),
  };
}