diff --git a/platform/http_uploader_apple.mm b/platform/http_uploader_apple.mm index 18f2584ae3..a6e97b40d6 100644 --- a/platform/http_uploader_apple.mm +++ b/platform/http_uploader_apple.mm @@ -1,6 +1,5 @@ #import #ifndef IGNORE_SWIFT // Temporary solution for CMAKE builds. TODO: Remove when support of swift code compilation is added. -#import "platform-Swift.h" #endif #include "platform/http_uploader.hpp" @@ -10,6 +9,20 @@ #include +@interface MultipartUploadTask : NSObject + +- (void)uploadWithCompletion:(void(^)())completion; + +@end + +@implementation MultipartUploadTask + +- (void)uploadWithCompletion:(void (^)())completion { + dispatch_async(dispatch_get_main_queue(), completion); +} + +@end + namespace platform { HttpUploader::Result HttpUploader::Upload() const @@ -27,17 +40,24 @@ HttpUploader::Result HttpUploader::Upload() const return [params copy]; }; - [MultipartUploader uploadWithMethod:@(m_method.c_str()) - url:@(m_url.c_str()) - fileKey:@(m_fileKey.c_str()) - filePath:@(m_filePath.c_str()) - params:mapTransform(m_params) - headers:mapTransform(m_headers) - callback:[resultPtr, waiterPtr](NSInteger httpCode, NSString * _Nonnull description) { - resultPtr->m_httpCode = static_cast(httpCode); - resultPtr->m_description = description.UTF8String; - waiterPtr->Notify(); - }]; + MultipartUploadTask *uploadTask = [[MultipartUploadTask alloc] init]; + [uploadTask uploadWithCompletion:[resultPtr, waiterPtr]() { +// resultPtr->m_httpCode = static_cast(httpCode); +// resultPtr->m_description = description.UTF8String; + waiterPtr->Notify(); + + }]; +// [MultipartUploader uploadWithMethod:@(m_method.c_str()) +// url:@(m_url.c_str()) +// fileKey:@(m_fileKey.c_str()) +// filePath:@(m_filePath.c_str()) +// params:mapTransform(m_params) +// headers:mapTransform(m_headers) +// callback:[resultPtr, waiterPtr](NSInteger httpCode, NSString * _Nonnull description) { +// resultPtr->m_httpCode = static_cast(httpCode); +// resultPtr->m_description = description.UTF8String; +// waiterPtr->Notify(); +// }]; waiterPtr->Wait(); return *resultPtr; #endif diff --git a/platform/http_uploader_apple.swift b/platform/http_uploader_apple.swift deleted file mode 100644 index 5b0cbc7395..0000000000 --- a/platform/http_uploader_apple.swift +++ /dev/null @@ -1,32 +0,0 @@ -import Foundation -import Alamofire - -final class MultipartUploader: NSObject { - static var manager: Alamofire.SessionManager = { - let configuration = URLSessionConfiguration.default - configuration.timeoutIntervalForRequest = 5 - return Alamofire.SessionManager(configuration: configuration) - }() - - @objc - static func upload(method: String, url: String, fileKey: String, filePath: String, params: [String: String], headers: [String: String], callback: @escaping (Int, String) -> Void) { - - let multipartFormData: (Alamofire.MultipartFormData) -> Void = { mfd in - for (key, value) in params { - mfd.append(value.data(using: .utf8, allowLossyConversion: false)!, withName: key) - } - mfd.append(URL(fileURLWithPath: filePath), withName: fileKey) - } - - let method = HTTPMethod(rawValue: method) ?? .post - - manager.upload(multipartFormData: multipartFormData, to: url, method: method, headers: headers) { encodingResult in - switch encodingResult { - case let .success(upload, _, _): - upload.responseJSON { callback($0.response?.statusCode ?? -1, $0.error?.localizedDescription ?? "") } - case let .failure(encodingError): - callback(-1, encodingError.localizedDescription) - } - } - } -} diff --git a/xcode/platform/platform-Bridging-Header.h b/xcode/platform/platform-Bridging-Header.h deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/xcode/platform/platform.xcodeproj/project.pbxproj b/xcode/platform/platform.xcodeproj/project.pbxproj index 8c1fd19912..530e72cc9f 100644 --- a/xcode/platform/platform.xcodeproj/project.pbxproj +++ b/xcode/platform/platform.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 341EEFD02022FCB000D5DBE4 /* http_uploader_apple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 341EEFCF2022FCB000D5DBE4 /* http_uploader_apple.swift */; }; 34513AFA1DCB37C100471BDA /* marketing_service_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34513AF71DCB37C100471BDA /* marketing_service_ios.mm */; }; 34513AFB1DCB37C100471BDA /* marketing_service.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 34513AF81DCB37C100471BDA /* marketing_service.cpp */; }; 34513AFC1DCB37C100471BDA /* marketing_service.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 34513AF91DCB37C100471BDA /* marketing_service.hpp */; }; @@ -117,8 +116,6 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 341EEFCE2022FCB000D5DBE4 /* platform-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "platform-Bridging-Header.h"; sourceTree = ""; }; - 341EEFCF2022FCB000D5DBE4 /* http_uploader_apple.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = http_uploader_apple.swift; sourceTree = ""; }; 344D8A2E204945D000CF532F /* platform_ios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = platform_ios.h; sourceTree = ""; }; 34513AF71DCB37C100471BDA /* marketing_service_ios.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = marketing_service_ios.mm; sourceTree = ""; }; 34513AF81DCB37C100471BDA /* marketing_service.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = marketing_service.cpp; sourceTree = ""; }; @@ -336,7 +333,6 @@ 675343791A3F5CF500A0A8C3 /* Products */, 3496AB6F1DC1F5AB00C5DDBA /* Frameworks */, A8E540F51F9F97CD00A1B8FA /* Recovered References */, - 341EEFCE2022FCB000D5DBE4 /* platform-Bridging-Header.h */, ); sourceTree = ""; }; @@ -376,7 +372,6 @@ 6753438E1A3F5D5900A0A8C3 /* http_thread_apple.mm */, 6753438F1A3F5D5A00A0A8C3 /* http_thread_callback.hpp */, 3D318A042021DD8A007B2607 /* http_uploader_apple.mm */, - 341EEFCF2022FCB000D5DBE4 /* http_uploader_apple.swift */, 3D318A052021DD8B007B2607 /* http_uploader.hpp */, 674125041B4C00CC00A3E828 /* local_country_file_utils.cpp */, 674125051B4C00CC00A3E828 /* local_country_file_utils.hpp */, @@ -662,7 +657,6 @@ 451E32A01F73A8B000964C9F /* secure_storage_ios.mm in Sources */, 675343DB1A3F5D5A00A0A8C3 /* wifi_location_service.cpp in Sources */, 56EB1EDC1C6B6E6C0022D831 /* file_logging.cpp in Sources */, - 341EEFD02022FCB000D5DBE4 /* http_uploader_apple.swift in Sources */, 675343B11A3F5D5A00A0A8C3 /* apple_location_service.mm in Sources */, 675343B31A3F5D5A00A0A8C3 /* chunks_download_strategy.cpp in Sources */, 34513AFA1DCB37C100471BDA /* marketing_service_ios.mm in Sources */,