From 36680e4279db4df81ae4e214afdf46f707e69cf5 Mon Sep 17 00:00:00 2001 From: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Date: Thu, 31 Jul 2025 01:29:12 +0530 Subject: [PATCH] send cloudId during upload # Conflicts: # mobile/lib/services/upload.service.dart --- .../domain/models/asset/metadata.model.dart | 20 +++++++++++++++++++ mobile/lib/services/upload.service.dart | 5 +++++ 2 files changed, 25 insertions(+) create mode 100644 mobile/lib/domain/models/asset/metadata.model.dart diff --git a/mobile/lib/domain/models/asset/metadata.model.dart b/mobile/lib/domain/models/asset/metadata.model.dart new file mode 100644 index 0000000000..1a4a93f7fd --- /dev/null +++ b/mobile/lib/domain/models/asset/metadata.model.dart @@ -0,0 +1,20 @@ +import 'dart:convert'; + +class AssetMetadata { + final String? cloudId; + + const AssetMetadata({this.cloudId}); + + Map toMap() { + return { + "metadata": [ + { + "key": "mobile-app", + "value": cloudId != null ? {"iCloudId": cloudId} : {}, + }, + ], + }; + } + + String toJson() => json.encode(toMap()); +} diff --git a/mobile/lib/services/upload.service.dart b/mobile/lib/services/upload.service.dart index a711608e7f..e4ac3df0cc 100644 --- a/mobile/lib/services/upload.service.dart +++ b/mobile/lib/services/upload.service.dart @@ -7,6 +7,7 @@ import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/constants/constants.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; +import 'package:immich_mobile/domain/models/asset/metadata.model.dart'; import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/entities/store.entity.dart'; import 'package:immich_mobile/infrastructure/repositories/backup.repository.dart'; @@ -291,6 +292,7 @@ class UploadService { priority: priority, isFavorite: asset.isFavorite, requiresWiFi: requiresWiFi, + cloudId: asset.cloudId, ); } @@ -320,6 +322,7 @@ class UploadService { priority: 0, // Highest priority to get upload immediately isFavorite: asset.isFavorite, requiresWiFi: requiresWiFi, + cloudId: asset.cloudId, ); } @@ -346,6 +349,7 @@ class UploadService { String? metadata, int? priority, bool? isFavorite, + String? cloudId, bool requiresWiFi = true, }) async { final serverEndpoint = Store.get(StoreKey.serverEndpoint); @@ -361,6 +365,7 @@ class UploadService { 'fileModifiedAt': modifiedAt.toUtc().toIso8601String(), 'isFavorite': isFavorite?.toString() ?? 'false', 'duration': '0', + 'metadata': AssetMetadata(cloudId: cloudId).toJson(), if (fields != null) ...fields, };