@sumsub/cordova-idensic-mobile-sdk-plugin 1.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/README.md +8 -0
- package/demo/Gemfile +4 -0
- package/demo/Gemfile.lock +262 -0
- package/demo/README.md +61 -0
- package/demo/config.xml +46 -0
- package/demo/fastlane/Appfile +8 -0
- package/demo/fastlane/Fastfile +142 -0
- package/demo/fastlane/README.md +34 -0
- package/demo/fastlane/helpers +109 -0
- package/demo/hooks/README.md +23 -0
- package/demo/package-lock.json +3624 -0
- package/demo/package.json +57 -0
- package/demo/platforms/android/CordovaLib/AndroidManifest.xml +22 -0
- package/demo/platforms/android/CordovaLib/build.gradle +148 -0
- package/demo/platforms/android/CordovaLib/cordova.gradle +205 -0
- package/demo/platforms/android/CordovaLib/project.properties +11 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/AuthenticationToken.java +69 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/BuildHelper.java +70 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CallbackContext.java +142 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CallbackMap.java +65 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/Config.java +71 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/ConfigXmlParser.java +145 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaActivity.java +521 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaArgs.java +113 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaBridge.java +187 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java +105 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaDialogsHelper.java +152 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaHttpAuthHandler.java +51 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterface.java +97 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterfaceImpl.java +249 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPlugin.java +422 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPreferences.java +101 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaResourceApi.java +472 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java +142 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java +85 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java +617 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/CoreAndroid.java +407 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/ExposedJsApi.java +31 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaClientCertRequest.java +66 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaCookieManager.java +33 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaHttpAuthHandler.java +38 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/LOG.java +244 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/NativeToJsMessageQueue.java +542 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/PermissionHelper.java +87 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/PluginEntry.java +70 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/PluginManager.java +526 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/PluginResult.java +198 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/ResumeCallback.java +76 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/Whitelist.java +170 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java +74 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemExposedJsApi.java +53 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java +301 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java +88 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java +370 -0
- package/demo/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java +319 -0
- package/demo/platforms/android/android.json +440 -0
- package/demo/platforms/android/app/build.gradle +363 -0
- package/demo/platforms/android/app/libs/barcodescanner-release-2.1.5.aar +0 -0
- package/demo/platforms/android/app/src/main/AndroidManifest.xml +23 -0
- package/demo/platforms/android/app/src/main/java/com/applurk/nativetimer/Consumer.java +22 -0
- package/demo/platforms/android/app/src/main/java/com/applurk/nativetimer/NativeTimerAdapter.java +27 -0
- package/demo/platforms/android/app/src/main/java/com/applurk/nativetimer/NativeTimerAdapterImpl.java +123 -0
- package/demo/platforms/android/app/src/main/java/com/applurk/nativetimer/NativeTimerPlugin.java +163 -0
- package/demo/platforms/android/app/src/main/java/com/phonegap/plugins/barcodescanner/BarcodeScanner.java +328 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaClientAuth.java +113 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaHttpBase.java +225 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaHttpDownload.java +41 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaHttpOperation.java +24 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaHttpPlugin.java +240 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaHttpResponse.java +100 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaHttpUpload.java +91 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaObservableCallbackContext.java +58 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/cordovahttp/CordovaServerTrust.java +124 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/http/HttpBodyDecoder.java +55 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/http/HttpRequest.java +3095 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/http/JsonUtils.java +58 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/http/KeyChainKeyManager.java +57 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/http/TLSConfiguration.java +63 -0
- package/demo/platforms/android/app/src/main/java/com/silkimen/http/TLSSocketFactory.java +63 -0
- package/demo/platforms/android/app/src/main/java/com/sumsub/SumSubCordova/MainActivity.java +41 -0
- package/demo/platforms/android/app/src/main/java/main/java/com/sumsub/msdk/plugins/cordova/SNSMobileSdkCordovaPlugin.java +339 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/AssetFilesystem.java +294 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/ContentFilesystem.java +223 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/DirectoryManager.java +134 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/EncodingException.java +29 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/FileExistsException.java +29 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/FileUtils.java +1225 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/Filesystem.java +331 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/InvalidModificationException.java +30 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/LocalFilesystem.java +513 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/LocalFilesystemURL.java +64 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/NoModificationAllowedException.java +29 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/PendingRequests.java +94 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/file/TypeMismatchException.java +30 -0
- package/demo/platforms/android/app/src/main/java/org/apache/cordova/whitelist/WhitelistPlugin.java +161 -0
- package/demo/platforms/android/app/src/main/res/drawable-land-hdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-land-ldpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-land-mdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-land-xhdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-land-xxhdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-land-xxxhdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-port-hdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-port-ldpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-port-mdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-port-xhdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-port-xxhdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/drawable-port-xxxhdpi/screen.png +0 -0
- package/demo/platforms/android/app/src/main/res/mipmap-ldpi/ic_launcher.png +0 -0
- package/demo/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/demo/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/demo/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/demo/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/demo/platforms/android/app/src/main/res/values/strings.xml +7 -0
- package/demo/platforms/android/app/src/main/res/xml/config.xml +44 -0
- package/demo/platforms/android/build.gradle +54 -0
- package/demo/platforms/android/cordova/Api.js +368 -0
- package/demo/platforms/android/cordova/android_sdk_version +27 -0
- package/demo/platforms/android/cordova/android_sdk_version.bat +26 -0
- package/demo/platforms/android/cordova/build +51 -0
- package/demo/platforms/android/cordova/build.bat +26 -0
- package/demo/platforms/android/cordova/check_reqs +32 -0
- package/demo/platforms/android/cordova/check_reqs.bat +26 -0
- package/demo/platforms/android/cordova/clean +51 -0
- package/demo/platforms/android/cordova/clean.bat +26 -0
- package/demo/platforms/android/cordova/defaults.xml +26 -0
- package/demo/platforms/android/cordova/lib/Adb.js +101 -0
- package/demo/platforms/android/cordova/lib/AndroidManifest.js +126 -0
- package/demo/platforms/android/cordova/lib/AndroidProject.js +202 -0
- package/demo/platforms/android/cordova/lib/PackageType.js +25 -0
- package/demo/platforms/android/cordova/lib/android_sdk.js +101 -0
- package/demo/platforms/android/cordova/lib/build.js +321 -0
- package/demo/platforms/android/cordova/lib/builders/ProjectBuilder.js +412 -0
- package/demo/platforms/android/cordova/lib/builders/builders.js +34 -0
- package/demo/platforms/android/cordova/lib/check_reqs.js +436 -0
- package/demo/platforms/android/cordova/lib/config/GradlePropertiesParser.js +114 -0
- package/demo/platforms/android/cordova/lib/device.js +111 -0
- package/demo/platforms/android/cordova/lib/emulator.js +530 -0
- package/demo/platforms/android/cordova/lib/getASPath.bat +3 -0
- package/demo/platforms/android/cordova/lib/install-device +42 -0
- package/demo/platforms/android/cordova/lib/install-device.bat +26 -0
- package/demo/platforms/android/cordova/lib/install-emulator +38 -0
- package/demo/platforms/android/cordova/lib/install-emulator.bat +26 -0
- package/demo/platforms/android/cordova/lib/list-devices +34 -0
- package/demo/platforms/android/cordova/lib/list-devices.bat +26 -0
- package/demo/platforms/android/cordova/lib/list-emulator-images +34 -0
- package/demo/platforms/android/cordova/lib/list-emulator-images.bat +26 -0
- package/demo/platforms/android/cordova/lib/list-started-emulators +34 -0
- package/demo/platforms/android/cordova/lib/list-started-emulators.bat +26 -0
- package/demo/platforms/android/cordova/lib/log.js +56 -0
- package/demo/platforms/android/cordova/lib/plugin-build.gradle +69 -0
- package/demo/platforms/android/cordova/lib/pluginHandlers.js +334 -0
- package/demo/platforms/android/cordova/lib/prepare.js +702 -0
- package/demo/platforms/android/cordova/lib/retry.js +64 -0
- package/demo/platforms/android/cordova/lib/run.js +140 -0
- package/demo/platforms/android/cordova/lib/start-emulator +38 -0
- package/demo/platforms/android/cordova/lib/start-emulator.bat +26 -0
- package/demo/platforms/android/cordova/log +36 -0
- package/demo/platforms/android/cordova/log.bat +26 -0
- package/demo/platforms/android/cordova/loggingHelper.js +18 -0
- package/demo/platforms/android/cordova/run +54 -0
- package/demo/platforms/android/cordova/run.bat +26 -0
- package/demo/platforms/android/cordova/version +29 -0
- package/demo/platforms/android/cordova/version.bat +26 -0
- package/demo/platforms/android/cordova-idensic-mobile-sdk-plugin/SumSubCordova-build-extras.gradle +20 -0
- package/demo/platforms/android/cordova-plugin-enable-multidex/SumSubCordova-build.gradle +9 -0
- package/demo/platforms/android/cordova-plugin-qr-barcode-scanner/SumSubCordova-barcodescanner.gradle +17 -0
- package/demo/platforms/android/gradle.properties +6 -0
- package/demo/platforms/android/platform_www/cordova-js-src/android/nativeapiprovider.js +36 -0
- package/demo/platforms/android/platform_www/cordova-js-src/android/promptbasednativeapi.js +35 -0
- package/demo/platforms/android/platform_www/cordova-js-src/exec.js +286 -0
- package/demo/platforms/android/platform_www/cordova-js-src/platform.js +125 -0
- package/demo/platforms/android/platform_www/cordova-js-src/plugin/android/app.js +108 -0
- package/demo/platforms/android/platform_www/cordova.js +1935 -0
- package/demo/platforms/android/platform_www/cordova_plugins.js +287 -0
- package/demo/platforms/android/platform_www/plugins/cordova-idensic-mobile-sdk-plugin/dist/SNSMobileSDK.js +3 -0
- package/demo/platforms/android/project.properties +17 -0
- package/demo/platforms/android/settings.gradle +4 -0
- package/demo/platforms/android/wrapper.gradle +1 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/CDVDebug.h +25 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/CDVJSON_private.h +31 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/CDVJSON_private.m +99 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/CDVPlugin+Private.h +24 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVGestureHandler/CDVGestureHandler.h +26 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVGestureHandler/CDVGestureHandler.m +70 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVHandleOpenURL/CDVHandleOpenURL.h +27 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVHandleOpenURL/CDVHandleOpenURL.m +86 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVIntentAndNavigationFilter/CDVIntentAndNavigationFilter.h +40 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVIntentAndNavigationFilter/CDVIntentAndNavigationFilter.m +150 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVLocalStorage/CDVLocalStorage.h +50 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVLocalStorage/CDVLocalStorage.m +493 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVLogger/CDVLogger.h +26 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVLogger/CDVLogger.m +37 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewDelegate.h +45 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewDelegate.m +408 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewEngine.h +29 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewEngine.m +206 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewNavigationDelegate.h +33 -0
- package/demo/platforms/ios/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewNavigationDelegate.m +157 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDV.h +32 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVAppDelegate.h +28 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVAppDelegate.m +118 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVAvailability.h +115 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVAvailabilityDeprecated.h +26 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVCommandDelegate.h +51 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVCommandDelegateImpl.h +36 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m +186 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVCommandQueue.h +39 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVCommandQueue.m +194 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVConfigParser.h +30 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVConfigParser.m +81 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVInvokedUrlCommand.h +52 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVInvokedUrlCommand.m +116 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVPlugin+Resources.h +39 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVPlugin+Resources.m +38 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.h +74 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.m +199 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVPluginResult.h +83 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVPluginResult.m +203 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVScreenOrientationDelegate.h +33 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVTimer.h +27 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVTimer.m +123 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.h +27 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m +113 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVUserAgentUtil.h +27 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVUserAgentUtil.m +162 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVViewController.h +92 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVViewController.m +810 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVWebViewEngineProtocol.h +42 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVWhitelist.h +34 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/CDVWhitelist.m +285 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.h +35 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.m +63 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.h +29 -0
- package/demo/platforms/ios/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.m +58 -0
- package/demo/platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj +797 -0
- package/demo/platforms/ios/CordovaLib/CordovaLib_Prefix.pch +22 -0
- package/demo/platforms/ios/CordovaLib/VERSION +1 -0
- package/demo/platforms/ios/CordovaLib/cordova.js +2188 -0
- package/demo/platforms/ios/Podfile +9 -0
- package/demo/platforms/ios/Podfile.lock +20 -0
- package/demo/platforms/ios/SumSubCordova/Bridging-Header.h +28 -0
- package/demo/platforms/ios/SumSubCordova/CDVLaunchScreen.storyboard +60 -0
- package/demo/platforms/ios/SumSubCordova/Classes/AppDelegate.h +33 -0
- package/demo/platforms/ios/SumSubCordova/Classes/AppDelegate.m +39 -0
- package/demo/platforms/ios/SumSubCordova/Classes/MainViewController.h +40 -0
- package/demo/platforms/ios/SumSubCordova/Classes/MainViewController.m +148 -0
- package/demo/platforms/ios/SumSubCordova/Classes/MainViewController.xib +138 -0
- package/demo/platforms/ios/SumSubCordova/Entitlements-Debug.plist +24 -0
- package/demo/platforms/ios/SumSubCordova/Entitlements-Release.plist +24 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/Contents.json +116 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-1024.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-20.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-20@2x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-20@3x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-29.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-29@2x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-29@3x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-40.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-40@2x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-40@3x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-60@2x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-60@3x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-76.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-76@2x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/AppIcon.appiconset/cordova_icon-83.5@2x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/Contents.json +6 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Contents.json +176 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-2436h.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-568h@2x~iphone.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-667h.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-736h.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-Landscape-2436h.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x~ipad.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-Landscape~ipad.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x~ipad.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default-Portrait~ipad.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default@2x~iphone.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchImage.launchimage/Default~iphone.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Images.xcassets/LaunchStoryboard.imageset/Contents.json +168 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/README +20 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-idensic-mobile-sdk-plugin/SNSMobileSdkCordovaPlugin.h +12 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-idensic-mobile-sdk-plugin/SNSMobileSdkCordovaPlugin.m +263 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFHTTPSessionManager.h +353 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFHTTPSessionManager.m +464 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFNetworkReachabilityManager.h +206 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFNetworkReachabilityManager.m +263 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFNetworking.h +41 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFSecurityPolicy.h +154 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFSecurityPolicy.m +353 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFURLRequestSerialization.h +479 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFURLRequestSerialization.m +1355 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFURLResponseSerialization.h +318 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFURLResponseSerialization.m +806 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFURLSessionManager.h +500 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/AFURLSessionManager.m +1239 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/BinaryRequestSerializer.h +8 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/BinaryRequestSerializer.m +53 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/BinaryResponseSerializer.h +8 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/BinaryResponseSerializer.m +126 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/CordovaHttpPlugin.h +20 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/CordovaHttpPlugin.m +639 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/SDNetworkActivityIndicator.h +18 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/SDNetworkActivityIndicator.m +70 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/TextRequestSerializer.h +8 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/TextRequestSerializer.m +53 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/TextResponseSerializer.h +8 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-advanced-http/TextResponseSerializer.m +145 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-file/CDVAssetLibraryFilesystem.h +30 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-file/CDVAssetLibraryFilesystem.m +253 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-file/CDVFile.h +157 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-file/CDVFile.m +1119 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-file/CDVLocalFilesystem.h +32 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-file/CDVLocalFilesystem.m +750 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-qr-barcode-scanner/CDVBarcodeScanner.mm +1067 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-timer/NativeTimerAdapter.h +35 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-timer/NativeTimerAdapter.m +76 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-timer/NativeTimerPlugin.h +28 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-timer/NativeTimerPlugin.m +158 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-wkwebview-engine/CDVWKProcessPoolFactory.h +27 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-wkwebview-engine/CDVWKProcessPoolFactory.m +49 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewEngine.h +29 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewEngine.m +494 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewUIDelegate.h +28 -0
- package/demo/platforms/ios/SumSubCordova/Plugins/cordova-plugin-wkwebview-engine/CDVWKWebViewUIDelegate.m +123 -0
- package/demo/platforms/ios/SumSubCordova/Resources/CDVBarcodeScanner.bundle/beep.caf +0 -0
- package/demo/platforms/ios/SumSubCordova/Resources/CDVBarcodeScanner.bundle/torch.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Resources/CDVBarcodeScanner.bundle/torch@2x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Resources/CDVBarcodeScanner.bundle/torch@3x.png +0 -0
- package/demo/platforms/ios/SumSubCordova/Resources/scannerOverlay.xib +185 -0
- package/demo/platforms/ios/SumSubCordova/Scripts/copy-www-build-step.sh +63 -0
- package/demo/platforms/ios/SumSubCordova/SumSubCordova-Info.plist +60 -0
- package/demo/platforms/ios/SumSubCordova/SumSubCordova-Prefix.pch +26 -0
- package/demo/platforms/ios/SumSubCordova/config.xml +74 -0
- package/demo/platforms/ios/SumSubCordova/main.m +35 -0
- package/demo/platforms/ios/SumSubCordova.xcodeproj/project.pbxproj +698 -0
- package/demo/platforms/ios/SumSubCordova.xcworkspace/contents.xcworkspacedata +10 -0
- package/demo/platforms/ios/SumSubCordova.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/demo/platforms/ios/SumSubCordova.xcworkspace/xcshareddata/xcschemes/SumSubCordova.xcscheme +91 -0
- package/demo/platforms/ios/cordova/Api.js +715 -0
- package/demo/platforms/ios/cordova/apple_ios_version +27 -0
- package/demo/platforms/ios/cordova/apple_osx_version +27 -0
- package/demo/platforms/ios/cordova/apple_xcode_version +29 -0
- package/demo/platforms/ios/cordova/build +63 -0
- package/demo/platforms/ios/cordova/build-debug.xcconfig +32 -0
- package/demo/platforms/ios/cordova/build-extras.xcconfig +0 -0
- package/demo/platforms/ios/cordova/build-release.xcconfig +33 -0
- package/demo/platforms/ios/cordova/build.bat +19 -0
- package/demo/platforms/ios/cordova/build.xcconfig +45 -0
- package/demo/platforms/ios/cordova/check_reqs +32 -0
- package/demo/platforms/ios/cordova/check_reqs.bat +25 -0
- package/demo/platforms/ios/cordova/clean +49 -0
- package/demo/platforms/ios/cordova/clean.bat +19 -0
- package/demo/platforms/ios/cordova/defaults.xml +59 -0
- package/demo/platforms/ios/cordova/lib/BridgingHeader.js +125 -0
- package/demo/platforms/ios/cordova/lib/Podfile.js +424 -0
- package/demo/platforms/ios/cordova/lib/PodsJson.js +209 -0
- package/demo/platforms/ios/cordova/lib/build.js +464 -0
- package/demo/platforms/ios/cordova/lib/check_reqs.js +235 -0
- package/demo/platforms/ios/cordova/lib/clean.js +42 -0
- package/demo/platforms/ios/cordova/lib/list-devices +66 -0
- package/demo/platforms/ios/cordova/lib/list-emulator-build-targets +108 -0
- package/demo/platforms/ios/cordova/lib/list-emulator-images +43 -0
- package/demo/platforms/ios/cordova/lib/list-started-emulators +49 -0
- package/demo/platforms/ios/cordova/lib/plugman/pluginHandlers.js +391 -0
- package/demo/platforms/ios/cordova/lib/prepare.js +1190 -0
- package/demo/platforms/ios/cordova/lib/projectFile.js +134 -0
- package/demo/platforms/ios/cordova/lib/run.js +263 -0
- package/demo/platforms/ios/cordova/lib/spawn.js +51 -0
- package/demo/platforms/ios/cordova/lib/start-emulator +30 -0
- package/demo/platforms/ios/cordova/lib/versions.js +179 -0
- package/demo/platforms/ios/cordova/log +23 -0
- package/demo/platforms/ios/cordova/log.bat +19 -0
- package/demo/platforms/ios/cordova/loggingHelper.js +30 -0
- package/demo/platforms/ios/cordova/run +63 -0
- package/demo/platforms/ios/cordova/run.bat +19 -0
- package/demo/platforms/ios/cordova/version +35 -0
- package/demo/platforms/ios/cordova/version.bat +26 -0
- package/demo/platforms/ios/frameworks.json +7 -0
- package/demo/platforms/ios/ios.json +402 -0
- package/demo/platforms/ios/platform_www/cordova-js-src/.eslintrc.yml +4 -0
- package/demo/platforms/ios/platform_www/cordova-js-src/exec.js +262 -0
- package/demo/platforms/ios/platform_www/cordova-js-src/platform.js +31 -0
- package/demo/platforms/ios/platform_www/cordova-js-src/plugin/ios/console.js +186 -0
- package/demo/platforms/ios/platform_www/cordova-js-src/plugin/ios/logger.js +349 -0
- package/demo/platforms/ios/platform_www/cordova.js +2188 -0
- package/demo/platforms/ios/platform_www/cordova_plugins.js +302 -0
- package/demo/platforms/ios/platform_www/plugins/cordova-idensic-mobile-sdk-plugin/dist/SNSMobileSDK.js +3 -0
- package/demo/platforms/ios/pods-debug.xcconfig +2 -0
- package/demo/platforms/ios/pods-release.xcconfig +2 -0
- package/demo/platforms/ios/pods.json +20 -0
- package/demo/plugins/android.json +47 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/dist/SNSMobileSDK.js +1 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/package.json +48 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/plugin.xml +82 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/android/build-extras.gradle +20 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/android/build.gradle +54 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/android/dependencies.gradle +122 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/android/gradlew +172 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/android/gradlew.bat +84 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/android/src/main/java/com/sumsub/msdk/plugins/cordova/SNSMobileSdkCordovaPlugin.java +328 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/ios/SNSMobileSdkCordovaPlugin.h +12 -0
- package/demo/plugins/cordova-idensic-mobile-sdk-plugin/src/ios/SNSMobileSdkCordovaPlugin.m +263 -0
- package/demo/plugins/cordova-plugin-advanced-http/.editorconfig +19 -0
- package/demo/plugins/cordova-plugin-advanced-http/.github/ISSUE_TEMPLATE/--bug-report.md +33 -0
- package/demo/plugins/cordova-plugin-advanced-http/.github/ISSUE_TEMPLATE/--feature-request.md +21 -0
- package/demo/plugins/cordova-plugin-advanced-http/.github/ISSUE_TEMPLATE/--support-question.md +18 -0
- package/demo/plugins/cordova-plugin-advanced-http/.github/workflows/ci.yml +65 -0
- package/demo/plugins/cordova-plugin-advanced-http/.travis.yml +61 -0
- package/demo/plugins/cordova-plugin-advanced-http/.vscode/settings.json +3 -0
- package/demo/plugins/cordova-plugin-advanced-http/CHANGELOG.md +347 -0
- package/demo/plugins/cordova-plugin-advanced-http/CONTRIBUTING.md +82 -0
- package/demo/plugins/cordova-plugin-advanced-http/LICENSE +23 -0
- package/demo/plugins/cordova-plugin-advanced-http/README.md +483 -0
- package/demo/plugins/cordova-plugin-advanced-http/package.json +114 -0
- package/demo/plugins/cordova-plugin-advanced-http/plugin.xml +96 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaClientAuth.java +113 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaHttpBase.java +225 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaHttpDownload.java +41 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaHttpOperation.java +24 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaHttpPlugin.java +240 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaHttpResponse.java +100 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaHttpUpload.java +91 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaObservableCallbackContext.java +58 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/cordovahttp/CordovaServerTrust.java +124 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/http/HttpBodyDecoder.java +55 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/http/HttpRequest.java +3095 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/http/JsonUtils.java +58 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/http/KeyChainKeyManager.java +57 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/http/TLSConfiguration.java +63 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/android/com/silkimen/http/TLSSocketFactory.java +63 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/browser/cordova-http-plugin.js +323 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFHTTPSessionManager.h +353 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFHTTPSessionManager.m +464 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFNetworkReachabilityManager.h +206 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFNetworkReachabilityManager.m +263 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFNetworking.h +41 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFSecurityPolicy.h +154 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFSecurityPolicy.m +353 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFURLRequestSerialization.h +479 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFURLRequestSerialization.m +1355 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFURLResponseSerialization.h +318 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFURLResponseSerialization.m +806 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFURLSessionManager.h +500 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/AFNetworking/AFURLSessionManager.m +1239 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/BinaryRequestSerializer.h +8 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/BinaryRequestSerializer.m +53 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/BinaryResponseSerializer.h +8 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/BinaryResponseSerializer.m +126 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/CordovaHttpPlugin.h +20 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/CordovaHttpPlugin.m +639 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/SDNetworkActivityIndicator/LICENSE +20 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/SDNetworkActivityIndicator/README.md +52 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/SDNetworkActivityIndicator/SDNetworkActivityIndicator.h +18 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/SDNetworkActivityIndicator/SDNetworkActivityIndicator.m +70 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/TextRequestSerializer.h +8 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/TextRequestSerializer.m +53 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/TextResponseSerializer.h +8 -0
- package/demo/plugins/cordova-plugin-advanced-http/src/ios/TextResponseSerializer.m +145 -0
- package/demo/plugins/cordova-plugin-androidx/README.md +55 -0
- package/demo/plugins/cordova-plugin-androidx/package.json +47 -0
- package/demo/plugins/cordova-plugin-androidx/plugin.xml +20 -0
- package/demo/plugins/cordova-plugin-androidx/scripts/apply-to-gradle.properties.js +49 -0
- package/demo/plugins/cordova-plugin-androidx-adapter/README.md +67 -0
- package/demo/plugins/cordova-plugin-androidx-adapter/apply.js +101 -0
- package/demo/plugins/cordova-plugin-androidx-adapter/artifact-mappings.json +105 -0
- package/demo/plugins/cordova-plugin-androidx-adapter/class-mappings.json +1938 -0
- package/demo/plugins/cordova-plugin-androidx-adapter/package.json +43 -0
- package/demo/plugins/cordova-plugin-androidx-adapter/plugin.xml +20 -0
- package/demo/plugins/cordova-plugin-console/.appveyor.yml +29 -0
- package/demo/plugins/cordova-plugin-console/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- package/demo/plugins/cordova-plugin-console/.jshintrc +17 -0
- package/demo/plugins/cordova-plugin-console/.travis.yml +82 -0
- package/demo/plugins/cordova-plugin-console/CONTRIBUTING.md +37 -0
- package/demo/plugins/cordova-plugin-console/LICENSE +202 -0
- package/demo/plugins/cordova-plugin-console/NOTICE +5 -0
- package/demo/plugins/cordova-plugin-console/README.md +116 -0
- package/demo/plugins/cordova-plugin-console/RELEASENOTES.md +126 -0
- package/demo/plugins/cordova-plugin-console/doc/de/README.md +43 -0
- package/demo/plugins/cordova-plugin-console/doc/de/index.md +41 -0
- package/demo/plugins/cordova-plugin-console/doc/es/README.md +41 -0
- package/demo/plugins/cordova-plugin-console/doc/es/index.md +39 -0
- package/demo/plugins/cordova-plugin-console/doc/fr/README.md +41 -0
- package/demo/plugins/cordova-plugin-console/doc/fr/index.md +39 -0
- package/demo/plugins/cordova-plugin-console/doc/it/README.md +43 -0
- package/demo/plugins/cordova-plugin-console/doc/it/index.md +41 -0
- package/demo/plugins/cordova-plugin-console/doc/ja/README.md +43 -0
- package/demo/plugins/cordova-plugin-console/doc/ja/index.md +41 -0
- package/demo/plugins/cordova-plugin-console/doc/ko/README.md +43 -0
- package/demo/plugins/cordova-plugin-console/doc/ko/index.md +41 -0
- package/demo/plugins/cordova-plugin-console/doc/pl/README.md +43 -0
- package/demo/plugins/cordova-plugin-console/doc/pl/index.md +41 -0
- package/demo/plugins/cordova-plugin-console/doc/ru/index.md +31 -0
- package/demo/plugins/cordova-plugin-console/doc/zh/README.md +43 -0
- package/demo/plugins/cordova-plugin-console/doc/zh/index.md +41 -0
- package/demo/plugins/cordova-plugin-console/package.json +82 -0
- package/demo/plugins/cordova-plugin-console/plugin.xml +132 -0
- package/demo/plugins/cordova-plugin-console/src/ios/CDVLogger.h +26 -0
- package/demo/plugins/cordova-plugin-console/src/ios/CDVLogger.m +38 -0
- package/demo/plugins/cordova-plugin-console/src/ubuntu/console.cpp +29 -0
- package/demo/plugins/cordova-plugin-console/src/ubuntu/console.h +43 -0
- package/demo/plugins/cordova-plugin-console/src/wp/DebugConsole.cs +47 -0
- package/demo/plugins/cordova-plugin-console/tests/package.json +14 -0
- package/demo/plugins/cordova-plugin-console/tests/plugin.xml +31 -0
- package/demo/plugins/cordova-plugin-console/tests/tests.js +43 -0
- package/demo/plugins/cordova-plugin-enable-multidex/.editorconfig +20 -0
- package/demo/plugins/cordova-plugin-enable-multidex/.eslintrc.json +11 -0
- package/demo/plugins/cordova-plugin-enable-multidex/.prettierrc.json +10 -0
- package/demo/plugins/cordova-plugin-enable-multidex/.travis.yml +52 -0
- package/demo/plugins/cordova-plugin-enable-multidex/LICENSE +21 -0
- package/demo/plugins/cordova-plugin-enable-multidex/README.md +25 -0
- package/demo/plugins/cordova-plugin-enable-multidex/package.json +79 -0
- package/demo/plugins/cordova-plugin-enable-multidex/plugin.xml +18 -0
- package/demo/plugins/cordova-plugin-enable-multidex/scripts/android/editManifest.js +38 -0
- package/demo/plugins/cordova-plugin-enable-multidex/src/android/build.gradle +9 -0
- package/demo/plugins/cordova-plugin-file/.jshintrc +30 -0
- package/demo/plugins/cordova-plugin-file/.ratignore +1 -0
- package/demo/plugins/cordova-plugin-file/CONTRIBUTING.md +37 -0
- package/demo/plugins/cordova-plugin-file/LICENSE +202 -0
- package/demo/plugins/cordova-plugin-file/NOTICE +5 -0
- package/demo/plugins/cordova-plugin-file/README.md +833 -0
- package/demo/plugins/cordova-plugin-file/RELEASENOTES.md +496 -0
- package/demo/plugins/cordova-plugin-file/doc/plugins.md +120 -0
- package/demo/plugins/cordova-plugin-file/package.json +86 -0
- package/demo/plugins/cordova-plugin-file/plugin.xml +260 -0
- package/demo/plugins/cordova-plugin-file/src/android/AssetFilesystem.java +294 -0
- package/demo/plugins/cordova-plugin-file/src/android/ContentFilesystem.java +223 -0
- package/demo/plugins/cordova-plugin-file/src/android/DirectoryManager.java +134 -0
- package/demo/plugins/cordova-plugin-file/src/android/EncodingException.java +29 -0
- package/demo/plugins/cordova-plugin-file/src/android/FileExistsException.java +29 -0
- package/demo/plugins/cordova-plugin-file/src/android/FileUtils.java +1225 -0
- package/demo/plugins/cordova-plugin-file/src/android/Filesystem.java +331 -0
- package/demo/plugins/cordova-plugin-file/src/android/InvalidModificationException.java +30 -0
- package/demo/plugins/cordova-plugin-file/src/android/LocalFilesystem.java +513 -0
- package/demo/plugins/cordova-plugin-file/src/android/LocalFilesystemURL.java +64 -0
- package/demo/plugins/cordova-plugin-file/src/android/NoModificationAllowedException.java +29 -0
- package/demo/plugins/cordova-plugin-file/src/android/PendingRequests.java +94 -0
- package/demo/plugins/cordova-plugin-file/src/android/TypeMismatchException.java +30 -0
- package/demo/plugins/cordova-plugin-file/src/android/build-extras.gradle +47 -0
- package/demo/plugins/cordova-plugin-file/src/browser/FileProxy.js +1059 -0
- package/demo/plugins/cordova-plugin-file/src/ios/CDVAssetLibraryFilesystem.h +30 -0
- package/demo/plugins/cordova-plugin-file/src/ios/CDVAssetLibraryFilesystem.m +253 -0
- package/demo/plugins/cordova-plugin-file/src/ios/CDVFile.h +157 -0
- package/demo/plugins/cordova-plugin-file/src/ios/CDVFile.m +1119 -0
- package/demo/plugins/cordova-plugin-file/src/ios/CDVLocalFilesystem.h +32 -0
- package/demo/plugins/cordova-plugin-file/src/ios/CDVLocalFilesystem.m +750 -0
- package/demo/plugins/cordova-plugin-file/src/osx/CDVFile.h +189 -0
- package/demo/plugins/cordova-plugin-file/src/osx/CDVFile.m +1056 -0
- package/demo/plugins/cordova-plugin-file/src/osx/CDVLocalFilesystem.h +32 -0
- package/demo/plugins/cordova-plugin-file/src/osx/CDVLocalFilesystem.m +733 -0
- package/demo/plugins/cordova-plugin-file/src/windows/FileProxy.js +1190 -0
- package/demo/plugins/cordova-plugin-file/tests/package.json +17 -0
- package/demo/plugins/cordova-plugin-file/tests/plugin.xml +43 -0
- package/demo/plugins/cordova-plugin-file/tests/src/android/TestContentProvider.java +93 -0
- package/demo/plugins/cordova-plugin-file/tests/tests.js +4163 -0
- package/demo/plugins/cordova-plugin-file/types/index.d.ts +378 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/.editorconfig +16 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/.github/CONTRIBUTING.md +72 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/.github/ISSUE_TEMPLATE.md +24 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/.github/lock.yml +25 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/.github/stale.yml +20 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/.travis.yml +11 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/CHANGELOG.md +448 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/LICENSE.txt +22 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/README.md +197 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/buttons.psd +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/hooks/windows/check-arch.js +52 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/package.json +89 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/plugin.xml +74 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/spec/helper/cordova.js +83 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/spec/index.spec.js +78 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/README.md +1 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/AndroidManifest.xml +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/R.txt +1398 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/aapt/AndroidManifest.xml +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html/apache-license.txt +201 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-de/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-de/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-de/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-de/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-de/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-de/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-de/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-en/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-en/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-en/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-en/license.html +42 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-en/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-en/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-en/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-es/about1d.html +18 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-es/about2d.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-es/index.html +24 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-es/license.html +39 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-es/scanning.html +18 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-es/sharing.html +13 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-es/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-fr/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-fr/about2d.html +26 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-fr/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-fr/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-fr/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-fr/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-fr/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-it/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-it/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-it/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-it/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-it/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-it/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-it/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ja/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ja/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ja/index.html +22 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ja/license.html +29 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ja/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ja/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ja/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ko/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ko/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ko/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ko/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ko/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ko/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ko/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-nl/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-nl/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-nl/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-nl/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-nl/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-nl/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-nl/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-pt/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-pt/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-pt/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-pt/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-pt/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-pt/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-pt/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ru/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ru/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ru/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ru/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ru/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ru/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-ru/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-uk/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-uk/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-uk/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-uk/license.html +29 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-uk/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-uk/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-uk/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rCN/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rCN/about2d.html +29 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rCN/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rCN/license.html +30 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rCN/scanning.html +19 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rCN/sharing.html +13 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rCN/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rHK/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rHK/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rHK/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rHK/license.html +31 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rHK/scanning.html +21 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rHK/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rHK/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rTW/about1d.html +15 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rTW/about2d.html +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rTW/index.html +23 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rTW/license.html +31 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rTW/scanning.html +21 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rTW/sharing.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/html-zh-rTW/whatsnew.html +14 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/big-1d.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/big-aztec.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/big-datamatrix.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/big-pdf417.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/big-qr.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/contact-results-screen.jpg +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/demo-no.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/demo-yes.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/scan-example.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/scan-from-phone.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/images/search-book-contents.jpg +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/assets/style.css +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/classes.jar +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/drawable/flip_camera.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/drawable/launcher_icon.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/drawable/share_via_barcode.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/drawable/toggle_torch.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/drawable-hdpi/launcher_icon.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/drawable-xhdpi/launcher_icon.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/drawable-xxhdpi/launcher_icon.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/app_picker_list_item.xml +39 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/bookmark_picker_list_item.xml +39 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/capture.xml +229 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/encode.xml +54 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/help.xml +21 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/history_list_item.xml +38 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/search_book_contents.xml +55 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/search_book_contents_header.xml +25 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/search_book_contents_list_item.xml +41 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout/share.xml +95 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout-land/encode.xml +53 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout-land/share.xml +91 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/layout-ldpi/capture.xml +219 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/menu/capture.xml +38 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/menu/encode.xml +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/menu/history.xml +28 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/raw/beep.ogg +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values/values.xml +221 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-ar/values-ar.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-bg/values-bg.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-ca/values-ca.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-cs/values-cs.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-da/values-da.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-de/values-de.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-el/values-el.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-es/values-es.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-eu/values-eu.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-fi/values-fi.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-fr/values-fr.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-he/values-he.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-hi/values-hi.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-hu/values-hu.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-id/values-id.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-it/values-it.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-iw/values-iw.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-ja/values-ja.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-ko/values-ko.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-nl/values-nl.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-pl/values-pl.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-pt/values-pt.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-ro/values-ro.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-ru/values-ru.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-sk/values-sk.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-sl/values-sl.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-sv/values-sv.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-th/values-th.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-tr/values-tr.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-uk/values-uk.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-zh-rCN/values-zh-rCN.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-zh-rHK/values-zh-rHK.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/values-zh-rTW/values-zh-rTW.xml +129 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5/res/xml/preferences.xml +136 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner-release-2.1.5.aar +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/barcodescanner.gradle +17 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/android/com/phonegap/plugins/barcodescanner/BarcodeScanner.java +328 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/browser/BarcodeScannerProxy.js +24 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/ios/CDVBarcodeScanner.bundle/beep.caf +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/ios/CDVBarcodeScanner.bundle/torch.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/ios/CDVBarcodeScanner.bundle/torch@2x.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/ios/CDVBarcodeScanner.bundle/torch@3x.png +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/ios/CDVBarcodeScanner.mm +1067 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/ios/scannerOverlay.xib +185 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/BarcodeScannerProxy.js +738 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/assets/plugin-barcodeScanner.css +89 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib/Properties/AssemblyInfo.cs +39 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib/Reader.cs +173 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib/WinRTBarcodeReader.csproj +137 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib/ZXing.winmd +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib.UW/ANY/ZXing.winmd +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib.UW/ARM/ZXing.winmd +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib.UW/x64/ZXing.winmd +0 -0
- package/demo/plugins/cordova-plugin-qr-barcode-scanner/src/windows/lib.UW/x86/ZXing.winmd +0 -0
- package/demo/plugins/cordova-plugin-timer/.appveyor.yml +28 -0
- package/demo/plugins/cordova-plugin-timer/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- package/demo/plugins/cordova-plugin-timer/.jshintignore +1 -0
- package/demo/plugins/cordova-plugin-timer/.jshintrc +16 -0
- package/demo/plugins/cordova-plugin-timer/.travis.yml +98 -0
- package/demo/plugins/cordova-plugin-timer/LICENSE +204 -0
- package/demo/plugins/cordova-plugin-timer/README.md +88 -0
- package/demo/plugins/cordova-plugin-timer/RELEASENOTES.md +0 -0
- package/demo/plugins/cordova-plugin-timer/package.json +87 -0
- package/demo/plugins/cordova-plugin-timer/plugin.xml +68 -0
- package/demo/plugins/cordova-plugin-timer/src/android/Consumer.java +22 -0
- package/demo/plugins/cordova-plugin-timer/src/android/NativeTimerAdapter.java +27 -0
- package/demo/plugins/cordova-plugin-timer/src/android/NativeTimerAdapterImpl.java +123 -0
- package/demo/plugins/cordova-plugin-timer/src/android/NativeTimerPlugin.java +163 -0
- package/demo/plugins/cordova-plugin-timer/src/ios/NativeTimerAdapter.h +35 -0
- package/demo/plugins/cordova-plugin-timer/src/ios/NativeTimerAdapter.m +76 -0
- package/demo/plugins/cordova-plugin-timer/src/ios/NativeTimerPlugin.h +28 -0
- package/demo/plugins/cordova-plugin-timer/src/ios/NativeTimerPlugin.m +158 -0
- package/demo/plugins/cordova-plugin-timer/types/index.d.ts +21 -0
- package/demo/plugins/cordova-plugin-whitelist/CONTRIBUTING.md +37 -0
- package/demo/plugins/cordova-plugin-whitelist/LICENSE +202 -0
- package/demo/plugins/cordova-plugin-whitelist/NOTICE +5 -0
- package/demo/plugins/cordova-plugin-whitelist/README.md +167 -0
- package/demo/plugins/cordova-plugin-whitelist/RELEASENOTES.md +87 -0
- package/demo/plugins/cordova-plugin-whitelist/package.json +70 -0
- package/demo/plugins/cordova-plugin-whitelist/plugin.xml +44 -0
- package/demo/plugins/cordova-plugin-whitelist/src/android/WhitelistPlugin.java +161 -0
- package/demo/plugins/cordova-plugin-whitelist/tests/README.md +53 -0
- package/demo/plugins/cordova-plugin-whitelist/tests/package.json +15 -0
- package/demo/plugins/cordova-plugin-whitelist/tests/plugin.xml +56 -0
- package/demo/plugins/cordova-plugin-whitelist/tests/scripts/remove-access.js +19 -0
- package/demo/plugins/cordova-plugin-whitelist/tests/src/android/WhitelistAPI.java +90 -0
- package/demo/plugins/cordova-plugin-whitelist/tests/tests.js +214 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/CONTRIBUTING.md +32 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/LICENSE +202 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/NOTICE +5 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/README.md +123 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/RELEASENOTES.md +121 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/package.json +72 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/plugin.xml +63 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKProcessPoolFactory.h +27 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKProcessPoolFactory.m +49 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewEngine.h +29 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewEngine.m +494 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewUIDelegate.h +28 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/src/ios/CDVWKWebViewUIDelegate.m +123 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineLibTests/CDVWKWebViewEngineTest.m +240 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineLibTests/Info.plist +24 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/project.pbxproj +559 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/project.xcworkspace/xcshareddata/CDVWKWebViewEngineTest.xccheckout +41 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/xcshareddata/xcschemes/CDVWKWebViewEngineLib.xcscheme +80 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest/CDVWKWebViewEngineTest.xcodeproj/xcshareddata/xcschemes/CDVWKWebViewEngineLibTests.xcscheme +104 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest.xcworkspace/contents.xcworkspacedata +7 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest.xcworkspace/xcshareddata/CDVWKWebViewEngineTest.xccheckout +41 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/CDVWKWebViewEngineTest.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme +80 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/README.md +40 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/package.json +13 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/ios/test.xcconfig +20 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/package.json +14 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/plugin.xml +29 -0
- package/demo/plugins/cordova-plugin-wkwebview-engine/tests/tests.js +44 -0
- package/demo/plugins/ios.json +46 -0
- package/dist/SNSMobileSDK.js +1 -0
- package/package.json +48 -0
- package/plugin.xml +82 -0
- package/src/android/build-extras.gradle +22 -0
- package/src/android/build.gradle +54 -0
- package/src/android/dependencies.gradle +122 -0
- package/src/android/gradlew +172 -0
- package/src/android/gradlew.bat +84 -0
- package/src/android/src/main/java/com/sumsub/msdk/plugins/cordova/SNSMobileSdkCordovaPlugin.java +339 -0
- package/src/ios/SNSMobileSdkCordovaPlugin.h +12 -0
- package/src/ios/SNSMobileSdkCordovaPlugin.m +263 -0
- package/webpack.config.js +42 -0
|
@@ -0,0 +1,1239 @@
|
|
|
1
|
+
// AFURLSessionManager.m
|
|
2
|
+
// Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ )
|
|
3
|
+
//
|
|
4
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
// in the Software without restriction, including without limitation the rights
|
|
7
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
// furnished to do so, subject to the following conditions:
|
|
10
|
+
//
|
|
11
|
+
// The above copyright notice and this permission notice shall be included in
|
|
12
|
+
// all copies or substantial portions of the Software.
|
|
13
|
+
//
|
|
14
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
20
|
+
// THE SOFTWARE.
|
|
21
|
+
|
|
22
|
+
#import "AFURLSessionManager.h"
|
|
23
|
+
#import <objc/runtime.h>
|
|
24
|
+
|
|
25
|
+
#ifndef NSFoundationVersionNumber_iOS_8_0
|
|
26
|
+
#define NSFoundationVersionNumber_With_Fixed_5871104061079552_bug 1140.11
|
|
27
|
+
#else
|
|
28
|
+
#define NSFoundationVersionNumber_With_Fixed_5871104061079552_bug NSFoundationVersionNumber_iOS_8_0
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
static dispatch_queue_t url_session_manager_creation_queue() {
|
|
32
|
+
static dispatch_queue_t af_url_session_manager_creation_queue;
|
|
33
|
+
static dispatch_once_t onceToken;
|
|
34
|
+
dispatch_once(&onceToken, ^{
|
|
35
|
+
af_url_session_manager_creation_queue = dispatch_queue_create("com.alamofire.networking.session.manager.creation", DISPATCH_QUEUE_SERIAL);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return af_url_session_manager_creation_queue;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static void url_session_manager_create_task_safely(dispatch_block_t block) {
|
|
42
|
+
if (NSFoundationVersionNumber < NSFoundationVersionNumber_With_Fixed_5871104061079552_bug) {
|
|
43
|
+
// Fix of bug
|
|
44
|
+
// Open Radar:http://openradar.appspot.com/radar?id=5871104061079552 (status: Fixed in iOS8)
|
|
45
|
+
// Issue about:https://github.com/AFNetworking/AFNetworking/issues/2093
|
|
46
|
+
dispatch_sync(url_session_manager_creation_queue(), block);
|
|
47
|
+
} else {
|
|
48
|
+
block();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static dispatch_queue_t url_session_manager_processing_queue() {
|
|
53
|
+
static dispatch_queue_t af_url_session_manager_processing_queue;
|
|
54
|
+
static dispatch_once_t onceToken;
|
|
55
|
+
dispatch_once(&onceToken, ^{
|
|
56
|
+
af_url_session_manager_processing_queue = dispatch_queue_create("com.alamofire.networking.session.manager.processing", DISPATCH_QUEUE_CONCURRENT);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
return af_url_session_manager_processing_queue;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static dispatch_group_t url_session_manager_completion_group() {
|
|
63
|
+
static dispatch_group_t af_url_session_manager_completion_group;
|
|
64
|
+
static dispatch_once_t onceToken;
|
|
65
|
+
dispatch_once(&onceToken, ^{
|
|
66
|
+
af_url_session_manager_completion_group = dispatch_group_create();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
return af_url_session_manager_completion_group;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
NSString * const AFNetworkingTaskDidResumeNotification = @"com.alamofire.networking.task.resume";
|
|
73
|
+
NSString * const AFNetworkingTaskDidCompleteNotification = @"com.alamofire.networking.task.complete";
|
|
74
|
+
NSString * const AFNetworkingTaskDidSuspendNotification = @"com.alamofire.networking.task.suspend";
|
|
75
|
+
NSString * const AFURLSessionDidInvalidateNotification = @"com.alamofire.networking.session.invalidate";
|
|
76
|
+
NSString * const AFURLSessionDownloadTaskDidFailToMoveFileNotification = @"com.alamofire.networking.session.download.file-manager-error";
|
|
77
|
+
|
|
78
|
+
NSString * const AFNetworkingTaskDidCompleteSerializedResponseKey = @"com.alamofire.networking.task.complete.serializedresponse";
|
|
79
|
+
NSString * const AFNetworkingTaskDidCompleteResponseSerializerKey = @"com.alamofire.networking.task.complete.responseserializer";
|
|
80
|
+
NSString * const AFNetworkingTaskDidCompleteResponseDataKey = @"com.alamofire.networking.complete.finish.responsedata";
|
|
81
|
+
NSString * const AFNetworkingTaskDidCompleteErrorKey = @"com.alamofire.networking.task.complete.error";
|
|
82
|
+
NSString * const AFNetworkingTaskDidCompleteAssetPathKey = @"com.alamofire.networking.task.complete.assetpath";
|
|
83
|
+
|
|
84
|
+
static NSString * const AFURLSessionManagerLockName = @"com.alamofire.networking.session.manager.lock";
|
|
85
|
+
|
|
86
|
+
static NSUInteger const AFMaximumNumberOfAttemptsToRecreateBackgroundSessionUploadTask = 3;
|
|
87
|
+
|
|
88
|
+
typedef void (^AFURLSessionDidBecomeInvalidBlock)(NSURLSession *session, NSError *error);
|
|
89
|
+
typedef NSURLSessionAuthChallengeDisposition (^AFURLSessionDidReceiveAuthenticationChallengeBlock)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential);
|
|
90
|
+
|
|
91
|
+
typedef NSURLRequest * (^AFURLSessionTaskWillPerformHTTPRedirectionBlock)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request);
|
|
92
|
+
typedef NSURLSessionAuthChallengeDisposition (^AFURLSessionTaskDidReceiveAuthenticationChallengeBlock)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential);
|
|
93
|
+
typedef void (^AFURLSessionDidFinishEventsForBackgroundURLSessionBlock)(NSURLSession *session);
|
|
94
|
+
|
|
95
|
+
typedef NSInputStream * (^AFURLSessionTaskNeedNewBodyStreamBlock)(NSURLSession *session, NSURLSessionTask *task);
|
|
96
|
+
typedef void (^AFURLSessionTaskDidSendBodyDataBlock)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend);
|
|
97
|
+
typedef void (^AFURLSessionTaskDidCompleteBlock)(NSURLSession *session, NSURLSessionTask *task, NSError *error);
|
|
98
|
+
|
|
99
|
+
typedef NSURLSessionResponseDisposition (^AFURLSessionDataTaskDidReceiveResponseBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response);
|
|
100
|
+
typedef void (^AFURLSessionDataTaskDidBecomeDownloadTaskBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask);
|
|
101
|
+
typedef void (^AFURLSessionDataTaskDidReceiveDataBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data);
|
|
102
|
+
typedef NSCachedURLResponse * (^AFURLSessionDataTaskWillCacheResponseBlock)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse);
|
|
103
|
+
|
|
104
|
+
typedef NSURL * (^AFURLSessionDownloadTaskDidFinishDownloadingBlock)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location);
|
|
105
|
+
typedef void (^AFURLSessionDownloadTaskDidWriteDataBlock)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite);
|
|
106
|
+
typedef void (^AFURLSessionDownloadTaskDidResumeBlock)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes);
|
|
107
|
+
typedef void (^AFURLSessionTaskProgressBlock)(NSProgress *);
|
|
108
|
+
|
|
109
|
+
typedef void (^AFURLSessionTaskCompletionHandler)(NSURLResponse *response, id responseObject, NSError *error);
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
#pragma mark -
|
|
113
|
+
|
|
114
|
+
@interface AFURLSessionManagerTaskDelegate : NSObject <NSURLSessionTaskDelegate, NSURLSessionDataDelegate, NSURLSessionDownloadDelegate>
|
|
115
|
+
@property (nonatomic, weak) AFURLSessionManager *manager;
|
|
116
|
+
@property (nonatomic, strong) NSMutableData *mutableData;
|
|
117
|
+
@property (nonatomic, strong) NSProgress *uploadProgress;
|
|
118
|
+
@property (nonatomic, strong) NSProgress *downloadProgress;
|
|
119
|
+
@property (nonatomic, copy) NSURL *downloadFileURL;
|
|
120
|
+
@property (nonatomic, copy) AFURLSessionDownloadTaskDidFinishDownloadingBlock downloadTaskDidFinishDownloading;
|
|
121
|
+
@property (nonatomic, copy) AFURLSessionTaskProgressBlock uploadProgressBlock;
|
|
122
|
+
@property (nonatomic, copy) AFURLSessionTaskProgressBlock downloadProgressBlock;
|
|
123
|
+
@property (nonatomic, copy) AFURLSessionTaskCompletionHandler completionHandler;
|
|
124
|
+
@end
|
|
125
|
+
|
|
126
|
+
@implementation AFURLSessionManagerTaskDelegate
|
|
127
|
+
|
|
128
|
+
- (instancetype)init {
|
|
129
|
+
self = [super init];
|
|
130
|
+
if (!self) {
|
|
131
|
+
return nil;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
self.mutableData = [NSMutableData data];
|
|
135
|
+
self.uploadProgress = [[NSProgress alloc] initWithParent:nil userInfo:nil];
|
|
136
|
+
self.uploadProgress.totalUnitCount = NSURLSessionTransferSizeUnknown;
|
|
137
|
+
|
|
138
|
+
self.downloadProgress = [[NSProgress alloc] initWithParent:nil userInfo:nil];
|
|
139
|
+
self.downloadProgress.totalUnitCount = NSURLSessionTransferSizeUnknown;
|
|
140
|
+
return self;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
#pragma mark - NSProgress Tracking
|
|
144
|
+
|
|
145
|
+
- (void)setupProgressForTask:(NSURLSessionTask *)task {
|
|
146
|
+
__weak __typeof__(task) weakTask = task;
|
|
147
|
+
|
|
148
|
+
self.uploadProgress.totalUnitCount = task.countOfBytesExpectedToSend;
|
|
149
|
+
self.downloadProgress.totalUnitCount = task.countOfBytesExpectedToReceive;
|
|
150
|
+
[self.uploadProgress setCancellable:YES];
|
|
151
|
+
[self.uploadProgress setCancellationHandler:^{
|
|
152
|
+
__typeof__(weakTask) strongTask = weakTask;
|
|
153
|
+
[strongTask cancel];
|
|
154
|
+
}];
|
|
155
|
+
[self.uploadProgress setPausable:YES];
|
|
156
|
+
[self.uploadProgress setPausingHandler:^{
|
|
157
|
+
__typeof__(weakTask) strongTask = weakTask;
|
|
158
|
+
[strongTask suspend];
|
|
159
|
+
}];
|
|
160
|
+
if ([self.uploadProgress respondsToSelector:@selector(setResumingHandler:)]) {
|
|
161
|
+
[self.uploadProgress setResumingHandler:^{
|
|
162
|
+
__typeof__(weakTask) strongTask = weakTask;
|
|
163
|
+
[strongTask resume];
|
|
164
|
+
}];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
[self.downloadProgress setCancellable:YES];
|
|
168
|
+
[self.downloadProgress setCancellationHandler:^{
|
|
169
|
+
__typeof__(weakTask) strongTask = weakTask;
|
|
170
|
+
[strongTask cancel];
|
|
171
|
+
}];
|
|
172
|
+
[self.downloadProgress setPausable:YES];
|
|
173
|
+
[self.downloadProgress setPausingHandler:^{
|
|
174
|
+
__typeof__(weakTask) strongTask = weakTask;
|
|
175
|
+
[strongTask suspend];
|
|
176
|
+
}];
|
|
177
|
+
|
|
178
|
+
if ([self.downloadProgress respondsToSelector:@selector(setResumingHandler:)]) {
|
|
179
|
+
[self.downloadProgress setResumingHandler:^{
|
|
180
|
+
__typeof__(weakTask) strongTask = weakTask;
|
|
181
|
+
[strongTask resume];
|
|
182
|
+
}];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
[task addObserver:self
|
|
186
|
+
forKeyPath:NSStringFromSelector(@selector(countOfBytesReceived))
|
|
187
|
+
options:NSKeyValueObservingOptionNew
|
|
188
|
+
context:NULL];
|
|
189
|
+
[task addObserver:self
|
|
190
|
+
forKeyPath:NSStringFromSelector(@selector(countOfBytesExpectedToReceive))
|
|
191
|
+
options:NSKeyValueObservingOptionNew
|
|
192
|
+
context:NULL];
|
|
193
|
+
|
|
194
|
+
[task addObserver:self
|
|
195
|
+
forKeyPath:NSStringFromSelector(@selector(countOfBytesSent))
|
|
196
|
+
options:NSKeyValueObservingOptionNew
|
|
197
|
+
context:NULL];
|
|
198
|
+
[task addObserver:self
|
|
199
|
+
forKeyPath:NSStringFromSelector(@selector(countOfBytesExpectedToSend))
|
|
200
|
+
options:NSKeyValueObservingOptionNew
|
|
201
|
+
context:NULL];
|
|
202
|
+
|
|
203
|
+
[self.downloadProgress addObserver:self
|
|
204
|
+
forKeyPath:NSStringFromSelector(@selector(fractionCompleted))
|
|
205
|
+
options:NSKeyValueObservingOptionNew
|
|
206
|
+
context:NULL];
|
|
207
|
+
[self.uploadProgress addObserver:self
|
|
208
|
+
forKeyPath:NSStringFromSelector(@selector(fractionCompleted))
|
|
209
|
+
options:NSKeyValueObservingOptionNew
|
|
210
|
+
context:NULL];
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
- (void)cleanUpProgressForTask:(NSURLSessionTask *)task {
|
|
214
|
+
[task removeObserver:self forKeyPath:NSStringFromSelector(@selector(countOfBytesReceived))];
|
|
215
|
+
[task removeObserver:self forKeyPath:NSStringFromSelector(@selector(countOfBytesExpectedToReceive))];
|
|
216
|
+
[task removeObserver:self forKeyPath:NSStringFromSelector(@selector(countOfBytesSent))];
|
|
217
|
+
[task removeObserver:self forKeyPath:NSStringFromSelector(@selector(countOfBytesExpectedToSend))];
|
|
218
|
+
[self.downloadProgress removeObserver:self forKeyPath:NSStringFromSelector(@selector(fractionCompleted))];
|
|
219
|
+
[self.uploadProgress removeObserver:self forKeyPath:NSStringFromSelector(@selector(fractionCompleted))];
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
|
|
223
|
+
if ([object isKindOfClass:[NSURLSessionTask class]] || [object isKindOfClass:[NSURLSessionDownloadTask class]]) {
|
|
224
|
+
if ([keyPath isEqualToString:NSStringFromSelector(@selector(countOfBytesReceived))]) {
|
|
225
|
+
self.downloadProgress.completedUnitCount = [change[NSKeyValueChangeNewKey] longLongValue];
|
|
226
|
+
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(countOfBytesExpectedToReceive))]) {
|
|
227
|
+
self.downloadProgress.totalUnitCount = [change[NSKeyValueChangeNewKey] longLongValue];
|
|
228
|
+
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(countOfBytesSent))]) {
|
|
229
|
+
self.uploadProgress.completedUnitCount = [change[NSKeyValueChangeNewKey] longLongValue];
|
|
230
|
+
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(countOfBytesExpectedToSend))]) {
|
|
231
|
+
self.uploadProgress.totalUnitCount = [change[NSKeyValueChangeNewKey] longLongValue];
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
else if ([object isEqual:self.downloadProgress]) {
|
|
235
|
+
if (self.downloadProgressBlock) {
|
|
236
|
+
self.downloadProgressBlock(object);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else if ([object isEqual:self.uploadProgress]) {
|
|
240
|
+
if (self.uploadProgressBlock) {
|
|
241
|
+
self.uploadProgressBlock(object);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
#pragma mark - NSURLSessionTaskDelegate
|
|
247
|
+
|
|
248
|
+
- (void)URLSession:(__unused NSURLSession *)session
|
|
249
|
+
task:(NSURLSessionTask *)task
|
|
250
|
+
didCompleteWithError:(NSError *)error
|
|
251
|
+
{
|
|
252
|
+
__strong AFURLSessionManager *manager = self.manager;
|
|
253
|
+
|
|
254
|
+
__block id responseObject = nil;
|
|
255
|
+
|
|
256
|
+
__block NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
|
|
257
|
+
userInfo[AFNetworkingTaskDidCompleteResponseSerializerKey] = manager.responseSerializer;
|
|
258
|
+
|
|
259
|
+
//Performance Improvement from #2672
|
|
260
|
+
NSData *data = nil;
|
|
261
|
+
if (self.mutableData) {
|
|
262
|
+
data = [self.mutableData copy];
|
|
263
|
+
//We no longer need the reference, so nil it out to gain back some memory.
|
|
264
|
+
self.mutableData = nil;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (self.downloadFileURL) {
|
|
268
|
+
userInfo[AFNetworkingTaskDidCompleteAssetPathKey] = self.downloadFileURL;
|
|
269
|
+
} else if (data) {
|
|
270
|
+
userInfo[AFNetworkingTaskDidCompleteResponseDataKey] = data;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (error) {
|
|
274
|
+
userInfo[AFNetworkingTaskDidCompleteErrorKey] = error;
|
|
275
|
+
|
|
276
|
+
dispatch_group_async(manager.completionGroup ?: url_session_manager_completion_group(), manager.completionQueue ?: dispatch_get_main_queue(), ^{
|
|
277
|
+
if (self.completionHandler) {
|
|
278
|
+
self.completionHandler(task.response, responseObject, error);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
282
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidCompleteNotification object:task userInfo:userInfo];
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
} else {
|
|
286
|
+
dispatch_async(url_session_manager_processing_queue(), ^{
|
|
287
|
+
NSError *serializationError = nil;
|
|
288
|
+
responseObject = [manager.responseSerializer responseObjectForResponse:task.response data:data error:&serializationError];
|
|
289
|
+
|
|
290
|
+
if (self.downloadFileURL) {
|
|
291
|
+
responseObject = self.downloadFileURL;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
if (responseObject) {
|
|
295
|
+
userInfo[AFNetworkingTaskDidCompleteSerializedResponseKey] = responseObject;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
if (serializationError) {
|
|
299
|
+
userInfo[AFNetworkingTaskDidCompleteErrorKey] = serializationError;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
dispatch_group_async(manager.completionGroup ?: url_session_manager_completion_group(), manager.completionQueue ?: dispatch_get_main_queue(), ^{
|
|
303
|
+
if (self.completionHandler) {
|
|
304
|
+
self.completionHandler(task.response, responseObject, serializationError);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
308
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidCompleteNotification object:task userInfo:userInfo];
|
|
309
|
+
});
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
#pragma mark - NSURLSessionDataTaskDelegate
|
|
316
|
+
|
|
317
|
+
- (void)URLSession:(__unused NSURLSession *)session
|
|
318
|
+
dataTask:(__unused NSURLSessionDataTask *)dataTask
|
|
319
|
+
didReceiveData:(NSData *)data
|
|
320
|
+
{
|
|
321
|
+
[self.mutableData appendData:data];
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
#pragma mark - NSURLSessionDownloadTaskDelegate
|
|
325
|
+
|
|
326
|
+
- (void)URLSession:(NSURLSession *)session
|
|
327
|
+
downloadTask:(NSURLSessionDownloadTask *)downloadTask
|
|
328
|
+
didFinishDownloadingToURL:(NSURL *)location
|
|
329
|
+
{
|
|
330
|
+
NSError *fileManagerError = nil;
|
|
331
|
+
self.downloadFileURL = nil;
|
|
332
|
+
|
|
333
|
+
if (self.downloadTaskDidFinishDownloading) {
|
|
334
|
+
self.downloadFileURL = self.downloadTaskDidFinishDownloading(session, downloadTask, location);
|
|
335
|
+
if (self.downloadFileURL) {
|
|
336
|
+
[[NSFileManager defaultManager] moveItemAtURL:location toURL:self.downloadFileURL error:&fileManagerError];
|
|
337
|
+
|
|
338
|
+
if (fileManagerError) {
|
|
339
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFURLSessionDownloadTaskDidFailToMoveFileNotification object:downloadTask userInfo:fileManagerError.userInfo];
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
@end
|
|
346
|
+
|
|
347
|
+
#pragma mark -
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* A workaround for issues related to key-value observing the `state` of an `NSURLSessionTask`.
|
|
351
|
+
*
|
|
352
|
+
* See:
|
|
353
|
+
* - https://github.com/AFNetworking/AFNetworking/issues/1477
|
|
354
|
+
* - https://github.com/AFNetworking/AFNetworking/issues/2638
|
|
355
|
+
* - https://github.com/AFNetworking/AFNetworking/pull/2702
|
|
356
|
+
*/
|
|
357
|
+
|
|
358
|
+
static inline void af_swizzleSelector(Class theClass, SEL originalSelector, SEL swizzledSelector) {
|
|
359
|
+
Method originalMethod = class_getInstanceMethod(theClass, originalSelector);
|
|
360
|
+
Method swizzledMethod = class_getInstanceMethod(theClass, swizzledSelector);
|
|
361
|
+
method_exchangeImplementations(originalMethod, swizzledMethod);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
static inline BOOL af_addMethod(Class theClass, SEL selector, Method method) {
|
|
365
|
+
return class_addMethod(theClass, selector, method_getImplementation(method), method_getTypeEncoding(method));
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
static NSString * const AFNSURLSessionTaskDidResumeNotification = @"com.alamofire.networking.nsurlsessiontask.resume";
|
|
369
|
+
static NSString * const AFNSURLSessionTaskDidSuspendNotification = @"com.alamofire.networking.nsurlsessiontask.suspend";
|
|
370
|
+
|
|
371
|
+
@interface _AFURLSessionTaskSwizzling : NSObject
|
|
372
|
+
|
|
373
|
+
@end
|
|
374
|
+
|
|
375
|
+
@implementation _AFURLSessionTaskSwizzling
|
|
376
|
+
|
|
377
|
+
+ (void)load {
|
|
378
|
+
/**
|
|
379
|
+
WARNING: Trouble Ahead
|
|
380
|
+
https://github.com/AFNetworking/AFNetworking/pull/2702
|
|
381
|
+
*/
|
|
382
|
+
|
|
383
|
+
if (NSClassFromString(@"NSURLSessionTask")) {
|
|
384
|
+
/**
|
|
385
|
+
iOS 7 and iOS 8 differ in NSURLSessionTask implementation, which makes the next bit of code a bit tricky.
|
|
386
|
+
Many Unit Tests have been built to validate as much of this behavior has possible.
|
|
387
|
+
Here is what we know:
|
|
388
|
+
- NSURLSessionTasks are implemented with class clusters, meaning the class you request from the API isn't actually the type of class you will get back.
|
|
389
|
+
- Simply referencing `[NSURLSessionTask class]` will not work. You need to ask an `NSURLSession` to actually create an object, and grab the class from there.
|
|
390
|
+
- On iOS 7, `localDataTask` is a `__NSCFLocalDataTask`, which inherits from `__NSCFLocalSessionTask`, which inherits from `__NSCFURLSessionTask`.
|
|
391
|
+
- On iOS 8, `localDataTask` is a `__NSCFLocalDataTask`, which inherits from `__NSCFLocalSessionTask`, which inherits from `NSURLSessionTask`.
|
|
392
|
+
- On iOS 7, `__NSCFLocalSessionTask` and `__NSCFURLSessionTask` are the only two classes that have their own implementations of `resume` and `suspend`, and `__NSCFLocalSessionTask` DOES NOT CALL SUPER. This means both classes need to be swizzled.
|
|
393
|
+
- On iOS 8, `NSURLSessionTask` is the only class that implements `resume` and `suspend`. This means this is the only class that needs to be swizzled.
|
|
394
|
+
- Because `NSURLSessionTask` is not involved in the class hierarchy for every version of iOS, its easier to add the swizzled methods to a dummy class and manage them there.
|
|
395
|
+
|
|
396
|
+
Some Assumptions:
|
|
397
|
+
- No implementations of `resume` or `suspend` call super. If this were to change in a future version of iOS, we'd need to handle it.
|
|
398
|
+
- No background task classes override `resume` or `suspend`
|
|
399
|
+
|
|
400
|
+
The current solution:
|
|
401
|
+
1) Grab an instance of `__NSCFLocalDataTask` by asking an instance of `NSURLSession` for a data task.
|
|
402
|
+
2) Grab a pointer to the original implementation of `af_resume`
|
|
403
|
+
3) Check to see if the current class has an implementation of resume. If so, continue to step 4.
|
|
404
|
+
4) Grab the super class of the current class.
|
|
405
|
+
5) Grab a pointer for the current class to the current implementation of `resume`.
|
|
406
|
+
6) Grab a pointer for the super class to the current implementation of `resume`.
|
|
407
|
+
7) If the current class implementation of `resume` is not equal to the super class implementation of `resume` AND the current implementation of `resume` is not equal to the original implementation of `af_resume`, THEN swizzle the methods
|
|
408
|
+
8) Set the current class to the super class, and repeat steps 3-8
|
|
409
|
+
*/
|
|
410
|
+
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration];
|
|
411
|
+
NSURLSession * session = [NSURLSession sessionWithConfiguration:configuration];
|
|
412
|
+
#pragma GCC diagnostic push
|
|
413
|
+
#pragma GCC diagnostic ignored "-Wnonnull"
|
|
414
|
+
NSURLSessionDataTask *localDataTask = [session dataTaskWithURL:nil];
|
|
415
|
+
#pragma clang diagnostic pop
|
|
416
|
+
IMP originalAFResumeIMP = method_getImplementation(class_getInstanceMethod([self class], @selector(af_resume)));
|
|
417
|
+
Class currentClass = [localDataTask class];
|
|
418
|
+
|
|
419
|
+
while (class_getInstanceMethod(currentClass, @selector(resume))) {
|
|
420
|
+
Class superClass = [currentClass superclass];
|
|
421
|
+
IMP classResumeIMP = method_getImplementation(class_getInstanceMethod(currentClass, @selector(resume)));
|
|
422
|
+
IMP superclassResumeIMP = method_getImplementation(class_getInstanceMethod(superClass, @selector(resume)));
|
|
423
|
+
if (classResumeIMP != superclassResumeIMP &&
|
|
424
|
+
originalAFResumeIMP != classResumeIMP) {
|
|
425
|
+
[self swizzleResumeAndSuspendMethodForClass:currentClass];
|
|
426
|
+
}
|
|
427
|
+
currentClass = [currentClass superclass];
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
[localDataTask cancel];
|
|
431
|
+
[session finishTasksAndInvalidate];
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
+ (void)swizzleResumeAndSuspendMethodForClass:(Class)theClass {
|
|
436
|
+
Method afResumeMethod = class_getInstanceMethod(self, @selector(af_resume));
|
|
437
|
+
Method afSuspendMethod = class_getInstanceMethod(self, @selector(af_suspend));
|
|
438
|
+
|
|
439
|
+
if (af_addMethod(theClass, @selector(af_resume), afResumeMethod)) {
|
|
440
|
+
af_swizzleSelector(theClass, @selector(resume), @selector(af_resume));
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
if (af_addMethod(theClass, @selector(af_suspend), afSuspendMethod)) {
|
|
444
|
+
af_swizzleSelector(theClass, @selector(suspend), @selector(af_suspend));
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
- (NSURLSessionTaskState)state {
|
|
449
|
+
NSAssert(NO, @"State method should never be called in the actual dummy class");
|
|
450
|
+
return NSURLSessionTaskStateCanceling;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
- (void)af_resume {
|
|
454
|
+
NSAssert([self respondsToSelector:@selector(state)], @"Does not respond to state");
|
|
455
|
+
NSURLSessionTaskState state = [self state];
|
|
456
|
+
[self af_resume];
|
|
457
|
+
|
|
458
|
+
if (state != NSURLSessionTaskStateRunning) {
|
|
459
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFNSURLSessionTaskDidResumeNotification object:self];
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
- (void)af_suspend {
|
|
464
|
+
NSAssert([self respondsToSelector:@selector(state)], @"Does not respond to state");
|
|
465
|
+
NSURLSessionTaskState state = [self state];
|
|
466
|
+
[self af_suspend];
|
|
467
|
+
|
|
468
|
+
if (state != NSURLSessionTaskStateSuspended) {
|
|
469
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFNSURLSessionTaskDidSuspendNotification object:self];
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
@end
|
|
473
|
+
|
|
474
|
+
#pragma mark -
|
|
475
|
+
|
|
476
|
+
@interface AFURLSessionManager ()
|
|
477
|
+
@property (readwrite, nonatomic, strong) NSURLSessionConfiguration *sessionConfiguration;
|
|
478
|
+
@property (readwrite, nonatomic, strong) NSOperationQueue *operationQueue;
|
|
479
|
+
@property (readwrite, nonatomic, strong) NSURLSession *session;
|
|
480
|
+
@property (readwrite, nonatomic, strong) NSMutableDictionary *mutableTaskDelegatesKeyedByTaskIdentifier;
|
|
481
|
+
@property (readonly, nonatomic, copy) NSString *taskDescriptionForSessionTasks;
|
|
482
|
+
@property (readwrite, nonatomic, strong) NSLock *lock;
|
|
483
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDidBecomeInvalidBlock sessionDidBecomeInvalid;
|
|
484
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDidReceiveAuthenticationChallengeBlock sessionDidReceiveAuthenticationChallenge;
|
|
485
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDidFinishEventsForBackgroundURLSessionBlock didFinishEventsForBackgroundURLSession;
|
|
486
|
+
@property (readwrite, nonatomic, copy) AFURLSessionTaskWillPerformHTTPRedirectionBlock taskWillPerformHTTPRedirection;
|
|
487
|
+
@property (readwrite, nonatomic, copy) AFURLSessionTaskDidReceiveAuthenticationChallengeBlock taskDidReceiveAuthenticationChallenge;
|
|
488
|
+
@property (readwrite, nonatomic, copy) AFURLSessionTaskNeedNewBodyStreamBlock taskNeedNewBodyStream;
|
|
489
|
+
@property (readwrite, nonatomic, copy) AFURLSessionTaskDidSendBodyDataBlock taskDidSendBodyData;
|
|
490
|
+
@property (readwrite, nonatomic, copy) AFURLSessionTaskDidCompleteBlock taskDidComplete;
|
|
491
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDataTaskDidReceiveResponseBlock dataTaskDidReceiveResponse;
|
|
492
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDataTaskDidBecomeDownloadTaskBlock dataTaskDidBecomeDownloadTask;
|
|
493
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDataTaskDidReceiveDataBlock dataTaskDidReceiveData;
|
|
494
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDataTaskWillCacheResponseBlock dataTaskWillCacheResponse;
|
|
495
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDownloadTaskDidFinishDownloadingBlock downloadTaskDidFinishDownloading;
|
|
496
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDownloadTaskDidWriteDataBlock downloadTaskDidWriteData;
|
|
497
|
+
@property (readwrite, nonatomic, copy) AFURLSessionDownloadTaskDidResumeBlock downloadTaskDidResume;
|
|
498
|
+
@end
|
|
499
|
+
|
|
500
|
+
@implementation AFURLSessionManager
|
|
501
|
+
|
|
502
|
+
- (instancetype)init {
|
|
503
|
+
return [self initWithSessionConfiguration:nil];
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
- (instancetype)initWithSessionConfiguration:(NSURLSessionConfiguration *)configuration {
|
|
507
|
+
self = [super init];
|
|
508
|
+
if (!self) {
|
|
509
|
+
return nil;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
if (!configuration) {
|
|
513
|
+
configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
self.sessionConfiguration = configuration;
|
|
517
|
+
|
|
518
|
+
self.operationQueue = [[NSOperationQueue alloc] init];
|
|
519
|
+
self.operationQueue.maxConcurrentOperationCount = 1;
|
|
520
|
+
|
|
521
|
+
self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue];
|
|
522
|
+
|
|
523
|
+
self.responseSerializer = [AFJSONResponseSerializer serializer];
|
|
524
|
+
|
|
525
|
+
self.securityPolicy = [AFSecurityPolicy defaultPolicy];
|
|
526
|
+
|
|
527
|
+
#if !TARGET_OS_WATCH
|
|
528
|
+
self.reachabilityManager = [AFNetworkReachabilityManager sharedManager];
|
|
529
|
+
#endif
|
|
530
|
+
|
|
531
|
+
self.mutableTaskDelegatesKeyedByTaskIdentifier = [[NSMutableDictionary alloc] init];
|
|
532
|
+
|
|
533
|
+
self.lock = [[NSLock alloc] init];
|
|
534
|
+
self.lock.name = AFURLSessionManagerLockName;
|
|
535
|
+
|
|
536
|
+
[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {
|
|
537
|
+
for (NSURLSessionDataTask *task in dataTasks) {
|
|
538
|
+
[self addDelegateForDataTask:task uploadProgress:nil downloadProgress:nil completionHandler:nil];
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
for (NSURLSessionUploadTask *uploadTask in uploadTasks) {
|
|
542
|
+
[self addDelegateForUploadTask:uploadTask progress:nil completionHandler:nil];
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
for (NSURLSessionDownloadTask *downloadTask in downloadTasks) {
|
|
546
|
+
[self addDelegateForDownloadTask:downloadTask progress:nil destination:nil completionHandler:nil];
|
|
547
|
+
}
|
|
548
|
+
}];
|
|
549
|
+
|
|
550
|
+
return self;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
- (void)dealloc {
|
|
554
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
#pragma mark -
|
|
558
|
+
|
|
559
|
+
- (NSString *)taskDescriptionForSessionTasks {
|
|
560
|
+
return [NSString stringWithFormat:@"%p", self];
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
- (void)taskDidResume:(NSNotification *)notification {
|
|
564
|
+
NSURLSessionTask *task = notification.object;
|
|
565
|
+
if ([task respondsToSelector:@selector(taskDescription)]) {
|
|
566
|
+
if ([task.taskDescription isEqualToString:self.taskDescriptionForSessionTasks]) {
|
|
567
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
568
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidResumeNotification object:task];
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
- (void)taskDidSuspend:(NSNotification *)notification {
|
|
575
|
+
NSURLSessionTask *task = notification.object;
|
|
576
|
+
if ([task respondsToSelector:@selector(taskDescription)]) {
|
|
577
|
+
if ([task.taskDescription isEqualToString:self.taskDescriptionForSessionTasks]) {
|
|
578
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
579
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFNetworkingTaskDidSuspendNotification object:task];
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
#pragma mark -
|
|
586
|
+
|
|
587
|
+
- (AFURLSessionManagerTaskDelegate *)delegateForTask:(NSURLSessionTask *)task {
|
|
588
|
+
NSParameterAssert(task);
|
|
589
|
+
|
|
590
|
+
AFURLSessionManagerTaskDelegate *delegate = nil;
|
|
591
|
+
[self.lock lock];
|
|
592
|
+
delegate = self.mutableTaskDelegatesKeyedByTaskIdentifier[@(task.taskIdentifier)];
|
|
593
|
+
[self.lock unlock];
|
|
594
|
+
|
|
595
|
+
return delegate;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
- (void)setDelegate:(AFURLSessionManagerTaskDelegate *)delegate
|
|
599
|
+
forTask:(NSURLSessionTask *)task
|
|
600
|
+
{
|
|
601
|
+
NSParameterAssert(task);
|
|
602
|
+
NSParameterAssert(delegate);
|
|
603
|
+
|
|
604
|
+
[self.lock lock];
|
|
605
|
+
self.mutableTaskDelegatesKeyedByTaskIdentifier[@(task.taskIdentifier)] = delegate;
|
|
606
|
+
[delegate setupProgressForTask:task];
|
|
607
|
+
[self addNotificationObserverForTask:task];
|
|
608
|
+
[self.lock unlock];
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
- (void)addDelegateForDataTask:(NSURLSessionDataTask *)dataTask
|
|
612
|
+
uploadProgress:(nullable void (^)(NSProgress *uploadProgress)) uploadProgressBlock
|
|
613
|
+
downloadProgress:(nullable void (^)(NSProgress *downloadProgress)) downloadProgressBlock
|
|
614
|
+
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
|
|
615
|
+
{
|
|
616
|
+
AFURLSessionManagerTaskDelegate *delegate = [[AFURLSessionManagerTaskDelegate alloc] init];
|
|
617
|
+
delegate.manager = self;
|
|
618
|
+
delegate.completionHandler = completionHandler;
|
|
619
|
+
|
|
620
|
+
dataTask.taskDescription = self.taskDescriptionForSessionTasks;
|
|
621
|
+
[self setDelegate:delegate forTask:dataTask];
|
|
622
|
+
|
|
623
|
+
delegate.uploadProgressBlock = uploadProgressBlock;
|
|
624
|
+
delegate.downloadProgressBlock = downloadProgressBlock;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
- (void)addDelegateForUploadTask:(NSURLSessionUploadTask *)uploadTask
|
|
628
|
+
progress:(void (^)(NSProgress *uploadProgress)) uploadProgressBlock
|
|
629
|
+
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
|
|
630
|
+
{
|
|
631
|
+
AFURLSessionManagerTaskDelegate *delegate = [[AFURLSessionManagerTaskDelegate alloc] init];
|
|
632
|
+
delegate.manager = self;
|
|
633
|
+
delegate.completionHandler = completionHandler;
|
|
634
|
+
|
|
635
|
+
uploadTask.taskDescription = self.taskDescriptionForSessionTasks;
|
|
636
|
+
|
|
637
|
+
[self setDelegate:delegate forTask:uploadTask];
|
|
638
|
+
|
|
639
|
+
delegate.uploadProgressBlock = uploadProgressBlock;
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
- (void)addDelegateForDownloadTask:(NSURLSessionDownloadTask *)downloadTask
|
|
643
|
+
progress:(void (^)(NSProgress *downloadProgress)) downloadProgressBlock
|
|
644
|
+
destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination
|
|
645
|
+
completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler
|
|
646
|
+
{
|
|
647
|
+
AFURLSessionManagerTaskDelegate *delegate = [[AFURLSessionManagerTaskDelegate alloc] init];
|
|
648
|
+
delegate.manager = self;
|
|
649
|
+
delegate.completionHandler = completionHandler;
|
|
650
|
+
|
|
651
|
+
if (destination) {
|
|
652
|
+
delegate.downloadTaskDidFinishDownloading = ^NSURL * (NSURLSession * __unused session, NSURLSessionDownloadTask *task, NSURL *location) {
|
|
653
|
+
return destination(location, task.response);
|
|
654
|
+
};
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
downloadTask.taskDescription = self.taskDescriptionForSessionTasks;
|
|
658
|
+
|
|
659
|
+
[self setDelegate:delegate forTask:downloadTask];
|
|
660
|
+
|
|
661
|
+
delegate.downloadProgressBlock = downloadProgressBlock;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
- (void)removeDelegateForTask:(NSURLSessionTask *)task {
|
|
665
|
+
NSParameterAssert(task);
|
|
666
|
+
|
|
667
|
+
AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:task];
|
|
668
|
+
[self.lock lock];
|
|
669
|
+
[delegate cleanUpProgressForTask:task];
|
|
670
|
+
[self removeNotificationObserverForTask:task];
|
|
671
|
+
[self.mutableTaskDelegatesKeyedByTaskIdentifier removeObjectForKey:@(task.taskIdentifier)];
|
|
672
|
+
[self.lock unlock];
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
#pragma mark -
|
|
676
|
+
|
|
677
|
+
- (NSArray *)tasksForKeyPath:(NSString *)keyPath {
|
|
678
|
+
__block NSArray *tasks = nil;
|
|
679
|
+
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
|
|
680
|
+
[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {
|
|
681
|
+
if ([keyPath isEqualToString:NSStringFromSelector(@selector(dataTasks))]) {
|
|
682
|
+
tasks = dataTasks;
|
|
683
|
+
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(uploadTasks))]) {
|
|
684
|
+
tasks = uploadTasks;
|
|
685
|
+
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(downloadTasks))]) {
|
|
686
|
+
tasks = downloadTasks;
|
|
687
|
+
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(tasks))]) {
|
|
688
|
+
tasks = [@[dataTasks, uploadTasks, downloadTasks] valueForKeyPath:@"@unionOfArrays.self"];
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
dispatch_semaphore_signal(semaphore);
|
|
692
|
+
}];
|
|
693
|
+
|
|
694
|
+
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
|
|
695
|
+
|
|
696
|
+
return tasks;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
- (NSArray *)tasks {
|
|
700
|
+
return [self tasksForKeyPath:NSStringFromSelector(_cmd)];
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
- (NSArray *)dataTasks {
|
|
704
|
+
return [self tasksForKeyPath:NSStringFromSelector(_cmd)];
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
- (NSArray *)uploadTasks {
|
|
708
|
+
return [self tasksForKeyPath:NSStringFromSelector(_cmd)];
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
- (NSArray *)downloadTasks {
|
|
712
|
+
return [self tasksForKeyPath:NSStringFromSelector(_cmd)];
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
#pragma mark -
|
|
716
|
+
|
|
717
|
+
- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks {
|
|
718
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
719
|
+
if (cancelPendingTasks) {
|
|
720
|
+
[self.session invalidateAndCancel];
|
|
721
|
+
} else {
|
|
722
|
+
[self.session finishTasksAndInvalidate];
|
|
723
|
+
}
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
#pragma mark -
|
|
728
|
+
|
|
729
|
+
- (void)setResponseSerializer:(id <AFURLResponseSerialization>)responseSerializer {
|
|
730
|
+
NSParameterAssert(responseSerializer);
|
|
731
|
+
|
|
732
|
+
_responseSerializer = responseSerializer;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
#pragma mark -
|
|
736
|
+
- (void)addNotificationObserverForTask:(NSURLSessionTask *)task {
|
|
737
|
+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(taskDidResume:) name:AFNSURLSessionTaskDidResumeNotification object:task];
|
|
738
|
+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(taskDidSuspend:) name:AFNSURLSessionTaskDidSuspendNotification object:task];
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
- (void)removeNotificationObserverForTask:(NSURLSessionTask *)task {
|
|
742
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self name:AFNSURLSessionTaskDidSuspendNotification object:task];
|
|
743
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self name:AFNSURLSessionTaskDidResumeNotification object:task];
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
#pragma mark -
|
|
747
|
+
|
|
748
|
+
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
|
|
749
|
+
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
|
|
750
|
+
{
|
|
751
|
+
return [self dataTaskWithRequest:request uploadProgress:nil downloadProgress:nil completionHandler:completionHandler];
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
|
|
755
|
+
uploadProgress:(nullable void (^)(NSProgress *uploadProgress)) uploadProgressBlock
|
|
756
|
+
downloadProgress:(nullable void (^)(NSProgress *downloadProgress)) downloadProgressBlock
|
|
757
|
+
completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject, NSError * _Nullable error))completionHandler {
|
|
758
|
+
|
|
759
|
+
__block NSURLSessionDataTask *dataTask = nil;
|
|
760
|
+
url_session_manager_create_task_safely(^{
|
|
761
|
+
dataTask = [self.session dataTaskWithRequest:request];
|
|
762
|
+
});
|
|
763
|
+
|
|
764
|
+
[self addDelegateForDataTask:dataTask uploadProgress:uploadProgressBlock downloadProgress:downloadProgressBlock completionHandler:completionHandler];
|
|
765
|
+
|
|
766
|
+
return dataTask;
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
#pragma mark -
|
|
770
|
+
|
|
771
|
+
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request
|
|
772
|
+
fromFile:(NSURL *)fileURL
|
|
773
|
+
progress:(void (^)(NSProgress *uploadProgress)) uploadProgressBlock
|
|
774
|
+
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
|
|
775
|
+
{
|
|
776
|
+
__block NSURLSessionUploadTask *uploadTask = nil;
|
|
777
|
+
url_session_manager_create_task_safely(^{
|
|
778
|
+
uploadTask = [self.session uploadTaskWithRequest:request fromFile:fileURL];
|
|
779
|
+
});
|
|
780
|
+
|
|
781
|
+
if (!uploadTask && self.attemptsToRecreateUploadTasksForBackgroundSessions && self.session.configuration.identifier) {
|
|
782
|
+
for (NSUInteger attempts = 0; !uploadTask && attempts < AFMaximumNumberOfAttemptsToRecreateBackgroundSessionUploadTask; attempts++) {
|
|
783
|
+
uploadTask = [self.session uploadTaskWithRequest:request fromFile:fileURL];
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
[self addDelegateForUploadTask:uploadTask progress:uploadProgressBlock completionHandler:completionHandler];
|
|
788
|
+
|
|
789
|
+
return uploadTask;
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request
|
|
793
|
+
fromData:(NSData *)bodyData
|
|
794
|
+
progress:(void (^)(NSProgress *uploadProgress)) uploadProgressBlock
|
|
795
|
+
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
|
|
796
|
+
{
|
|
797
|
+
__block NSURLSessionUploadTask *uploadTask = nil;
|
|
798
|
+
url_session_manager_create_task_safely(^{
|
|
799
|
+
uploadTask = [self.session uploadTaskWithRequest:request fromData:bodyData];
|
|
800
|
+
});
|
|
801
|
+
|
|
802
|
+
[self addDelegateForUploadTask:uploadTask progress:uploadProgressBlock completionHandler:completionHandler];
|
|
803
|
+
|
|
804
|
+
return uploadTask;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request
|
|
808
|
+
progress:(void (^)(NSProgress *uploadProgress)) uploadProgressBlock
|
|
809
|
+
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
|
|
810
|
+
{
|
|
811
|
+
__block NSURLSessionUploadTask *uploadTask = nil;
|
|
812
|
+
url_session_manager_create_task_safely(^{
|
|
813
|
+
uploadTask = [self.session uploadTaskWithStreamedRequest:request];
|
|
814
|
+
});
|
|
815
|
+
|
|
816
|
+
[self addDelegateForUploadTask:uploadTask progress:uploadProgressBlock completionHandler:completionHandler];
|
|
817
|
+
|
|
818
|
+
return uploadTask;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
#pragma mark -
|
|
822
|
+
|
|
823
|
+
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request
|
|
824
|
+
progress:(void (^)(NSProgress *downloadProgress)) downloadProgressBlock
|
|
825
|
+
destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination
|
|
826
|
+
completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler
|
|
827
|
+
{
|
|
828
|
+
__block NSURLSessionDownloadTask *downloadTask = nil;
|
|
829
|
+
url_session_manager_create_task_safely(^{
|
|
830
|
+
downloadTask = [self.session downloadTaskWithRequest:request];
|
|
831
|
+
});
|
|
832
|
+
|
|
833
|
+
[self addDelegateForDownloadTask:downloadTask progress:downloadProgressBlock destination:destination completionHandler:completionHandler];
|
|
834
|
+
|
|
835
|
+
return downloadTask;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData
|
|
839
|
+
progress:(void (^)(NSProgress *downloadProgress)) downloadProgressBlock
|
|
840
|
+
destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination
|
|
841
|
+
completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler
|
|
842
|
+
{
|
|
843
|
+
__block NSURLSessionDownloadTask *downloadTask = nil;
|
|
844
|
+
url_session_manager_create_task_safely(^{
|
|
845
|
+
downloadTask = [self.session downloadTaskWithResumeData:resumeData];
|
|
846
|
+
});
|
|
847
|
+
|
|
848
|
+
[self addDelegateForDownloadTask:downloadTask progress:downloadProgressBlock destination:destination completionHandler:completionHandler];
|
|
849
|
+
|
|
850
|
+
return downloadTask;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
#pragma mark -
|
|
854
|
+
- (NSProgress *)uploadProgressForTask:(NSURLSessionTask *)task {
|
|
855
|
+
return [[self delegateForTask:task] uploadProgress];
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
- (NSProgress *)downloadProgressForTask:(NSURLSessionTask *)task {
|
|
859
|
+
return [[self delegateForTask:task] downloadProgress];
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
#pragma mark -
|
|
863
|
+
|
|
864
|
+
- (void)setSessionDidBecomeInvalidBlock:(void (^)(NSURLSession *session, NSError *error))block {
|
|
865
|
+
self.sessionDidBecomeInvalid = block;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
- (void)setSessionDidReceiveAuthenticationChallengeBlock:(NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential))block {
|
|
869
|
+
self.sessionDidReceiveAuthenticationChallenge = block;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
- (void)setDidFinishEventsForBackgroundURLSessionBlock:(void (^)(NSURLSession *session))block {
|
|
873
|
+
self.didFinishEventsForBackgroundURLSession = block;
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
#pragma mark -
|
|
877
|
+
|
|
878
|
+
- (void)setTaskNeedNewBodyStreamBlock:(NSInputStream * (^)(NSURLSession *session, NSURLSessionTask *task))block {
|
|
879
|
+
self.taskNeedNewBodyStream = block;
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
- (void)setTaskWillPerformHTTPRedirectionBlock:(NSURLRequest * (^)(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request))block {
|
|
883
|
+
self.taskWillPerformHTTPRedirection = block;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
- (void)setTaskDidReceiveAuthenticationChallengeBlock:(NSURLSessionAuthChallengeDisposition (^)(NSURLSession *session, NSURLSessionTask *task, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential))block {
|
|
887
|
+
self.taskDidReceiveAuthenticationChallenge = block;
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
- (void)setTaskDidSendBodyDataBlock:(void (^)(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend))block {
|
|
891
|
+
self.taskDidSendBodyData = block;
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
- (void)setTaskDidCompleteBlock:(void (^)(NSURLSession *session, NSURLSessionTask *task, NSError *error))block {
|
|
895
|
+
self.taskDidComplete = block;
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
#pragma mark -
|
|
899
|
+
|
|
900
|
+
- (void)setDataTaskDidReceiveResponseBlock:(NSURLSessionResponseDisposition (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLResponse *response))block {
|
|
901
|
+
self.dataTaskDidReceiveResponse = block;
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
- (void)setDataTaskDidBecomeDownloadTaskBlock:(void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSURLSessionDownloadTask *downloadTask))block {
|
|
905
|
+
self.dataTaskDidBecomeDownloadTask = block;
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
- (void)setDataTaskDidReceiveDataBlock:(void (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data))block {
|
|
909
|
+
self.dataTaskDidReceiveData = block;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
- (void)setDataTaskWillCacheResponseBlock:(NSCachedURLResponse * (^)(NSURLSession *session, NSURLSessionDataTask *dataTask, NSCachedURLResponse *proposedResponse))block {
|
|
913
|
+
self.dataTaskWillCacheResponse = block;
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
#pragma mark -
|
|
917
|
+
|
|
918
|
+
- (void)setDownloadTaskDidFinishDownloadingBlock:(NSURL * (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location))block {
|
|
919
|
+
self.downloadTaskDidFinishDownloading = block;
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
- (void)setDownloadTaskDidWriteDataBlock:(void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite))block {
|
|
923
|
+
self.downloadTaskDidWriteData = block;
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
- (void)setDownloadTaskDidResumeBlock:(void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t fileOffset, int64_t expectedTotalBytes))block {
|
|
927
|
+
self.downloadTaskDidResume = block;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
#pragma mark - NSObject
|
|
931
|
+
|
|
932
|
+
- (NSString *)description {
|
|
933
|
+
return [NSString stringWithFormat:@"<%@: %p, session: %@, operationQueue: %@>", NSStringFromClass([self class]), self, self.session, self.operationQueue];
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
- (BOOL)respondsToSelector:(SEL)selector {
|
|
937
|
+
if (selector == @selector(URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:)) {
|
|
938
|
+
return self.taskWillPerformHTTPRedirection != nil;
|
|
939
|
+
} else if (selector == @selector(URLSession:dataTask:didReceiveResponse:completionHandler:)) {
|
|
940
|
+
return self.dataTaskDidReceiveResponse != nil;
|
|
941
|
+
} else if (selector == @selector(URLSession:dataTask:willCacheResponse:completionHandler:)) {
|
|
942
|
+
return self.dataTaskWillCacheResponse != nil;
|
|
943
|
+
} else if (selector == @selector(URLSessionDidFinishEventsForBackgroundURLSession:)) {
|
|
944
|
+
return self.didFinishEventsForBackgroundURLSession != nil;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
return [[self class] instancesRespondToSelector:selector];
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
#pragma mark - NSURLSessionDelegate
|
|
951
|
+
|
|
952
|
+
- (void)URLSession:(NSURLSession *)session
|
|
953
|
+
didBecomeInvalidWithError:(NSError *)error
|
|
954
|
+
{
|
|
955
|
+
if (self.sessionDidBecomeInvalid) {
|
|
956
|
+
self.sessionDidBecomeInvalid(session, error);
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFURLSessionDidInvalidateNotification object:session];
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
- (void)URLSession:(NSURLSession *)session
|
|
963
|
+
didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
|
|
964
|
+
completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler
|
|
965
|
+
{
|
|
966
|
+
NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengePerformDefaultHandling;
|
|
967
|
+
__block NSURLCredential *credential = nil;
|
|
968
|
+
|
|
969
|
+
if (self.sessionDidReceiveAuthenticationChallenge) {
|
|
970
|
+
disposition = self.sessionDidReceiveAuthenticationChallenge(session, challenge, &credential);
|
|
971
|
+
} else {
|
|
972
|
+
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
|
|
973
|
+
if ([self.securityPolicy evaluateServerTrust:challenge.protectionSpace.serverTrust forDomain:challenge.protectionSpace.host]) {
|
|
974
|
+
credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
|
975
|
+
if (credential) {
|
|
976
|
+
disposition = NSURLSessionAuthChallengeUseCredential;
|
|
977
|
+
} else {
|
|
978
|
+
disposition = NSURLSessionAuthChallengePerformDefaultHandling;
|
|
979
|
+
}
|
|
980
|
+
} else {
|
|
981
|
+
disposition = NSURLSessionAuthChallengeRejectProtectionSpace;
|
|
982
|
+
}
|
|
983
|
+
} else {
|
|
984
|
+
disposition = NSURLSessionAuthChallengePerformDefaultHandling;
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
if (completionHandler) {
|
|
989
|
+
completionHandler(disposition, credential);
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
#pragma mark - NSURLSessionTaskDelegate
|
|
994
|
+
|
|
995
|
+
- (void)URLSession:(NSURLSession *)session
|
|
996
|
+
task:(NSURLSessionTask *)task
|
|
997
|
+
willPerformHTTPRedirection:(NSHTTPURLResponse *)response
|
|
998
|
+
newRequest:(NSURLRequest *)request
|
|
999
|
+
completionHandler:(void (^)(NSURLRequest *))completionHandler
|
|
1000
|
+
{
|
|
1001
|
+
NSURLRequest *redirectRequest = request;
|
|
1002
|
+
|
|
1003
|
+
if (self.taskWillPerformHTTPRedirection) {
|
|
1004
|
+
redirectRequest = self.taskWillPerformHTTPRedirection(session, task, response, request);
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
if (completionHandler) {
|
|
1008
|
+
completionHandler(redirectRequest);
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1013
|
+
task:(NSURLSessionTask *)task
|
|
1014
|
+
didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
|
|
1015
|
+
completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler
|
|
1016
|
+
{
|
|
1017
|
+
NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengePerformDefaultHandling;
|
|
1018
|
+
__block NSURLCredential *credential = nil;
|
|
1019
|
+
|
|
1020
|
+
if (self.taskDidReceiveAuthenticationChallenge) {
|
|
1021
|
+
disposition = self.taskDidReceiveAuthenticationChallenge(session, task, challenge, &credential);
|
|
1022
|
+
} else {
|
|
1023
|
+
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
|
|
1024
|
+
if ([self.securityPolicy evaluateServerTrust:challenge.protectionSpace.serverTrust forDomain:challenge.protectionSpace.host]) {
|
|
1025
|
+
disposition = NSURLSessionAuthChallengeUseCredential;
|
|
1026
|
+
credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
|
1027
|
+
} else {
|
|
1028
|
+
disposition = NSURLSessionAuthChallengeRejectProtectionSpace;
|
|
1029
|
+
}
|
|
1030
|
+
} else {
|
|
1031
|
+
disposition = NSURLSessionAuthChallengePerformDefaultHandling;
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
if (completionHandler) {
|
|
1036
|
+
completionHandler(disposition, credential);
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1041
|
+
task:(NSURLSessionTask *)task
|
|
1042
|
+
needNewBodyStream:(void (^)(NSInputStream *bodyStream))completionHandler
|
|
1043
|
+
{
|
|
1044
|
+
NSInputStream *inputStream = nil;
|
|
1045
|
+
|
|
1046
|
+
if (self.taskNeedNewBodyStream) {
|
|
1047
|
+
inputStream = self.taskNeedNewBodyStream(session, task);
|
|
1048
|
+
} else if (task.originalRequest.HTTPBodyStream && [task.originalRequest.HTTPBodyStream conformsToProtocol:@protocol(NSCopying)]) {
|
|
1049
|
+
inputStream = [task.originalRequest.HTTPBodyStream copy];
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
if (completionHandler) {
|
|
1053
|
+
completionHandler(inputStream);
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1058
|
+
task:(NSURLSessionTask *)task
|
|
1059
|
+
didSendBodyData:(int64_t)bytesSent
|
|
1060
|
+
totalBytesSent:(int64_t)totalBytesSent
|
|
1061
|
+
totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend
|
|
1062
|
+
{
|
|
1063
|
+
|
|
1064
|
+
int64_t totalUnitCount = totalBytesExpectedToSend;
|
|
1065
|
+
if(totalUnitCount == NSURLSessionTransferSizeUnknown) {
|
|
1066
|
+
NSString *contentLength = [task.originalRequest valueForHTTPHeaderField:@"Content-Length"];
|
|
1067
|
+
if(contentLength) {
|
|
1068
|
+
totalUnitCount = (int64_t) [contentLength longLongValue];
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
if (self.taskDidSendBodyData) {
|
|
1073
|
+
self.taskDidSendBodyData(session, task, bytesSent, totalBytesSent, totalUnitCount);
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1078
|
+
task:(NSURLSessionTask *)task
|
|
1079
|
+
didCompleteWithError:(NSError *)error
|
|
1080
|
+
{
|
|
1081
|
+
AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:task];
|
|
1082
|
+
|
|
1083
|
+
// delegate may be nil when completing a task in the background
|
|
1084
|
+
if (delegate) {
|
|
1085
|
+
[delegate URLSession:session task:task didCompleteWithError:error];
|
|
1086
|
+
|
|
1087
|
+
[self removeDelegateForTask:task];
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
if (self.taskDidComplete) {
|
|
1091
|
+
self.taskDidComplete(session, task, error);
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
#pragma mark - NSURLSessionDataDelegate
|
|
1096
|
+
|
|
1097
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1098
|
+
dataTask:(NSURLSessionDataTask *)dataTask
|
|
1099
|
+
didReceiveResponse:(NSURLResponse *)response
|
|
1100
|
+
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
|
|
1101
|
+
{
|
|
1102
|
+
NSURLSessionResponseDisposition disposition = NSURLSessionResponseAllow;
|
|
1103
|
+
|
|
1104
|
+
if (self.dataTaskDidReceiveResponse) {
|
|
1105
|
+
disposition = self.dataTaskDidReceiveResponse(session, dataTask, response);
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
if (completionHandler) {
|
|
1109
|
+
completionHandler(disposition);
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1114
|
+
dataTask:(NSURLSessionDataTask *)dataTask
|
|
1115
|
+
didBecomeDownloadTask:(NSURLSessionDownloadTask *)downloadTask
|
|
1116
|
+
{
|
|
1117
|
+
AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:dataTask];
|
|
1118
|
+
if (delegate) {
|
|
1119
|
+
[self removeDelegateForTask:dataTask];
|
|
1120
|
+
[self setDelegate:delegate forTask:downloadTask];
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
if (self.dataTaskDidBecomeDownloadTask) {
|
|
1124
|
+
self.dataTaskDidBecomeDownloadTask(session, dataTask, downloadTask);
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1129
|
+
dataTask:(NSURLSessionDataTask *)dataTask
|
|
1130
|
+
didReceiveData:(NSData *)data
|
|
1131
|
+
{
|
|
1132
|
+
|
|
1133
|
+
AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:dataTask];
|
|
1134
|
+
[delegate URLSession:session dataTask:dataTask didReceiveData:data];
|
|
1135
|
+
|
|
1136
|
+
if (self.dataTaskDidReceiveData) {
|
|
1137
|
+
self.dataTaskDidReceiveData(session, dataTask, data);
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1142
|
+
dataTask:(NSURLSessionDataTask *)dataTask
|
|
1143
|
+
willCacheResponse:(NSCachedURLResponse *)proposedResponse
|
|
1144
|
+
completionHandler:(void (^)(NSCachedURLResponse *cachedResponse))completionHandler
|
|
1145
|
+
{
|
|
1146
|
+
NSCachedURLResponse *cachedResponse = proposedResponse;
|
|
1147
|
+
|
|
1148
|
+
if (self.dataTaskWillCacheResponse) {
|
|
1149
|
+
cachedResponse = self.dataTaskWillCacheResponse(session, dataTask, proposedResponse);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
if (completionHandler) {
|
|
1153
|
+
completionHandler(cachedResponse);
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
- (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session {
|
|
1158
|
+
if (self.didFinishEventsForBackgroundURLSession) {
|
|
1159
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1160
|
+
self.didFinishEventsForBackgroundURLSession(session);
|
|
1161
|
+
});
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
#pragma mark - NSURLSessionDownloadDelegate
|
|
1166
|
+
|
|
1167
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1168
|
+
downloadTask:(NSURLSessionDownloadTask *)downloadTask
|
|
1169
|
+
didFinishDownloadingToURL:(NSURL *)location
|
|
1170
|
+
{
|
|
1171
|
+
AFURLSessionManagerTaskDelegate *delegate = [self delegateForTask:downloadTask];
|
|
1172
|
+
if (self.downloadTaskDidFinishDownloading) {
|
|
1173
|
+
NSURL *fileURL = self.downloadTaskDidFinishDownloading(session, downloadTask, location);
|
|
1174
|
+
if (fileURL) {
|
|
1175
|
+
delegate.downloadFileURL = fileURL;
|
|
1176
|
+
NSError *error = nil;
|
|
1177
|
+
[[NSFileManager defaultManager] moveItemAtURL:location toURL:fileURL error:&error];
|
|
1178
|
+
if (error) {
|
|
1179
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:AFURLSessionDownloadTaskDidFailToMoveFileNotification object:downloadTask userInfo:error.userInfo];
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
return;
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
if (delegate) {
|
|
1187
|
+
[delegate URLSession:session downloadTask:downloadTask didFinishDownloadingToURL:location];
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1192
|
+
downloadTask:(NSURLSessionDownloadTask *)downloadTask
|
|
1193
|
+
didWriteData:(int64_t)bytesWritten
|
|
1194
|
+
totalBytesWritten:(int64_t)totalBytesWritten
|
|
1195
|
+
totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
|
|
1196
|
+
{
|
|
1197
|
+
if (self.downloadTaskDidWriteData) {
|
|
1198
|
+
self.downloadTaskDidWriteData(session, downloadTask, bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
- (void)URLSession:(NSURLSession *)session
|
|
1203
|
+
downloadTask:(NSURLSessionDownloadTask *)downloadTask
|
|
1204
|
+
didResumeAtOffset:(int64_t)fileOffset
|
|
1205
|
+
expectedTotalBytes:(int64_t)expectedTotalBytes
|
|
1206
|
+
{
|
|
1207
|
+
if (self.downloadTaskDidResume) {
|
|
1208
|
+
self.downloadTaskDidResume(session, downloadTask, fileOffset, expectedTotalBytes);
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
#pragma mark - NSSecureCoding
|
|
1213
|
+
|
|
1214
|
+
+ (BOOL)supportsSecureCoding {
|
|
1215
|
+
return YES;
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
- (instancetype)initWithCoder:(NSCoder *)decoder {
|
|
1219
|
+
NSURLSessionConfiguration *configuration = [decoder decodeObjectOfClass:[NSURLSessionConfiguration class] forKey:@"sessionConfiguration"];
|
|
1220
|
+
|
|
1221
|
+
self = [self initWithSessionConfiguration:configuration];
|
|
1222
|
+
if (!self) {
|
|
1223
|
+
return nil;
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
return self;
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
- (void)encodeWithCoder:(NSCoder *)coder {
|
|
1230
|
+
[coder encodeObject:self.session.configuration forKey:@"sessionConfiguration"];
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
#pragma mark - NSCopying
|
|
1234
|
+
|
|
1235
|
+
- (instancetype)copyWithZone:(NSZone *)zone {
|
|
1236
|
+
return [[[self class] allocWithZone:zone] initWithSessionConfiguration:self.session.configuration];
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
@end
|