downloadProgress property

  1. @override
Stream<ModelDownloadProgress> get downloadProgress
override

Download progress events for the Android ML model. Always empty on iOS.

Implementation

@override
Stream<ModelDownloadProgress> get downloadProgress {
  if (Platform.isIOS) return const Stream.empty();
  return progressEventChannel.receiveBroadcastStream().map((event) {
    final map = (event as Map).cast<Object?, Object?>();
    return ModelDownloadProgress(
      state: _parseState(map['state'] as String?),
      bytesDownloaded: (map['bytesDownloaded'] as num?)?.toInt() ?? 0,
      totalBytes: (map['totalBytes'] as num?)?.toInt() ?? 0,
      errorCode: (map['errorCode'] as num?)?.toInt(),
    );
  });
}