downloadAndInstall method
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'),
};
}