@@ -142,7 +142,7 @@ ReactNativeBlobUtilConfig::ReactNativeBlobUtilConfig(winrt::Microsoft::ReactNati
142
142
143
143
}
144
144
145
- ReactNativeBlobUtilProgressConfig::ReactNativeBlobUtilProgressConfig (int32_t count_, int32_t interval_) : count(count_), interval(interval_) {
145
+ ReactNativeBlobUtilProgressConfig::ReactNativeBlobUtilProgressConfig (double count_, double interval_) : count(count_), interval(interval_) {
146
146
}
147
147
148
148
ReactNativeBlobUtilStream::ReactNativeBlobUtilStream (Streams::IRandomAccessStream& _streamInstance, EncodingOptions _encoding) noexcept
@@ -621,7 +621,28 @@ void ReactNativeBlobUtil::closeStream(
621
621
std::string streamId,
622
622
std::function<void (::React::JSValueArray const &)> const & callback) noexcept
623
623
{
624
- callback (::React::JSValueArray{});
624
+ ::React::JSValueArray resultArray;
625
+ try
626
+ {
627
+ auto it = m_streamMap.find (streamId);
628
+ if (it != m_streamMap.end ()) {
629
+ it->second .streamInstance .Close ();
630
+ m_streamMap.erase (it);
631
+ // Success: return empty array
632
+ callback (resultArray);
633
+ } else {
634
+ // Stream not found
635
+ resultArray.push_back (" EUNSPECIFIED" );
636
+ resultArray.push_back (" Stream not found for id: " + streamId);
637
+ callback (resultArray);
638
+ }
639
+ }
640
+ catch (const winrt::hresult_error& ex)
641
+ {
642
+ resultArray.push_back (" EUNSPECIFIED" );
643
+ resultArray.push_back (winrt::to_string (ex.message ()));
644
+ callback (resultArray);
645
+ }
625
646
}
626
647
627
648
void ReactNativeBlobUtil::unlink (
@@ -667,7 +688,29 @@ void ReactNativeBlobUtil::removeSession(
667
688
::React::JSValueArray&& paths,
668
689
std::function<void (::React::JSValueArray const &)> const & callback) noexcept
669
690
{
670
- callback (::React::JSValueArray{});
691
+ winrt::Windows::System::Threading::ThreadPool::RunAsync ([paths = std::move (paths), callback](auto &&)
692
+ {
693
+ ::React::JSValueArray resultArray;
694
+ try
695
+ {
696
+ for (const auto & path : paths)
697
+ {
698
+ std::filesystem::path toDelete{ path.AsString () };
699
+ toDelete.make_preferred ();
700
+ auto fileOp = winrt::Windows::Storage::StorageFile::GetFileFromPathAsync (winrt::to_hstring (toDelete.c_str ()));
701
+ auto file = fileOp.get ();
702
+ file.DeleteAsync ().get ();
703
+ }
704
+ // Success: return empty array
705
+ callback (resultArray);
706
+ }
707
+ catch (const winrt::hresult_error& ex)
708
+ {
709
+ resultArray.push_back (" EUNSPECIFIED" );
710
+ resultArray.push_back (winrt::to_string (ex.message ()));
711
+ callback (resultArray);
712
+ }
713
+ });
671
714
}
672
715
673
716
void ReactNativeBlobUtil::ls (
@@ -1349,23 +1392,39 @@ void ReactNativeBlobUtil::cancelRequest(
1349
1392
std::string taskId,
1350
1393
std::function<void (::React::JSValueArray const &)> const & callback) noexcept
1351
1394
{
1352
- callback (::React::JSValueArray{});
1395
+ ::React::JSValueArray resultArray;
1396
+ try
1397
+ {
1398
+ m_tasks.Cancel (taskId);
1399
+ // Success: return empty array
1400
+ callback (resultArray);
1401
+ }
1402
+ catch (const winrt::hresult_error& ex)
1403
+ {
1404
+ resultArray.push_back (" EUNSPECIFIED" );
1405
+ resultArray.push_back (winrt::to_string (ex.message ()));
1406
+ callback (resultArray);
1407
+ }
1353
1408
}
1354
1409
1355
1410
void ReactNativeBlobUtil::enableProgressReport (
1356
1411
std::string taskId,
1357
1412
double interval,
1358
1413
double count) noexcept
1359
1414
{
1360
- // No-op
1415
+ ReactNativeBlobUtilProgressConfig config{ count, interval };
1416
+ std::scoped_lock lock{ m_mutex };
1417
+ downloadProgressMap.try_emplace (taskId, config);
1361
1418
}
1362
1419
1363
1420
void ReactNativeBlobUtil::enableUploadProgressReport (
1364
1421
std::string taskId,
1365
1422
double interval,
1366
1423
double count) noexcept
1367
1424
{
1368
- // No-op
1425
+ ReactNativeBlobUtilProgressConfig config{ count, interval };
1426
+ std::scoped_lock lock{ m_mutex };
1427
+ uploadProgressMap.try_emplace (taskId, config);
1369
1428
}
1370
1429
1371
1430
void ReactNativeBlobUtil::slice (
0 commit comments