ソースを参照

Merge remote-tracking branch 'origin/master' into develop

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

# Conflicts:
#	Brand/Database.swift
#	Nextcloud.xcodeproj/project.pbxproj
#	Share/NCShareExtension+DataSource.swift
#	iOSClient/AppDelegate.swift
#	iOSClient/Data/NCDataSource.swift
#	iOSClient/Data/NCManageDatabase+Metadata.swift
#	iOSClient/Data/NCManageDatabase.swift
#	iOSClient/Extensions/UIAlertController+Extension.swift
#	iOSClient/Files/NCFiles.swift
#	iOSClient/Main/Collection Common/NCCollectionViewCommon.swift
#	iOSClient/Media/NCMedia.swift
#	iOSClient/Menu/NCMedia+Menu.swift
#	iOSClient/NCGlobal.swift
#	iOSClient/NCImageCache.swift
#	iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift
#	iOSClient/Networking/NCAutoUpload.swift
#	iOSClient/Networking/NCNetworking.swift
#	iOSClient/Networking/NCNetworkingProcessUpload.swift
#	iOSClient/Networking/NCService.swift
#	iOSClient/Select/NCSelect.swift
#	iOSClient/Settings/NCKeychain.swift
#	iOSClient/Settings/NCManageAutoUploadFileName.swift
#	iOSClient/Settings/NCSettings.m
#	iOSClient/Supporting Files/af.lproj/Localizable.strings
#	iOSClient/Supporting Files/an.lproj/Localizable.strings
#	iOSClient/Supporting Files/ar.lproj/Localizable.strings
#	iOSClient/Supporting Files/ast.lproj/Localizable.strings
#	iOSClient/Supporting Files/az.lproj/Localizable.strings
#	iOSClient/Supporting Files/be.lproj/Localizable.strings
#	iOSClient/Supporting Files/bg_BG.lproj/Localizable.strings
#	iOSClient/Supporting Files/bn_BD.lproj/Localizable.strings
#	iOSClient/Supporting Files/br.lproj/Localizable.strings
#	iOSClient/Supporting Files/bs.lproj/Localizable.strings
#	iOSClient/Supporting Files/ca.lproj/Localizable.strings
#	iOSClient/Supporting Files/cs-CZ.lproj/Localizable.strings
#	iOSClient/Supporting Files/cy_GB.lproj/Localizable.strings
#	iOSClient/Supporting Files/da.lproj/Localizable.strings
#	iOSClient/Supporting Files/de.lproj/Localizable.strings
#	iOSClient/Supporting Files/el.lproj/Localizable.strings
#	iOSClient/Supporting Files/en-GB.lproj/Localizable.strings
#	iOSClient/Supporting Files/en.lproj/Localizable.strings
#	iOSClient/Supporting Files/eo.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-419.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-AR.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-CL.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-CO.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-CR.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-DO.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-EC.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-GT.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-HN.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-MX.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-NI.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-PA.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-PE.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-PR.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-PY.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-SV.lproj/Localizable.strings
#	iOSClient/Supporting Files/es-UY.lproj/Localizable.strings
#	iOSClient/Supporting Files/es.lproj/Localizable.strings
#	iOSClient/Supporting Files/et_EE.lproj/Localizable.strings
#	iOSClient/Supporting Files/eu.lproj/Localizable.strings
#	iOSClient/Supporting Files/fa.lproj/Localizable.strings
#	iOSClient/Supporting Files/fi-FI.lproj/Localizable.strings
#	iOSClient/Supporting Files/fo.lproj/Localizable.strings
#	iOSClient/Supporting Files/fr.lproj/Localizable.strings
#	iOSClient/Supporting Files/gd.lproj/Localizable.strings
#	iOSClient/Supporting Files/gl.lproj/Localizable.strings
#	iOSClient/Supporting Files/he.lproj/Localizable.strings
#	iOSClient/Supporting Files/hi_IN.lproj/Localizable.strings
#	iOSClient/Supporting Files/hr.lproj/Localizable.strings
#	iOSClient/Supporting Files/hsb.lproj/Localizable.strings
#	iOSClient/Supporting Files/hu.lproj/Localizable.strings
#	iOSClient/Supporting Files/hy.lproj/Localizable.strings
#	iOSClient/Supporting Files/ia.lproj/Localizable.strings
#	iOSClient/Supporting Files/id.lproj/Localizable.strings
#	iOSClient/Supporting Files/ig.lproj/Localizable.strings
#	iOSClient/Supporting Files/is.lproj/Localizable.strings
#	iOSClient/Supporting Files/it.lproj/Localizable.strings
#	iOSClient/Supporting Files/ja-JP.lproj/Localizable.strings
#	iOSClient/Supporting Files/ka-GE.lproj/Localizable.strings
#	iOSClient/Supporting Files/ka.lproj/Localizable.strings
#	iOSClient/Supporting Files/kab.lproj/Localizable.strings
#	iOSClient/Supporting Files/km.lproj/Localizable.strings
#	iOSClient/Supporting Files/kn.lproj/Localizable.strings
#	iOSClient/Supporting Files/ko.lproj/Localizable.strings
#	iOSClient/Supporting Files/la.lproj/Localizable.strings
#	iOSClient/Supporting Files/lb.lproj/Localizable.strings
#	iOSClient/Supporting Files/lo.lproj/Localizable.strings
#	iOSClient/Supporting Files/lt_LT.lproj/Localizable.strings
#	iOSClient/Supporting Files/lv.lproj/Localizable.strings
#	iOSClient/Supporting Files/mk.lproj/Localizable.strings
#	iOSClient/Supporting Files/mn.lproj/Localizable.strings
#	iOSClient/Supporting Files/mr.lproj/Localizable.strings
#	iOSClient/Supporting Files/ms_MY.lproj/Localizable.strings
#	iOSClient/Supporting Files/my.lproj/Localizable.strings
#	iOSClient/Supporting Files/nb-NO.lproj/Localizable.strings
#	iOSClient/Supporting Files/ne.lproj/Localizable.strings
#	iOSClient/Supporting Files/nl.lproj/Localizable.strings
#	iOSClient/Supporting Files/nn_NO.lproj/Localizable.strings
#	iOSClient/Supporting Files/oc.lproj/Localizable.strings
#	iOSClient/Supporting Files/pl.lproj/Localizable.strings
#	iOSClient/Supporting Files/ps.lproj/Localizable.strings
#	iOSClient/Supporting Files/pt-BR.lproj/Localizable.strings
#	iOSClient/Supporting Files/pt-PT.lproj/Localizable.strings
#	iOSClient/Supporting Files/ro.lproj/Localizable.strings
#	iOSClient/Supporting Files/ru.lproj/Localizable.strings
#	iOSClient/Supporting Files/sc.lproj/Localizable.strings
#	iOSClient/Supporting Files/si.lproj/Localizable.strings
#	iOSClient/Supporting Files/sk-SK.lproj/Localizable.strings
#	iOSClient/Supporting Files/sl.lproj/Localizable.strings
#	iOSClient/Supporting Files/sq.lproj/Localizable.strings
#	iOSClient/Supporting Files/sr.lproj/Localizable.strings
#	iOSClient/Supporting Files/sr@latin.lproj/Localizable.strings
#	iOSClient/Supporting Files/sv.lproj/Localizable.strings
#	iOSClient/Supporting Files/sw.lproj/Localizable.strings
#	iOSClient/Supporting Files/ta.lproj/Localizable.strings
#	iOSClient/Supporting Files/th_TH.lproj/Localizable.strings
#	iOSClient/Supporting Files/tk.lproj/Localizable.strings
#	iOSClient/Supporting Files/tr.lproj/Localizable.strings
#	iOSClient/Supporting Files/ug.lproj/Localizable.strings
#	iOSClient/Supporting Files/uk.lproj/Localizable.strings
#	iOSClient/Supporting Files/ur_PK.lproj/Localizable.strings
#	iOSClient/Supporting Files/uz.lproj/Localizable.strings
#	iOSClient/Supporting Files/vi.lproj/Localizable.strings
#	iOSClient/Supporting Files/zh-Hans.lproj/Localizable.strings
#	iOSClient/Supporting Files/zh-Hant-TW.lproj/Localizable.strings
#	iOSClient/Supporting Files/zh_HK.lproj/Localizable.strings
#	iOSClient/Supporting Files/zu_ZA.lproj/Localizable.strings
#	iOSClient/Utility/NCCameraRoll.swift
#	iOSClient/Utility/NCUtility.swift
#	iOSClient/Viewer/NCViewerMedia/NCViewerMedia.swift
Marino Faggiana 1 年間 前
コミット
f8647d2071
1 ファイル変更55 行追加0 行削除
  1. 55 0
      iOSClient/Utility/NCLivePhoto.swift

+ 55 - 0
iOSClient/Utility/NCLivePhoto.swift

@@ -14,6 +14,9 @@ import NextcloudKit
 
 class NCLivePhoto {
 
+    var livePhotoFile = ""
+    var livePhotoFile2 = ""
+
     // MARK: PUBLIC
     typealias LivePhotoResources = (pairedImage: URL, pairedVideo: URL)
     /// Returns the paired image and video for the given PHLivePhoto
@@ -464,3 +467,55 @@ fileprivate extension AVAsset {
         }
     }
 }
+
+extension NCLivePhoto {
+
+    func setLivephotoUpload(metadata: tableMetadata) {
+
+        guard NCGlobal.shared.capabilityServerVersionMajor >= NCGlobal.shared.nextcloudVersion28 else { return }
+
+        livePhotoFile = metadata.livePhotoFile
+        livePhotoFile2 = metadata.fileName
+
+        if livePhotoFile.isEmpty {
+            if metadata.classFile == NKCommon.TypeClassFile.image.rawValue {
+                livePhotoFile = (metadata.fileName as NSString).deletingPathExtension + ".mov"
+            } else if metadata.classFile == NKCommon.TypeClassFile.video.rawValue {
+                livePhotoFile = (metadata.fileName as NSString).deletingPathExtension + ".jpg"
+            }
+        }
+
+        guard metadata.livePhoto,
+              !livePhotoFile.isEmpty,
+              let metadata2 = NCManageDatabase.shared.getMetadata(predicate: NSPredicate(format: "account == %@ AND urlBase == %@ AND path == %@ AND fileName == %@ AND status == %d", metadata.account, metadata.urlBase, metadata.path, livePhotoFile, NCGlobal.shared.metadataStatusNormal)) else { return }
+
+        let serverUrlfileNamePath1 = metadata.urlBase + metadata.path + metadata.fileName
+        let serverUrlfileNamePath2 = metadata2.urlBase + metadata2.path + livePhotoFile
+
+        Task {
+            if metadata.livePhotoFile.isEmpty {
+                _ = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath1, livePhotoFile: livePhotoFile)
+            }
+            if metadata2.livePhotoFile.isEmpty {
+                _ = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath2, livePhotoFile: livePhotoFile2)
+            }
+        }
+    }
+
+    func setLivePhoto(metadata1: tableMetadata, metadata2: tableMetadata) {
+
+        guard NCGlobal.shared.capabilityServerVersionMajor >= NCGlobal.shared.nextcloudVersion28,
+              (!metadata1.livePhotoFile.isEmpty && !metadata2.livePhotoFile.isEmpty) else { return }
+
+        Task {
+            if metadata1.livePhotoFile.isEmpty {
+                let serverUrlfileNamePath = metadata1.urlBase + metadata1.path + metadata1.fileName
+                _ = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath, livePhotoFile: metadata2.fileName)
+            }
+            if metadata2.livePhotoFile.isEmpty {
+                let serverUrlfileNamePath = metadata2.urlBase + metadata2.path + metadata2.fileName
+                _ = await NextcloudKit.shared.setLivephoto(serverUrlfileNamePath: serverUrlfileNamePath, livePhotoFile: metadata1.fileName)
+            }
+        }
+    }
+}