send cloudId during upload

# Conflicts:
#	mobile/lib/services/upload.service.dart
This commit is contained in:
shenlong-tanwen 2025-07-31 01:29:12 +05:30
parent 816fb1746a
commit 36680e4279
2 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,20 @@
import 'dart:convert';
class AssetMetadata {
final String? cloudId;
const AssetMetadata({this.cloudId});
Map<String, dynamic> toMap() {
return {
"metadata": [
{
"key": "mobile-app",
"value": cloudId != null ? {"iCloudId": cloudId} : {},
},
],
};
}
String toJson() => json.encode(toMap());
}

View File

@ -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,
};