iOS: degrade gracefully where the Android-only native services are missing

Share/pick/sync calls and streams no longer throw MissingPluginException at
startup; upload/download/sync-now show 'X isn't available on this platform
yet'. Offline/sync mirror dir no longer uses the Android-only external dir.
Info.plist: Face ID and photo library usage strings.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Ayushya Amitabh
2026-10-06 19:06:19 -04:00
co-authored by Claude Sonnet 5.5
parent 813c613249
commit d008185f98
10 changed files with 204 additions and 27 deletions
+5 -4
View File
@@ -56,7 +56,7 @@ class UploadService {
.toList(),
);
await _channel.invokeMethod('startUpload', {
await invokeOrExplain(_channel, 'startUpload', 'Uploading', {
...args,
'files': filesJson,
'remoteFolder': files.currentFolderPath,
@@ -70,7 +70,8 @@ class UploadService {
/// deliberately: see `SyncService.statusStream`'s identical doc comment -
/// `EventChannel.receiveBroadcastStream()` opens its own native
/// subscription per call, and the native side only keeps the latest one.
static final Stream<UploadCompletion> completions = _statusChannel
.receiveBroadcastStream()
.map((event) => UploadCompletion.fromMap(event as Map<dynamic, dynamic>));
static final Stream<UploadCompletion> completions = quietEvents(
_statusChannel,
(event) => UploadCompletion.fromMap(event as Map<dynamic, dynamic>),
);
}