@momo-kits/native-kits 0.0.1-beta.5 → 0.89.1-2
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/README.md +1 -0
- package/android/.gradle/8.0/checksums/checksums.lock +0 -0
- package/android/.gradle/8.0/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/8.0/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.0/gc.properties +0 -0
- package/android/.gradle/config.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.idea/gradle.xml +12 -0
- package/android/.idea/migrations.xml +10 -0
- package/android/.idea/misc.xml +10 -0
- package/android/.idea/vcs.xml +6 -0
- package/android/.idea/workspace.xml +50 -0
- package/android/build.gradle +35 -69
- package/android/local.properties +8 -0
- package/android/proguard-rules.pro +21 -0
- package/android/src/main/AndroidManifest.xml +2 -2
- package/android/src/main/java/com/momoplatform/nativekits/foundations/Button.kt +16 -0
- package/android/src/main/java/com/momoplatform/nativekits/libs/Logo.kt +63 -0
- package/android/src/main/java/com/momoplatform/nativekits/libs/TrustBanner.kt +246 -0
- package/android/src/main/res/drawable/ic_launcher_background.xml +170 -0
- package/android/src/main/res/drawable-v24/ic_launcher_foreground.xml +30 -0
- package/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +6 -0
- package/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +6 -0
- package/android/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/values/colors.xml +10 -0
- package/android/src/main/res/values/strings.xml +3 -0
- package/android/src/main/res/values/themes.xml +3 -0
- package/android/src/main/res/values-night/themes.xml +3 -0
- package/android/src/main/res/xml/backup_rules.xml +13 -0
- package/android/src/main/res/xml/data_extraction_rules.xml +19 -0
- package/build.gradle.kts +18 -0
- package/compose/build.gradle.kts +82 -0
- package/compose/src/androidMain/AndroidManifest.xml +2 -0
- package/compose/src/androidMain/kotlin/vn/momo/kits/utils/Platform.kt +3 -0
- package/compose/src/androidMain/kotlin/vn/momo/kits/utils/SetMaskFilter.kt +8 -0
- package/compose/src/androidMain/kotlin/vn/momo/kits/utils/Utils.android.kt +14 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Components.kt +194 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +197 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +133 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +62 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +27 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +288 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +80 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +42 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +126 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +51 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +299 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +246 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +223 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +244 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +281 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PromotionPopup.kt +72 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +65 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +64 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +63 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +73 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +42 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +150 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +173 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +242 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1321 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Platform.kt +3 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/SetMaskFilter.kt +5 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +97 -0
- package/compose/src/iosMain/kotlin/vn/momo/kits/utils/Platform.kt +3 -0
- package/compose/src/iosMain/kotlin/vn/momo/kits/utils/SetMaskFilter.kt +9 -0
- package/compose/src/iosMain/kotlin/vn/momo/kits/utils/Utils.ios.kt +18 -0
- package/gradle.properties +19 -0
- package/gradlew +240 -0
- package/gradlew.bat +91 -0
- package/ios/Button/Button.swift +9 -2
- package/ios/CalculatorKeyboard/CalculatorKeyboard.swift +126 -0
- package/ios/Colors+Radius+Spacing/Colors.swift +21 -19
- package/ios/Input/Input.swift +1 -0
- package/ios/OTPKeyboard/KeyboardButton.swift +12 -4
- package/ios/Popup/PopupDisplay.swift +72 -81
- package/ios/Popup/PopupInput.swift +96 -0
- package/ios/Popup/PopupPromotion.swift +52 -0
- package/ios/ScrollIndicator/ScrollIndicator.swift +79 -0
- package/ios/Template/Logo/Logo.swift +75 -0
- package/ios/Template/TrustBanner/TrustBanner.swift +189 -0
- package/ios/native-kits.podspec +1 -1
- package/local.properties +8 -0
- package/package.json +6 -6
- package/publish.sh +1 -10
- package/settings.gradle.kts +41 -0
- package/android/gradle.properties +0 -5
- package/android/src/main/java/com/momoplatform/nativekits/NativeKitsPackage.kt +0 -17
- package/android/src/main/java/com/momoplatform/nativekits/NativeKitsViewManager.kt +0 -20
- package/example/ios/Example/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -63
- package/example/ios/Example/Assets.xcassets/Background.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Border.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Card.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Contents.json +0 -6
- package/example/ios/Example/Assets.xcassets/Error.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Primary.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/PrimaryDark.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/PrimaryLight.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Secondary.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Success.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Text.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/TextSecondary.colorset/Contents.json +0 -38
- package/example/ios/Example/Assets.xcassets/Warning.colorset/Contents.json +0 -38
- package/example/ios/Example/ComponentDetail.swift +0 -35
- package/example/ios/Example/ComponentItem.swift +0 -24
- package/example/ios/Example/ComponentModel.swift +0 -38
- package/example/ios/Example/ContentView.swift +0 -39
- package/example/ios/Example/Example.entitlements +0 -10
- package/example/ios/Example/Foundation/ButtonDemo.swift +0 -80
- package/example/ios/Example/Foundation/ImageDemo.swift +0 -43
- package/example/ios/Example/Foundation/Popup/ActionSheets.swift +0 -136
- package/example/ios/Example/Foundation/Popup/Floats.swift +0 -127
- package/example/ios/Example/Foundation/Popup/Popups.swift +0 -51
- package/example/ios/Example/Foundation/PopupDemo.swift +0 -389
- package/example/ios/Example/Foundation/TextInputDemo.swift +0 -36
- package/example/ios/Example/Foundation/TypographyDemo.swift +0 -53
- package/example/ios/Example/Foundation.swift +0 -26
- package/example/ios/Example/Info.plist +0 -18
- package/example/ios/Example/Library/CheckboxDemo.swift +0 -19
- package/example/ios/Example/Library/SwipeableDemo.swift +0 -105
- package/example/ios/Example/Library/SwitchDemo.swift +0 -19
- package/example/ios/Example/Library.swift +0 -26
- package/example/ios/Example/Main.swift +0 -27
- package/example/ios/Example/Overview.swift +0 -20
- package/example/ios/Example/Preview Content/Preview Assets.xcassets/Contents.json +0 -6
- package/example/ios/Example/Resource/SFProText-Black.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Bold.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Heavy.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Light.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Medium.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Regular.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Semibold.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Thin.ttf +0 -0
- package/example/ios/Example/Resource/SFProText-Ultralight.ttf +0 -0
- package/example/ios/Example/Resource/foundation.json +0 -33
- package/example/ios/Example/Resource/library.json +0 -18
- package/example/ios/Example/Utils.swift +0 -30
- package/example/ios/Example/ViewModifier/DarkViewModifier.swift +0 -22
- package/example/ios/Example.xcodeproj/project.pbxproj +0 -581
- package/example/ios/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/example/ios/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/example/ios/Example.xcodeproj/project.xcworkspace/xcuserdata/wem.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/example/ios/Example.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/example/ios/Example.xcworkspace/contents.xcworkspacedata +0 -10
- package/example/ios/Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/example/ios/Example.xcworkspace/xcuserdata/wem.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/example/ios/Example.xcworkspace/xcuserdata/wem.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
- package/example/ios/Podfile +0 -7
- package/example/ios/Podfile.lock +0 -35
- package/example/ios/Pods/Local Podspecs/MoMoUIKits.podspec.json +0 -37
- package/example/ios/Pods/Manifest.lock +0 -35
- package/example/ios/Pods/Pods.xcodeproj/project.pbxproj +0 -2047
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
- package/example/ios/Pods/SDWebImage/LICENSE +0 -20
- package/example/ios/Pods/SDWebImage/README.md +0 -352
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSButton+WebCache.h +0 -340
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSButton+WebCache.m +0 -172
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.h +0 -63
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.m +0 -165
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.h +0 -67
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.m +0 -120
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.h +0 -114
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.m +0 -392
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImagePlayer.h +0 -112
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImagePlayer.m +0 -420
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.h +0 -23
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.m +0 -133
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView+WebCache.h +0 -168
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView+WebCache.m +0 -79
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.h +0 -110
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.m +0 -540
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.h +0 -145
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.m +0 -326
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDGraphicsImageRenderer.h +0 -73
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDGraphicsImageRenderer.m +0 -256
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.h +0 -19
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.m +0 -58
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAWebPCoder.h +0 -23
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAWebPCoder.m +0 -98
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCache.h +0 -450
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCache.m +0 -1030
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.h +0 -153
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.m +0 -68
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.h +0 -156
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.m +0 -138
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.h +0 -81
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.m +0 -556
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.h +0 -297
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.m +0 -26
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.h +0 -153
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.m +0 -822
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCodersManager.h +0 -58
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCodersManager.m +0 -130
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageFrame.h +0 -36
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageFrame.m +0 -28
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGIFCoder.h +0 -22
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGIFCoder.m +0 -58
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.h +0 -28
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.m +0 -127
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.h +0 -25
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.m +0 -101
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.h +0 -58
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.m +0 -807
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOCoder.h +0 -30
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOCoder.m +0 -420
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoader.h +0 -146
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoader.m +0 -170
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoadersManager.h +0 -40
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoadersManager.m +0 -123
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageTransformer.h +0 -241
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageTransformer.m +0 -331
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDMemoryCache.h +0 -78
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDMemoryCache.m +0 -158
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheKeyFilter.h +0 -32
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheKeyFilter.m +0 -39
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheSerializer.h +0 -36
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheSerializer.m +0 -39
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCompat.h +0 -95
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCompat.m +0 -17
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDefine.h +0 -352
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDefine.m +0 -149
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloader.h +0 -314
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloader.m +0 -658
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderConfig.h +0 -113
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderConfig.m +0 -60
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderDecryptor.h +0 -49
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderDecryptor.m +0 -55
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderOperation.h +0 -191
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderOperation.m +0 -722
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderRequestModifier.h +0 -69
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderRequestModifier.m +0 -71
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderResponseModifier.h +0 -69
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderResponseModifier.m +0 -73
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageError.h +0 -32
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageError.m +0 -16
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageIndicator.h +0 -115
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageIndicator.m +0 -275
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageManager.h +0 -290
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageManager.m +0 -775
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOperation.h +0 -27
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOperation.m +0 -14
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOptionsProcessor.h +0 -72
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOptionsProcessor.m +0 -59
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImagePrefetcher.h +0 -143
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImagePrefetcher.m +0 -303
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageTransition.h +0 -131
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageTransition.m +0 -194
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIButton+WebCache.h +0 -387
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIButton+WebCache.m +0 -234
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ExtendedCacheData.h +0 -24
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ExtendedCacheData.m +0 -23
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ForceDecode.h +0 -46
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ForceDecode.m +0 -60
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+GIF.h +0 -26
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+GIF.m +0 -22
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MemoryCacheCost.h +0 -27
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MemoryCacheCost.m +0 -47
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Metadata.h +0 -89
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Metadata.m +0 -221
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MultiFormat.h +0 -80
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MultiFormat.m +0 -47
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Transform.h +0 -146
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Transform.m +0 -824
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+HighlightedWebCache.h +0 -129
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+HighlightedWebCache.m +0 -76
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+WebCache.h +0 -194
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+WebCache.m +0 -67
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCache.h +0 -110
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCache.m +0 -446
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCacheOperation.h +0 -48
- package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCacheOperation.m +0 -82
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/NSBezierPath+SDRoundedCorners.h +0 -24
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/NSBezierPath+SDRoundedCorners.m +0 -42
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAssociatedObject.h +0 -14
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAssociatedObject.m +0 -29
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAsyncBlockOperation.h +0 -21
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAsyncBlockOperation.m +0 -92
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDeviceHelper.h +0 -18
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDeviceHelper.m +0 -32
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDisplayLink.h +0 -29
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDisplayLink.m +0 -227
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDFileAttributeHelper.h +0 -19
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDFileAttributeHelper.m +0 -127
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageAssetManager.h +0 -23
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageAssetManager.m +0 -164
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageCachesManagerOperation.h +0 -21
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageCachesManagerOperation.m +0 -83
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageIOAnimatedCoderInternal.h +0 -39
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDInternalMacros.h +0 -122
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDInternalMacros.m +0 -13
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWeakProxy.h +0 -20
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWeakProxy.m +0 -79
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWebImageTransitionInternal.h +0 -19
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDmetamacros.h +0 -667
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/UIColor+SDHexString.h +0 -18
- package/example/ios/Pods/SDWebImage/SDWebImage/Private/UIColor+SDHexString.m +0 -42
- package/example/ios/Pods/SDWebImage/WebImage/SDWebImage.h +0 -89
- package/example/ios/Pods/SDWebImageSwiftUI/LICENSE +0 -19
- package/example/ios/Pods/SDWebImageSwiftUI/README.md +0 -690
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/AnimatedImage.swift +0 -870
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/Backport.swift +0 -59
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/OnChange.swift +0 -52
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/Overlay.swift +0 -124
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/StateObject.swift +0 -151
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Image.swift +0 -78
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageManager.swift +0 -132
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImagePlayer.swift +0 -122
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageViewWrapper.swift +0 -133
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift +0 -82
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/Indicator.swift +0 -97
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift +0 -114
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift +0 -64
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/SwiftUICompatibility.swift +0 -92
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Transition/Transition.swift +0 -93
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/WebImage.swift +0 -509
- package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Module/SDWebImageSwiftUI.h +0 -15
- package/example/ios/Pods/SkeletonUI/LICENSE +0 -21
- package/example/ios/Pods/SkeletonUI/README.md +0 -137
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Angle/AngleInteractor.swift +0 -29
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Angle/AnglePresenter.swift +0 -7
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Animation/AnimationInteractor.swift +0 -56
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Appearance/AppearanceInteractor.swift +0 -58
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Appearance/AppearancePresenter.swift +0 -5
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/ClosedRange+Normalize.swift +0 -16
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Image+OptionalType.swift +0 -102
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/ModifiedContent+SkeletonModifier.swift +0 -26
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Optional+OptionalType.swift +0 -5
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/SecureField+OptionalType.swift +0 -19
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Text+OptionalType.swift +0 -27
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/TextField+OptionalType.swift +0 -35
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Toggle+OptionalType.swift +0 -29
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/UnitPoint+Angle.swift +0 -8
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/View+SkeletonModifier.swift +0 -8
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Modifiers/SkeletonModifier.swift +0 -52
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Multiline/MultilineInteractor.swift +0 -41
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Multiline/MultilinePresenter.swift +0 -9
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Opacity/OpacityInteractor.swift +0 -29
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Opacity/OpacityPresenter.swift +0 -7
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Position/PositionInteractor.swift +0 -29
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Position/PositionPresenter.swift +0 -7
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Protocols/OptionalType.swift +0 -4
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Radius/RadiusInteractor.swift +0 -29
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Radius/RadiusPresenter.swift +0 -7
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Shape/ShapeInteractor.swift +0 -33
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Shape/ShapePresenter.swift +0 -5
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonForEach.swift +0 -20
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonInteractor.swift +0 -27
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonList.swift +0 -20
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonPresenter.swift +0 -15
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonShape.swift +0 -64
- package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonView.swift +0 -25
- package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits-dummy.m +0 -5
- package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits-prefix.pch +0 -12
- package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits-umbrella.h +0 -16
- package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.debug.xcconfig +0 -15
- package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.modulemap +0 -6
- package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.release.xcconfig +0 -15
- package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown +0 -75
- package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist +0 -119
- package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m +0 -5
- package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h +0 -16
- package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig +0 -15
- package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap +0 -6
- package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig +0 -15
- package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m +0 -5
- package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch +0 -12
- package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-umbrella.h +0 -75
- package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.debug.xcconfig +0 -14
- package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.modulemap +0 -6
- package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.release.xcconfig +0 -14
- package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-dummy.m +0 -5
- package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-prefix.pch +0 -12
- package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-umbrella.h +0 -17
- package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.debug.xcconfig +0 -17
- package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.modulemap +0 -6
- package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.release.xcconfig +0 -17
- package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-dummy.m +0 -5
- package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-prefix.pch +0 -12
- package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-umbrella.h +0 -16
- package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.debug.xcconfig +0 -12
- package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.modulemap +0 -6
- package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.release.xcconfig +0 -12
- package/ios/Extensions/View++.swift +0 -9
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of the SDWebImage package.
|
|
3
|
-
* (c) Olivier Poitrey <rs@dailymotion.com>
|
|
4
|
-
*
|
|
5
|
-
* For the full copyright and license information, please view the LICENSE
|
|
6
|
-
* file that was distributed with this source code.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#import <Foundation/Foundation.h>
|
|
10
|
-
#import "SDImageCoder.h"
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
Built in coder that supports PNG, JPEG, TIFF, includes support for progressive decoding.
|
|
14
|
-
|
|
15
|
-
GIF
|
|
16
|
-
Also supports static GIF (meaning will only handle the 1st frame).
|
|
17
|
-
For a full GIF support, we recommend `SDAnimatedImageView` to keep both CPU and memory balanced.
|
|
18
|
-
|
|
19
|
-
HEIC
|
|
20
|
-
This coder also supports HEIC format because ImageIO supports it natively. But it depends on the system capabilities, so it won't work on all devices, see: https://devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf
|
|
21
|
-
Decode(Software): !Simulator && (iOS 11 || tvOS 11 || macOS 10.13)
|
|
22
|
-
Decode(Hardware): !Simulator && ((iOS 11 && A9Chip) || (macOS 10.13 && 6thGenerationIntelCPU))
|
|
23
|
-
Encode(Software): macOS 10.13
|
|
24
|
-
Encode(Hardware): !Simulator && ((iOS 11 && A10FusionChip) || (macOS 10.13 && 6thGenerationIntelCPU))
|
|
25
|
-
*/
|
|
26
|
-
@interface SDImageIOCoder : NSObject <SDProgressiveImageCoder>
|
|
27
|
-
|
|
28
|
-
@property (nonatomic, class, readonly, nonnull) SDImageIOCoder *sharedCoder;
|
|
29
|
-
|
|
30
|
-
@end
|
|
@@ -1,420 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of the SDWebImage package.
|
|
3
|
-
* (c) Olivier Poitrey <rs@dailymotion.com>
|
|
4
|
-
*
|
|
5
|
-
* For the full copyright and license information, please view the LICENSE
|
|
6
|
-
* file that was distributed with this source code.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#import "SDImageIOCoder.h"
|
|
10
|
-
#import "SDImageCoderHelper.h"
|
|
11
|
-
#import "NSImage+Compatibility.h"
|
|
12
|
-
#import "UIImage+Metadata.h"
|
|
13
|
-
#import "SDImageGraphics.h"
|
|
14
|
-
#import "SDImageIOAnimatedCoderInternal.h"
|
|
15
|
-
|
|
16
|
-
#import <ImageIO/ImageIO.h>
|
|
17
|
-
#import <CoreServices/CoreServices.h>
|
|
18
|
-
|
|
19
|
-
// Specify File Size for lossy format encoding, like JPEG
|
|
20
|
-
static NSString * kSDCGImageDestinationRequestedFileSize = @"kCGImageDestinationRequestedFileSize";
|
|
21
|
-
|
|
22
|
-
@implementation SDImageIOCoder {
|
|
23
|
-
size_t _width, _height;
|
|
24
|
-
CGImagePropertyOrientation _orientation;
|
|
25
|
-
CGImageSourceRef _imageSource;
|
|
26
|
-
CGFloat _scale;
|
|
27
|
-
BOOL _finished;
|
|
28
|
-
BOOL _preserveAspectRatio;
|
|
29
|
-
CGSize _thumbnailSize;
|
|
30
|
-
BOOL _lazyDecode;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
- (void)dealloc {
|
|
34
|
-
if (_imageSource) {
|
|
35
|
-
CFRelease(_imageSource);
|
|
36
|
-
_imageSource = NULL;
|
|
37
|
-
}
|
|
38
|
-
#if SD_UIKIT
|
|
39
|
-
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
|
|
40
|
-
#endif
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
- (void)didReceiveMemoryWarning:(NSNotification *)notification
|
|
44
|
-
{
|
|
45
|
-
if (_imageSource) {
|
|
46
|
-
CGImageSourceRemoveCacheAtIndex(_imageSource, 0);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
+ (instancetype)sharedCoder {
|
|
51
|
-
static SDImageIOCoder *coder;
|
|
52
|
-
static dispatch_once_t onceToken;
|
|
53
|
-
dispatch_once(&onceToken, ^{
|
|
54
|
-
coder = [[SDImageIOCoder alloc] init];
|
|
55
|
-
});
|
|
56
|
-
return coder;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
#pragma mark - Bitmap PDF representation
|
|
60
|
-
+ (UIImage *)createBitmapPDFWithData:(nonnull NSData *)data pageNumber:(NSUInteger)pageNumber targetSize:(CGSize)targetSize preserveAspectRatio:(BOOL)preserveAspectRatio {
|
|
61
|
-
NSParameterAssert(data);
|
|
62
|
-
UIImage *image;
|
|
63
|
-
|
|
64
|
-
CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
|
|
65
|
-
if (!provider) {
|
|
66
|
-
return nil;
|
|
67
|
-
}
|
|
68
|
-
CGPDFDocumentRef document = CGPDFDocumentCreateWithProvider(provider);
|
|
69
|
-
CGDataProviderRelease(provider);
|
|
70
|
-
if (!document) {
|
|
71
|
-
return nil;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// `CGPDFDocumentGetPage` page number is 1-indexed.
|
|
75
|
-
CGPDFPageRef page = CGPDFDocumentGetPage(document, pageNumber + 1);
|
|
76
|
-
if (!page) {
|
|
77
|
-
CGPDFDocumentRelease(document);
|
|
78
|
-
return nil;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
CGPDFBox box = kCGPDFMediaBox;
|
|
82
|
-
CGRect rect = CGPDFPageGetBoxRect(page, box);
|
|
83
|
-
CGRect targetRect = rect;
|
|
84
|
-
if (!CGSizeEqualToSize(targetSize, CGSizeZero)) {
|
|
85
|
-
targetRect = CGRectMake(0, 0, targetSize.width, targetSize.height);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
CGFloat xRatio = targetRect.size.width / rect.size.width;
|
|
89
|
-
CGFloat yRatio = targetRect.size.height / rect.size.height;
|
|
90
|
-
CGFloat xScale = preserveAspectRatio ? MIN(xRatio, yRatio) : xRatio;
|
|
91
|
-
CGFloat yScale = preserveAspectRatio ? MIN(xRatio, yRatio) : yRatio;
|
|
92
|
-
|
|
93
|
-
// `CGPDFPageGetDrawingTransform` will only scale down, but not scale up, so we need calculate the actual scale again
|
|
94
|
-
CGRect drawRect = CGRectMake( 0, 0, targetRect.size.width / xScale, targetRect.size.height / yScale);
|
|
95
|
-
CGAffineTransform scaleTransform = CGAffineTransformMakeScale(xScale, yScale);
|
|
96
|
-
CGAffineTransform transform = CGPDFPageGetDrawingTransform(page, box, drawRect, 0, preserveAspectRatio);
|
|
97
|
-
|
|
98
|
-
SDGraphicsBeginImageContextWithOptions(targetRect.size, NO, 0);
|
|
99
|
-
CGContextRef context = SDGraphicsGetCurrentContext();
|
|
100
|
-
|
|
101
|
-
#if SD_UIKIT || SD_WATCH
|
|
102
|
-
// Core Graphics coordinate system use the bottom-left, UIKit use the flipped one
|
|
103
|
-
CGContextTranslateCTM(context, 0, targetRect.size.height);
|
|
104
|
-
CGContextScaleCTM(context, 1, -1);
|
|
105
|
-
#endif
|
|
106
|
-
|
|
107
|
-
CGContextConcatCTM(context, scaleTransform);
|
|
108
|
-
CGContextConcatCTM(context, transform);
|
|
109
|
-
|
|
110
|
-
CGContextDrawPDFPage(context, page);
|
|
111
|
-
|
|
112
|
-
image = SDGraphicsGetImageFromCurrentImageContext();
|
|
113
|
-
SDGraphicsEndImageContext();
|
|
114
|
-
|
|
115
|
-
CGPDFDocumentRelease(document);
|
|
116
|
-
|
|
117
|
-
return image;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
#pragma mark - Decode
|
|
121
|
-
- (BOOL)canDecodeFromData:(nullable NSData *)data {
|
|
122
|
-
return YES;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
- (UIImage *)decodedImageWithData:(NSData *)data options:(nullable SDImageCoderOptions *)options {
|
|
126
|
-
if (!data) {
|
|
127
|
-
return nil;
|
|
128
|
-
}
|
|
129
|
-
CGFloat scale = 1;
|
|
130
|
-
NSNumber *scaleFactor = options[SDImageCoderDecodeScaleFactor];
|
|
131
|
-
if (scaleFactor != nil) {
|
|
132
|
-
scale = MAX([scaleFactor doubleValue], 1) ;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
CGSize thumbnailSize = CGSizeZero;
|
|
136
|
-
NSValue *thumbnailSizeValue = options[SDImageCoderDecodeThumbnailPixelSize];
|
|
137
|
-
if (thumbnailSizeValue != nil) {
|
|
138
|
-
#if SD_MAC
|
|
139
|
-
thumbnailSize = thumbnailSizeValue.sizeValue;
|
|
140
|
-
#else
|
|
141
|
-
thumbnailSize = thumbnailSizeValue.CGSizeValue;
|
|
142
|
-
#endif
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
BOOL preserveAspectRatio = YES;
|
|
146
|
-
NSNumber *preserveAspectRatioValue = options[SDImageCoderDecodePreserveAspectRatio];
|
|
147
|
-
if (preserveAspectRatioValue != nil) {
|
|
148
|
-
preserveAspectRatio = preserveAspectRatioValue.boolValue;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// Check vector format
|
|
152
|
-
if ([NSData sd_imageFormatForImageData:data] == SDImageFormatPDF) {
|
|
153
|
-
// History before iOS 16, ImageIO can decode PDF with rasterization size, but can't ever :(
|
|
154
|
-
// So, use CoreGraphics to decode PDF (copy code from SDWebImagePDFCoder, may do refactor in the future)
|
|
155
|
-
UIImage *image;
|
|
156
|
-
NSUInteger pageNumber = 0; // Still use first page, may added options is user want
|
|
157
|
-
#if SD_MAC
|
|
158
|
-
// If don't use thumbnail, prefers the built-in generation of vector image
|
|
159
|
-
// macOS's `NSImage` supports PDF built-in rendering
|
|
160
|
-
if (thumbnailSize.width == 0 || thumbnailSize.height == 0) {
|
|
161
|
-
NSPDFImageRep *imageRep = [[NSPDFImageRep alloc] initWithData:data];
|
|
162
|
-
if (imageRep) {
|
|
163
|
-
imageRep.currentPage = pageNumber;
|
|
164
|
-
image = [[NSImage alloc] initWithSize:imageRep.size];
|
|
165
|
-
[image addRepresentation:imageRep];
|
|
166
|
-
image.sd_imageFormat = SDImageFormatPDF;
|
|
167
|
-
return image;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
#endif
|
|
171
|
-
image = [self.class createBitmapPDFWithData:data pageNumber:pageNumber targetSize:thumbnailSize preserveAspectRatio:preserveAspectRatio];
|
|
172
|
-
image.sd_imageFormat = SDImageFormatPDF;
|
|
173
|
-
return image;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
BOOL lazyDecode = YES; // Defaults YES for static image coder
|
|
177
|
-
NSNumber *lazyDecodeValue = options[SDImageCoderDecodeUseLazyDecoding];
|
|
178
|
-
if (lazyDecodeValue != nil) {
|
|
179
|
-
lazyDecode = lazyDecodeValue.boolValue;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
NSString *typeIdentifierHint = options[SDImageCoderDecodeTypeIdentifierHint];
|
|
183
|
-
if (!typeIdentifierHint) {
|
|
184
|
-
// Check file extension and convert to UTI, from: https://stackoverflow.com/questions/1506251/getting-an-uniform-type-identifier-for-a-given-extension
|
|
185
|
-
NSString *fileExtensionHint = options[SDImageCoderDecodeFileExtensionHint];
|
|
186
|
-
if (fileExtensionHint) {
|
|
187
|
-
typeIdentifierHint = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtensionHint, kUTTypeImage);
|
|
188
|
-
// Ignore dynamic UTI
|
|
189
|
-
if (UTTypeIsDynamic((__bridge CFStringRef)typeIdentifierHint)) {
|
|
190
|
-
typeIdentifierHint = nil;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
} else if ([typeIdentifierHint isEqual:NSNull.null]) {
|
|
194
|
-
// Hack if user don't want to imply file extension
|
|
195
|
-
typeIdentifierHint = nil;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
NSDictionary *creatingOptions = nil;
|
|
199
|
-
if (typeIdentifierHint) {
|
|
200
|
-
creatingOptions = @{(__bridge NSString *)kCGImageSourceTypeIdentifierHint : typeIdentifierHint};
|
|
201
|
-
}
|
|
202
|
-
CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)data, (__bridge CFDictionaryRef)creatingOptions);
|
|
203
|
-
if (!source) {
|
|
204
|
-
// Try again without UTType hint, the call site from user may provide the wrong UTType
|
|
205
|
-
source = CGImageSourceCreateWithData((__bridge CFDataRef)data, (__bridge CFDictionaryRef)creatingOptions);
|
|
206
|
-
}
|
|
207
|
-
if (!source) {
|
|
208
|
-
return nil;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
CFStringRef uttype = CGImageSourceGetType(source);
|
|
212
|
-
SDImageFormat imageFormat = [NSData sd_imageFormatFromUTType:uttype];
|
|
213
|
-
|
|
214
|
-
UIImage *image = [SDImageIOAnimatedCoder createFrameAtIndex:0 source:source scale:scale preserveAspectRatio:preserveAspectRatio thumbnailSize:thumbnailSize lazyDecode:lazyDecode animatedImage:NO];
|
|
215
|
-
CFRelease(source);
|
|
216
|
-
|
|
217
|
-
image.sd_imageFormat = imageFormat;
|
|
218
|
-
return image;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
#pragma mark - Progressive Decode
|
|
222
|
-
|
|
223
|
-
- (BOOL)canIncrementalDecodeFromData:(NSData *)data {
|
|
224
|
-
return [self canDecodeFromData:data];
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
- (instancetype)initIncrementalWithOptions:(nullable SDImageCoderOptions *)options {
|
|
228
|
-
self = [super init];
|
|
229
|
-
if (self) {
|
|
230
|
-
_imageSource = CGImageSourceCreateIncremental(NULL);
|
|
231
|
-
CGFloat scale = 1;
|
|
232
|
-
NSNumber *scaleFactor = options[SDImageCoderDecodeScaleFactor];
|
|
233
|
-
if (scaleFactor != nil) {
|
|
234
|
-
scale = MAX([scaleFactor doubleValue], 1);
|
|
235
|
-
}
|
|
236
|
-
_scale = scale;
|
|
237
|
-
CGSize thumbnailSize = CGSizeZero;
|
|
238
|
-
NSValue *thumbnailSizeValue = options[SDImageCoderDecodeThumbnailPixelSize];
|
|
239
|
-
if (thumbnailSizeValue != nil) {
|
|
240
|
-
#if SD_MAC
|
|
241
|
-
thumbnailSize = thumbnailSizeValue.sizeValue;
|
|
242
|
-
#else
|
|
243
|
-
thumbnailSize = thumbnailSizeValue.CGSizeValue;
|
|
244
|
-
#endif
|
|
245
|
-
}
|
|
246
|
-
_thumbnailSize = thumbnailSize;
|
|
247
|
-
BOOL preserveAspectRatio = YES;
|
|
248
|
-
NSNumber *preserveAspectRatioValue = options[SDImageCoderDecodePreserveAspectRatio];
|
|
249
|
-
if (preserveAspectRatioValue != nil) {
|
|
250
|
-
preserveAspectRatio = preserveAspectRatioValue.boolValue;
|
|
251
|
-
}
|
|
252
|
-
_preserveAspectRatio = preserveAspectRatio;
|
|
253
|
-
BOOL lazyDecode = YES; // Defaults YES for static image coder
|
|
254
|
-
NSNumber *lazyDecodeValue = options[SDImageCoderDecodeUseLazyDecoding];
|
|
255
|
-
if (lazyDecodeValue != nil) {
|
|
256
|
-
lazyDecode = lazyDecodeValue.boolValue;
|
|
257
|
-
}
|
|
258
|
-
_lazyDecode = lazyDecode;
|
|
259
|
-
#if SD_UIKIT
|
|
260
|
-
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMemoryWarning:) name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
|
|
261
|
-
#endif
|
|
262
|
-
}
|
|
263
|
-
return self;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
- (void)updateIncrementalData:(NSData *)data finished:(BOOL)finished {
|
|
267
|
-
if (_finished) {
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
_finished = finished;
|
|
271
|
-
|
|
272
|
-
// The following code is from http://www.cocoaintheshell.com/2011/05/progressive-images-download-imageio/
|
|
273
|
-
// Thanks to the author @Nyx0uf
|
|
274
|
-
|
|
275
|
-
// Update the data source, we must pass ALL the data, not just the new bytes
|
|
276
|
-
CGImageSourceUpdateData(_imageSource, (__bridge CFDataRef)data, finished);
|
|
277
|
-
|
|
278
|
-
if (_width + _height == 0) {
|
|
279
|
-
CFDictionaryRef properties = CGImageSourceCopyPropertiesAtIndex(_imageSource, 0, NULL);
|
|
280
|
-
if (properties) {
|
|
281
|
-
NSInteger orientationValue = 1;
|
|
282
|
-
CFTypeRef val = CFDictionaryGetValue(properties, kCGImagePropertyPixelHeight);
|
|
283
|
-
if (val) CFNumberGetValue(val, kCFNumberLongType, &_height);
|
|
284
|
-
val = CFDictionaryGetValue(properties, kCGImagePropertyPixelWidth);
|
|
285
|
-
if (val) CFNumberGetValue(val, kCFNumberLongType, &_width);
|
|
286
|
-
val = CFDictionaryGetValue(properties, kCGImagePropertyOrientation);
|
|
287
|
-
if (val) CFNumberGetValue(val, kCFNumberNSIntegerType, &orientationValue);
|
|
288
|
-
CFRelease(properties);
|
|
289
|
-
|
|
290
|
-
// When we draw to Core Graphics, we lose orientation information,
|
|
291
|
-
// which means the image below born of initWithCGIImage will be
|
|
292
|
-
// oriented incorrectly sometimes. (Unlike the image born of initWithData
|
|
293
|
-
// in didCompleteWithError.) So save it here and pass it on later.
|
|
294
|
-
_orientation = (CGImagePropertyOrientation)orientationValue;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
- (UIImage *)incrementalDecodedImageWithOptions:(SDImageCoderOptions *)options {
|
|
300
|
-
UIImage *image;
|
|
301
|
-
|
|
302
|
-
if (_width + _height > 0) {
|
|
303
|
-
// Create the image
|
|
304
|
-
CGFloat scale = _scale;
|
|
305
|
-
NSNumber *scaleFactor = options[SDImageCoderDecodeScaleFactor];
|
|
306
|
-
if (scaleFactor != nil) {
|
|
307
|
-
scale = MAX([scaleFactor doubleValue], 1);
|
|
308
|
-
}
|
|
309
|
-
image = [SDImageIOAnimatedCoder createFrameAtIndex:0 source:_imageSource scale:scale preserveAspectRatio:_preserveAspectRatio thumbnailSize:_thumbnailSize lazyDecode:_lazyDecode animatedImage:NO];
|
|
310
|
-
if (image) {
|
|
311
|
-
CFStringRef uttype = CGImageSourceGetType(_imageSource);
|
|
312
|
-
image.sd_imageFormat = [NSData sd_imageFormatFromUTType:uttype];
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
return image;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
#pragma mark - Encode
|
|
320
|
-
- (BOOL)canEncodeToFormat:(SDImageFormat)format {
|
|
321
|
-
return YES;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
- (NSData *)encodedDataWithImage:(UIImage *)image format:(SDImageFormat)format options:(nullable SDImageCoderOptions *)options {
|
|
325
|
-
if (!image) {
|
|
326
|
-
return nil;
|
|
327
|
-
}
|
|
328
|
-
CGImageRef imageRef = image.CGImage;
|
|
329
|
-
if (!imageRef) {
|
|
330
|
-
// Earily return, supports CGImage only
|
|
331
|
-
return nil;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
if (format == SDImageFormatUndefined) {
|
|
335
|
-
BOOL hasAlpha = [SDImageCoderHelper CGImageContainsAlpha:imageRef];
|
|
336
|
-
if (hasAlpha) {
|
|
337
|
-
format = SDImageFormatPNG;
|
|
338
|
-
} else {
|
|
339
|
-
format = SDImageFormatJPEG;
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
NSMutableData *imageData = [NSMutableData data];
|
|
344
|
-
CFStringRef imageUTType = [NSData sd_UTTypeFromImageFormat:format];
|
|
345
|
-
|
|
346
|
-
// Create an image destination.
|
|
347
|
-
CGImageDestinationRef imageDestination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)imageData, imageUTType, 1, NULL);
|
|
348
|
-
if (!imageDestination) {
|
|
349
|
-
// Handle failure.
|
|
350
|
-
return nil;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
NSMutableDictionary *properties = [NSMutableDictionary dictionary];
|
|
354
|
-
#if SD_UIKIT || SD_WATCH
|
|
355
|
-
CGImagePropertyOrientation exifOrientation = [SDImageCoderHelper exifOrientationFromImageOrientation:image.imageOrientation];
|
|
356
|
-
#else
|
|
357
|
-
CGImagePropertyOrientation exifOrientation = kCGImagePropertyOrientationUp;
|
|
358
|
-
#endif
|
|
359
|
-
properties[(__bridge NSString *)kCGImagePropertyOrientation] = @(exifOrientation);
|
|
360
|
-
// Encoding Options
|
|
361
|
-
double compressionQuality = 1;
|
|
362
|
-
if (options[SDImageCoderEncodeCompressionQuality]) {
|
|
363
|
-
compressionQuality = [options[SDImageCoderEncodeCompressionQuality] doubleValue];
|
|
364
|
-
}
|
|
365
|
-
properties[(__bridge NSString *)kCGImageDestinationLossyCompressionQuality] = @(compressionQuality);
|
|
366
|
-
CGColorRef backgroundColor = [options[SDImageCoderEncodeBackgroundColor] CGColor];
|
|
367
|
-
if (backgroundColor) {
|
|
368
|
-
properties[(__bridge NSString *)kCGImageDestinationBackgroundColor] = (__bridge id)(backgroundColor);
|
|
369
|
-
}
|
|
370
|
-
CGSize maxPixelSize = CGSizeZero;
|
|
371
|
-
NSValue *maxPixelSizeValue = options[SDImageCoderEncodeMaxPixelSize];
|
|
372
|
-
if (maxPixelSizeValue != nil) {
|
|
373
|
-
#if SD_MAC
|
|
374
|
-
maxPixelSize = maxPixelSizeValue.sizeValue;
|
|
375
|
-
#else
|
|
376
|
-
maxPixelSize = maxPixelSizeValue.CGSizeValue;
|
|
377
|
-
#endif
|
|
378
|
-
}
|
|
379
|
-
CGFloat pixelWidth = (CGFloat)CGImageGetWidth(imageRef);
|
|
380
|
-
CGFloat pixelHeight = (CGFloat)CGImageGetHeight(imageRef);
|
|
381
|
-
CGFloat finalPixelSize = 0;
|
|
382
|
-
BOOL encodeFullImage = maxPixelSize.width == 0 || maxPixelSize.height == 0 || pixelWidth == 0 || pixelHeight == 0 || (pixelWidth <= maxPixelSize.width && pixelHeight <= maxPixelSize.height);
|
|
383
|
-
if (!encodeFullImage) {
|
|
384
|
-
// Thumbnail Encoding
|
|
385
|
-
CGFloat pixelRatio = pixelWidth / pixelHeight;
|
|
386
|
-
CGFloat maxPixelSizeRatio = maxPixelSize.width / maxPixelSize.height;
|
|
387
|
-
if (pixelRatio > maxPixelSizeRatio) {
|
|
388
|
-
finalPixelSize = MAX(maxPixelSize.width, maxPixelSize.width / pixelRatio);
|
|
389
|
-
} else {
|
|
390
|
-
finalPixelSize = MAX(maxPixelSize.height, maxPixelSize.height * pixelRatio);
|
|
391
|
-
}
|
|
392
|
-
properties[(__bridge NSString *)kCGImageDestinationImageMaxPixelSize] = @(finalPixelSize);
|
|
393
|
-
}
|
|
394
|
-
NSUInteger maxFileSize = [options[SDImageCoderEncodeMaxFileSize] unsignedIntegerValue];
|
|
395
|
-
if (maxFileSize > 0) {
|
|
396
|
-
properties[kSDCGImageDestinationRequestedFileSize] = @(maxFileSize);
|
|
397
|
-
// Remove the quality if we have file size limit
|
|
398
|
-
properties[(__bridge NSString *)kCGImageDestinationLossyCompressionQuality] = nil;
|
|
399
|
-
}
|
|
400
|
-
BOOL embedThumbnail = NO;
|
|
401
|
-
if (options[SDImageCoderEncodeEmbedThumbnail]) {
|
|
402
|
-
embedThumbnail = [options[SDImageCoderEncodeEmbedThumbnail] boolValue];
|
|
403
|
-
}
|
|
404
|
-
properties[(__bridge NSString *)kCGImageDestinationEmbedThumbnail] = @(embedThumbnail);
|
|
405
|
-
|
|
406
|
-
// Add your image to the destination.
|
|
407
|
-
CGImageDestinationAddImage(imageDestination, imageRef, (__bridge CFDictionaryRef)properties);
|
|
408
|
-
|
|
409
|
-
// Finalize the destination.
|
|
410
|
-
if (CGImageDestinationFinalize(imageDestination) == NO) {
|
|
411
|
-
// Handle failure.
|
|
412
|
-
imageData = nil;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
CFRelease(imageDestination);
|
|
416
|
-
|
|
417
|
-
return [imageData copy];
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
@end
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of the SDWebImage package.
|
|
3
|
-
* (c) Olivier Poitrey <rs@dailymotion.com>
|
|
4
|
-
*
|
|
5
|
-
* For the full copyright and license information, please view the LICENSE
|
|
6
|
-
* file that was distributed with this source code.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#import "SDWebImageCompat.h"
|
|
10
|
-
#import "SDWebImageDefine.h"
|
|
11
|
-
#import "SDWebImageOperation.h"
|
|
12
|
-
#import "SDImageCoder.h"
|
|
13
|
-
|
|
14
|
-
typedef void(^SDImageLoaderProgressBlock)(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL);
|
|
15
|
-
typedef void(^SDImageLoaderCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished);
|
|
16
|
-
|
|
17
|
-
#pragma mark - Context Options
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
A `UIImage` instance from `SDWebImageManager` when you specify `SDWebImageRefreshCached` and image cache hit.
|
|
21
|
-
This can be a hint for image loader to load the image from network and refresh the image from remote location if needed. If the image from remote location does not change, you should call the completion with `SDWebImageErrorCacheNotModified` error. (UIImage)
|
|
22
|
-
@note If you don't implement `SDWebImageRefreshCached` support, you do not need to care about this context option.
|
|
23
|
-
*/
|
|
24
|
-
FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextLoaderCachedImage;
|
|
25
|
-
|
|
26
|
-
#pragma mark - Helper method
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
This is the built-in decoding process for image download from network or local file.
|
|
30
|
-
@note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image.
|
|
31
|
-
|
|
32
|
-
@param imageData The image data from the network. Should not be nil
|
|
33
|
-
@param imageURL The image URL from the input. Should not be nil
|
|
34
|
-
@param options The options arg from the input
|
|
35
|
-
@param context The context arg from the input
|
|
36
|
-
@return The decoded image for current image data load from the network
|
|
37
|
-
*/
|
|
38
|
-
FOUNDATION_EXPORT UIImage * _Nullable SDImageLoaderDecodeImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, SDWebImageOptions options, SDWebImageContext * _Nullable context);
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
This is the built-in decoding process for image progressive download from network. It's used when `SDWebImageProgressiveLoad` option is set. (It's not required when your loader does not support progressive image loading)
|
|
42
|
-
@note If you want to implement your custom loader with `requestImageWithURL:options:context:progress:completed:` API, but also want to keep compatible with SDWebImage's behavior, you'd better use this to produce image.
|
|
43
|
-
|
|
44
|
-
@param imageData The image data from the network so far. Should not be nil
|
|
45
|
-
@param imageURL The image URL from the input. Should not be nil
|
|
46
|
-
@param finished Pass NO to specify the download process has not finished. Pass YES when all image data has finished.
|
|
47
|
-
@param operation The loader operation associated with current progressive download. Why to provide this is because progressive decoding need to store the partial decoded context for each operation to avoid conflict. You should provide the operation from `loadImageWithURL:` method return value.
|
|
48
|
-
@param options The options arg from the input
|
|
49
|
-
@param context The context arg from the input
|
|
50
|
-
@return The decoded progressive image for current image data load from the network
|
|
51
|
-
*/
|
|
52
|
-
FOUNDATION_EXPORT UIImage * _Nullable SDImageLoaderDecodeProgressiveImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BOOL finished, id<SDWebImageOperation> _Nonnull operation, SDWebImageOptions options, SDWebImageContext * _Nullable context);
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
This function get the progressive decoder for current loading operation. If no progressive decoding is happended or decoder is not able to construct, return nil.
|
|
56
|
-
@return The progressive decoder associated with the loading operation.
|
|
57
|
-
*/
|
|
58
|
-
FOUNDATION_EXPORT id<SDProgressiveImageCoder> _Nullable SDImageLoaderGetProgressiveCoder(id<SDWebImageOperation> _Nonnull operation);
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
This function set the progressive decoder for current loading operation. If no progressive decoding is happended, pass nil.
|
|
62
|
-
@param operation The loading operation to associate the progerssive decoder.
|
|
63
|
-
*/
|
|
64
|
-
FOUNDATION_EXPORT void SDImageLoaderSetProgressiveCoder(id<SDWebImageOperation> _Nonnull operation, id<SDProgressiveImageCoder> _Nullable progressiveCoder);
|
|
65
|
-
|
|
66
|
-
#pragma mark - SDImageLoader
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
This is the protocol to specify custom image load process. You can create your own class to conform this protocol and use as a image loader to load image from network or any available remote resources defined by yourself.
|
|
70
|
-
If you want to implement custom loader for image download from network or local file, you just need to concentrate on image data download only. After the download finish, call `SDImageLoaderDecodeImageData` or `SDImageLoaderDecodeProgressiveImageData` to use the built-in decoding process and produce image (Remember to call in the global queue). And finally callback the completion block.
|
|
71
|
-
If you directly get the image instance using some third-party SDKs, such as image directly from Photos framework. You can process the image data and image instance by yourself without that built-in decoding process. And finally callback the completion block.
|
|
72
|
-
@note It's your responsibility to load the image in the desired global queue(to avoid block main queue). We do not dispatch these method call in a global queue but just from the call queue (For `SDWebImageManager`, it typically call from the main queue).
|
|
73
|
-
*/
|
|
74
|
-
@protocol SDImageLoader <NSObject>
|
|
75
|
-
|
|
76
|
-
@required
|
|
77
|
-
/**
|
|
78
|
-
Whether current image loader supports to load the provide image URL.
|
|
79
|
-
This will be checked every time a new image request come for loader. If this return NO, we will mark this image load as failed. If return YES, we will start to call `requestImageWithURL:options:context:progress:completed:`.
|
|
80
|
-
|
|
81
|
-
@param url The image URL to be loaded.
|
|
82
|
-
@return YES to continue download, NO to stop download.
|
|
83
|
-
*/
|
|
84
|
-
- (BOOL)canRequestImageForURL:(nullable NSURL *)url API_DEPRECATED("Use canRequestImageForURL:options:context: instead", macos(10.10, API_TO_BE_DEPRECATED), ios(8.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED));
|
|
85
|
-
|
|
86
|
-
@optional
|
|
87
|
-
/**
|
|
88
|
-
Whether current image loader supports to load the provide image URL, with associated options and context.
|
|
89
|
-
This will be checked every time a new image request come for loader. If this return NO, we will mark this image load as failed. If return YES, we will start to call `requestImageWithURL:options:context:progress:completed:`.
|
|
90
|
-
|
|
91
|
-
@param url The image URL to be loaded.
|
|
92
|
-
@param options A mask to specify options to use for this request
|
|
93
|
-
@param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
|
|
94
|
-
@return YES to continue download, NO to stop download.
|
|
95
|
-
*/
|
|
96
|
-
- (BOOL)canRequestImageForURL:(nullable NSURL *)url
|
|
97
|
-
options:(SDWebImageOptions)options
|
|
98
|
-
context:(nullable SDWebImageContext *)context;
|
|
99
|
-
|
|
100
|
-
@required
|
|
101
|
-
/**
|
|
102
|
-
Load the image and image data with the given URL and return the image data. You're responsible for producing the image instance.
|
|
103
|
-
|
|
104
|
-
@param url The URL represent the image. Note this may not be a HTTP URL
|
|
105
|
-
@param options A mask to specify options to use for this request
|
|
106
|
-
@param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
|
|
107
|
-
@param progressBlock A block called while image is downloading
|
|
108
|
-
* @note the progress block is executed on a background queue
|
|
109
|
-
@param completedBlock A block called when operation has been completed.
|
|
110
|
-
@return An operation which allow the user to cancel the current request.
|
|
111
|
-
*/
|
|
112
|
-
- (nullable id<SDWebImageOperation>)requestImageWithURL:(nullable NSURL *)url
|
|
113
|
-
options:(SDWebImageOptions)options
|
|
114
|
-
context:(nullable SDWebImageContext *)context
|
|
115
|
-
progress:(nullable SDImageLoaderProgressBlock)progressBlock
|
|
116
|
-
completed:(nullable SDImageLoaderCompletedBlock)completedBlock;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
Whether the error from image loader should be marked indeed un-recoverable or not.
|
|
121
|
-
If this return YES, failed URL which does not using `SDWebImageRetryFailed` will be blocked into black list. Else not.
|
|
122
|
-
|
|
123
|
-
@param url The URL represent the image. Note this may not be a HTTP URL
|
|
124
|
-
@param error The URL's loading error, from previous `requestImageWithURL:options:context:progress:completed:` completedBlock's error.
|
|
125
|
-
@return Whether to block this url or not. Return YES to mark this URL as failed.
|
|
126
|
-
*/
|
|
127
|
-
- (BOOL)shouldBlockFailedURLWithURL:(nonnull NSURL *)url
|
|
128
|
-
error:(nonnull NSError *)error API_DEPRECATED("Use shouldBlockFailedURLWithURL:error:options:context: instead", macos(10.10, API_TO_BE_DEPRECATED), ios(8.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED));
|
|
129
|
-
|
|
130
|
-
@optional
|
|
131
|
-
/**
|
|
132
|
-
Whether the error from image loader should be marked indeed un-recoverable or not, with associated options and context.
|
|
133
|
-
If this return YES, failed URL which does not using `SDWebImageRetryFailed` will be blocked into black list. Else not.
|
|
134
|
-
|
|
135
|
-
@param url The URL represent the image. Note this may not be a HTTP URL
|
|
136
|
-
@param error The URL's loading error, from previous `requestImageWithURL:options:context:progress:completed:` completedBlock's error.
|
|
137
|
-
@param options A mask to specify options to use for this request
|
|
138
|
-
@param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
|
|
139
|
-
@return Whether to block this url or not. Return YES to mark this URL as failed.
|
|
140
|
-
*/
|
|
141
|
-
- (BOOL)shouldBlockFailedURLWithURL:(nonnull NSURL *)url
|
|
142
|
-
error:(nonnull NSError *)error
|
|
143
|
-
options:(SDWebImageOptions)options
|
|
144
|
-
context:(nullable SDWebImageContext *)context;
|
|
145
|
-
|
|
146
|
-
@end
|