@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,27 +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
|
-
|
|
11
|
-
/// A protocol represents cancelable operation.
|
|
12
|
-
@protocol SDWebImageOperation <NSObject>
|
|
13
|
-
|
|
14
|
-
/// Cancel the operation
|
|
15
|
-
- (void)cancel;
|
|
16
|
-
|
|
17
|
-
@optional
|
|
18
|
-
|
|
19
|
-
/// Whether the operation has been cancelled.
|
|
20
|
-
@property (nonatomic, assign, readonly, getter=isCancelled) BOOL cancelled;
|
|
21
|
-
|
|
22
|
-
@end
|
|
23
|
-
|
|
24
|
-
/// NSOperation conform to `SDWebImageOperation`.
|
|
25
|
-
@interface NSOperation (SDWebImageOperation) <SDWebImageOperation>
|
|
26
|
-
|
|
27
|
-
@end
|
|
@@ -1,14 +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 "SDWebImageOperation.h"
|
|
10
|
-
|
|
11
|
-
/// NSOperation conform to `SDWebImageOperation`.
|
|
12
|
-
@implementation NSOperation (SDWebImageOperation)
|
|
13
|
-
|
|
14
|
-
@end
|
|
@@ -1,72 +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 "SDWebImageCompat.h"
|
|
11
|
-
#import "SDWebImageDefine.h"
|
|
12
|
-
|
|
13
|
-
@class SDWebImageOptionsResult;
|
|
14
|
-
|
|
15
|
-
typedef SDWebImageOptionsResult * _Nullable(^SDWebImageOptionsProcessorBlock)(NSURL * _Nullable url, SDWebImageOptions options, SDWebImageContext * _Nullable context);
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
The options result contains both options and context.
|
|
19
|
-
*/
|
|
20
|
-
@interface SDWebImageOptionsResult : NSObject
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
WebCache options.
|
|
24
|
-
*/
|
|
25
|
-
@property (nonatomic, assign, readonly) SDWebImageOptions options;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
Context options.
|
|
29
|
-
*/
|
|
30
|
-
@property (nonatomic, copy, readonly, nullable) SDWebImageContext *context;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
Create a new options result.
|
|
34
|
-
|
|
35
|
-
@param options options
|
|
36
|
-
@param context context
|
|
37
|
-
@return The options result contains both options and context.
|
|
38
|
-
*/
|
|
39
|
-
- (nonnull instancetype)initWithOptions:(SDWebImageOptions)options context:(nullable SDWebImageContext *)context;
|
|
40
|
-
|
|
41
|
-
@end
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
This is the protocol for options processor.
|
|
45
|
-
Options processor can be used, to control the final result for individual image request's `SDWebImageOptions` and `SDWebImageContext`
|
|
46
|
-
Implements the protocol to have a global control for each indivadual image request's option.
|
|
47
|
-
*/
|
|
48
|
-
@protocol SDWebImageOptionsProcessor <NSObject>
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
Return the processed options result for specify image URL, with its options and context
|
|
52
|
-
|
|
53
|
-
@param url The URL to the image
|
|
54
|
-
@param options A mask to specify options to use for this request
|
|
55
|
-
@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.
|
|
56
|
-
@return The processed result, contains both options and context
|
|
57
|
-
*/
|
|
58
|
-
- (nullable SDWebImageOptionsResult *)processedResultForURL:(nullable NSURL *)url
|
|
59
|
-
options:(SDWebImageOptions)options
|
|
60
|
-
context:(nullable SDWebImageContext *)context;
|
|
61
|
-
|
|
62
|
-
@end
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
A options processor class with block.
|
|
66
|
-
*/
|
|
67
|
-
@interface SDWebImageOptionsProcessor : NSObject<SDWebImageOptionsProcessor>
|
|
68
|
-
|
|
69
|
-
- (nonnull instancetype)initWithBlock:(nonnull SDWebImageOptionsProcessorBlock)block;
|
|
70
|
-
+ (nonnull instancetype)optionsProcessorWithBlock:(nonnull SDWebImageOptionsProcessorBlock)block;
|
|
71
|
-
|
|
72
|
-
@end
|
|
@@ -1,59 +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 "SDWebImageOptionsProcessor.h"
|
|
10
|
-
|
|
11
|
-
@interface SDWebImageOptionsResult ()
|
|
12
|
-
|
|
13
|
-
@property (nonatomic, assign) SDWebImageOptions options;
|
|
14
|
-
@property (nonatomic, copy, nullable) SDWebImageContext *context;
|
|
15
|
-
|
|
16
|
-
@end
|
|
17
|
-
|
|
18
|
-
@implementation SDWebImageOptionsResult
|
|
19
|
-
|
|
20
|
-
- (instancetype)initWithOptions:(SDWebImageOptions)options context:(SDWebImageContext *)context {
|
|
21
|
-
self = [super init];
|
|
22
|
-
if (self) {
|
|
23
|
-
self.options = options;
|
|
24
|
-
self.context = context;
|
|
25
|
-
}
|
|
26
|
-
return self;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@end
|
|
30
|
-
|
|
31
|
-
@interface SDWebImageOptionsProcessor ()
|
|
32
|
-
|
|
33
|
-
@property (nonatomic, copy, nonnull) SDWebImageOptionsProcessorBlock block;
|
|
34
|
-
|
|
35
|
-
@end
|
|
36
|
-
|
|
37
|
-
@implementation SDWebImageOptionsProcessor
|
|
38
|
-
|
|
39
|
-
- (instancetype)initWithBlock:(SDWebImageOptionsProcessorBlock)block {
|
|
40
|
-
self = [super init];
|
|
41
|
-
if (self) {
|
|
42
|
-
self.block = block;
|
|
43
|
-
}
|
|
44
|
-
return self;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
+ (instancetype)optionsProcessorWithBlock:(SDWebImageOptionsProcessorBlock)block {
|
|
48
|
-
SDWebImageOptionsProcessor *optionsProcessor = [[SDWebImageOptionsProcessor alloc] initWithBlock:block];
|
|
49
|
-
return optionsProcessor;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
- (SDWebImageOptionsResult *)processedResultForURL:(NSURL *)url options:(SDWebImageOptions)options context:(SDWebImageContext *)context {
|
|
53
|
-
if (!self.block) {
|
|
54
|
-
return nil;
|
|
55
|
-
}
|
|
56
|
-
return self.block(url, options, context);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@end
|
|
@@ -1,143 +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 "SDWebImageManager.h"
|
|
11
|
-
|
|
12
|
-
@class SDWebImagePrefetcher;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
A token represents a list of URLs, can be used to cancel the download.
|
|
16
|
-
*/
|
|
17
|
-
@interface SDWebImagePrefetchToken : NSObject <SDWebImageOperation>
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Cancel the current prefetching.
|
|
21
|
-
*/
|
|
22
|
-
- (void)cancel;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
list of URLs of current prefetching.
|
|
26
|
-
*/
|
|
27
|
-
@property (nonatomic, copy, readonly, nullable) NSArray<NSURL *> *urls;
|
|
28
|
-
|
|
29
|
-
@end
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
The prefetcher delegate protocol
|
|
33
|
-
*/
|
|
34
|
-
@protocol SDWebImagePrefetcherDelegate <NSObject>
|
|
35
|
-
|
|
36
|
-
@optional
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Called when an image was prefetched. Which means it's called when one URL from any of prefetching finished.
|
|
40
|
-
*
|
|
41
|
-
* @param imagePrefetcher The current image prefetcher
|
|
42
|
-
* @param imageURL The image url that was prefetched
|
|
43
|
-
* @param finishedCount The total number of images that were prefetched (successful or not)
|
|
44
|
-
* @param totalCount The total number of images that were to be prefetched
|
|
45
|
-
*/
|
|
46
|
-
- (void)imagePrefetcher:(nonnull SDWebImagePrefetcher *)imagePrefetcher didPrefetchURL:(nullable NSURL *)imageURL finishedCount:(NSUInteger)finishedCount totalCount:(NSUInteger)totalCount;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Called when all images are prefetched. Which means it's called when all URLs from all of prefetching finished.
|
|
50
|
-
* @param imagePrefetcher The current image prefetcher
|
|
51
|
-
* @param totalCount The total number of images that were prefetched (whether successful or not)
|
|
52
|
-
* @param skippedCount The total number of images that were skipped
|
|
53
|
-
*/
|
|
54
|
-
- (void)imagePrefetcher:(nonnull SDWebImagePrefetcher *)imagePrefetcher didFinishWithTotalCount:(NSUInteger)totalCount skippedCount:(NSUInteger)skippedCount;
|
|
55
|
-
|
|
56
|
-
@end
|
|
57
|
-
|
|
58
|
-
typedef void(^SDWebImagePrefetcherProgressBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls);
|
|
59
|
-
typedef void(^SDWebImagePrefetcherCompletionBlock)(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls);
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Prefetch some URLs in the cache for future use. Images are downloaded in low priority.
|
|
63
|
-
*/
|
|
64
|
-
@interface SDWebImagePrefetcher : NSObject
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* The web image manager used by prefetcher to prefetch images.
|
|
68
|
-
* @note You can specify a standalone manager and downloader with custom configuration suitable for image prefetching. Such as `currentDownloadCount` or `downloadTimeout`.
|
|
69
|
-
*/
|
|
70
|
-
@property (strong, nonatomic, readonly, nonnull) SDWebImageManager *manager;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Maximum number of URLs to prefetch at the same time. Defaults to 3.
|
|
74
|
-
*/
|
|
75
|
-
@property (nonatomic, assign) NSUInteger maxConcurrentPrefetchCount;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* The options for prefetcher. Defaults to SDWebImageLowPriority.
|
|
79
|
-
*/
|
|
80
|
-
@property (nonatomic, assign) SDWebImageOptions options;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* The context for prefetcher. Defaults to nil.
|
|
84
|
-
*/
|
|
85
|
-
@property (nonatomic, copy, nullable) SDWebImageContext *context;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Queue options for prefetcher when call the progressBlock, completionBlock and delegate methods. Defaults to Main Queue.
|
|
89
|
-
* @note The call is asynchronously to avoid blocking target queue.
|
|
90
|
-
* @note The delegate queue should be set before any prefetching start and may not be changed during prefetching to avoid thread-safe problem.
|
|
91
|
-
*/
|
|
92
|
-
@property (strong, nonatomic, nonnull) dispatch_queue_t delegateQueue;
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* The delegate for the prefetcher. Defaults to nil.
|
|
96
|
-
*/
|
|
97
|
-
@property (weak, nonatomic, nullable) id <SDWebImagePrefetcherDelegate> delegate;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Returns the global shared image prefetcher instance. It use a standalone manager which is different from shared manager.
|
|
101
|
-
*/
|
|
102
|
-
@property (nonatomic, class, readonly, nonnull) SDWebImagePrefetcher *sharedImagePrefetcher;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Allows you to instantiate a prefetcher with any arbitrary image manager.
|
|
106
|
-
*/
|
|
107
|
-
- (nonnull instancetype)initWithImageManager:(nonnull SDWebImageManager *)manager NS_DESIGNATED_INITIALIZER;
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property.
|
|
111
|
-
* Prefetching is separate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls.
|
|
112
|
-
* Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch.
|
|
113
|
-
*
|
|
114
|
-
* @param urls list of URLs to prefetch
|
|
115
|
-
* @return the token to cancel the current prefetching.
|
|
116
|
-
*/
|
|
117
|
-
- (nullable SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray<NSURL *> *)urls;
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Assign list of URLs to let SDWebImagePrefetcher to queue the prefetching. It based on the image manager so the image may from the cache and network according to the `options` property.
|
|
121
|
-
* Prefetching is separate to each other, which means the progressBlock and completionBlock you provide is bind to the prefetching for the list of urls.
|
|
122
|
-
* Attention that call this will not cancel previous fetched urls. You should keep the token return by this to cancel or cancel all the prefetch.
|
|
123
|
-
*
|
|
124
|
-
* @param urls list of URLs to prefetch
|
|
125
|
-
* @param progressBlock block to be called when progress updates;
|
|
126
|
-
* first parameter is the number of completed (successful or not) requests,
|
|
127
|
-
* second parameter is the total number of images originally requested to be prefetched
|
|
128
|
-
* @param completionBlock block to be called when the current prefetching is completed
|
|
129
|
-
* first param is the number of completed (successful or not) requests,
|
|
130
|
-
* second parameter is the number of skipped requests
|
|
131
|
-
* @return the token to cancel the current prefetching.
|
|
132
|
-
*/
|
|
133
|
-
- (nullable SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray<NSURL *> *)urls
|
|
134
|
-
progress:(nullable SDWebImagePrefetcherProgressBlock)progressBlock
|
|
135
|
-
completed:(nullable SDWebImagePrefetcherCompletionBlock)completionBlock;
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Remove and cancel all the prefeching for the prefetcher.
|
|
139
|
-
*/
|
|
140
|
-
- (void)cancelPrefetching;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
@end
|
|
@@ -1,303 +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 "SDWebImagePrefetcher.h"
|
|
10
|
-
#import "SDAsyncBlockOperation.h"
|
|
11
|
-
#import "SDInternalMacros.h"
|
|
12
|
-
#import <stdatomic.h>
|
|
13
|
-
|
|
14
|
-
@interface SDWebImagePrefetchToken () {
|
|
15
|
-
@public
|
|
16
|
-
// Though current implementation, `SDWebImageManager` completion block is always on main queue. But however, there is no guarantee in docs. And we may introduce config to specify custom queue in the future.
|
|
17
|
-
// These value are just used as incrementing counter, keep thread-safe using memory_order_relaxed for performance.
|
|
18
|
-
atomic_ulong _skippedCount;
|
|
19
|
-
atomic_ulong _finishedCount;
|
|
20
|
-
atomic_flag _isAllFinished;
|
|
21
|
-
|
|
22
|
-
unsigned long _totalCount;
|
|
23
|
-
|
|
24
|
-
// Used to ensure NSPointerArray thread safe
|
|
25
|
-
SD_LOCK_DECLARE(_prefetchOperationsLock);
|
|
26
|
-
SD_LOCK_DECLARE(_loadOperationsLock);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@property (nonatomic, copy, readwrite) NSArray<NSURL *> *urls;
|
|
30
|
-
@property (nonatomic, strong) NSPointerArray *loadOperations;
|
|
31
|
-
@property (nonatomic, strong) NSPointerArray *prefetchOperations;
|
|
32
|
-
@property (nonatomic, weak) SDWebImagePrefetcher *prefetcher;
|
|
33
|
-
@property (nonatomic, copy, nullable) SDWebImagePrefetcherCompletionBlock completionBlock;
|
|
34
|
-
@property (nonatomic, copy, nullable) SDWebImagePrefetcherProgressBlock progressBlock;
|
|
35
|
-
|
|
36
|
-
@end
|
|
37
|
-
|
|
38
|
-
@interface SDWebImagePrefetcher ()
|
|
39
|
-
|
|
40
|
-
@property (strong, nonatomic, nonnull) SDWebImageManager *manager;
|
|
41
|
-
@property (strong, atomic, nonnull) NSMutableSet<SDWebImagePrefetchToken *> *runningTokens;
|
|
42
|
-
@property (strong, nonatomic, nonnull) NSOperationQueue *prefetchQueue;
|
|
43
|
-
|
|
44
|
-
@end
|
|
45
|
-
|
|
46
|
-
@implementation SDWebImagePrefetcher
|
|
47
|
-
|
|
48
|
-
+ (nonnull instancetype)sharedImagePrefetcher {
|
|
49
|
-
static dispatch_once_t once;
|
|
50
|
-
static id instance;
|
|
51
|
-
dispatch_once(&once, ^{
|
|
52
|
-
instance = [self new];
|
|
53
|
-
});
|
|
54
|
-
return instance;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
- (nonnull instancetype)init {
|
|
58
|
-
return [self initWithImageManager:[SDWebImageManager new]];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
- (nonnull instancetype)initWithImageManager:(SDWebImageManager *)manager {
|
|
62
|
-
if ((self = [super init])) {
|
|
63
|
-
_manager = manager;
|
|
64
|
-
_runningTokens = [NSMutableSet set];
|
|
65
|
-
_options = SDWebImageLowPriority;
|
|
66
|
-
_delegateQueue = dispatch_get_main_queue();
|
|
67
|
-
_prefetchQueue = [NSOperationQueue new];
|
|
68
|
-
self.maxConcurrentPrefetchCount = 3;
|
|
69
|
-
}
|
|
70
|
-
return self;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
- (void)setMaxConcurrentPrefetchCount:(NSUInteger)maxConcurrentPrefetchCount {
|
|
74
|
-
self.prefetchQueue.maxConcurrentOperationCount = maxConcurrentPrefetchCount;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
- (NSUInteger)maxConcurrentPrefetchCount {
|
|
78
|
-
return self.prefetchQueue.maxConcurrentOperationCount;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
#pragma mark - Prefetch
|
|
82
|
-
- (nullable SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray<NSURL *> *)urls {
|
|
83
|
-
return [self prefetchURLs:urls progress:nil completed:nil];
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
- (nullable SDWebImagePrefetchToken *)prefetchURLs:(nullable NSArray<NSURL *> *)urls
|
|
87
|
-
progress:(nullable SDWebImagePrefetcherProgressBlock)progressBlock
|
|
88
|
-
completed:(nullable SDWebImagePrefetcherCompletionBlock)completionBlock {
|
|
89
|
-
if (!urls || urls.count == 0) {
|
|
90
|
-
if (completionBlock) {
|
|
91
|
-
completionBlock(0, 0);
|
|
92
|
-
}
|
|
93
|
-
return nil;
|
|
94
|
-
}
|
|
95
|
-
SDWebImagePrefetchToken *token = [SDWebImagePrefetchToken new];
|
|
96
|
-
token.prefetcher = self;
|
|
97
|
-
token.urls = urls;
|
|
98
|
-
token->_skippedCount = 0;
|
|
99
|
-
token->_finishedCount = 0;
|
|
100
|
-
token->_totalCount = token.urls.count;
|
|
101
|
-
atomic_flag_clear(&(token->_isAllFinished));
|
|
102
|
-
token.loadOperations = [NSPointerArray weakObjectsPointerArray];
|
|
103
|
-
token.prefetchOperations = [NSPointerArray weakObjectsPointerArray];
|
|
104
|
-
token.progressBlock = progressBlock;
|
|
105
|
-
token.completionBlock = completionBlock;
|
|
106
|
-
[self addRunningToken:token];
|
|
107
|
-
[self startPrefetchWithToken:token];
|
|
108
|
-
|
|
109
|
-
return token;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
- (void)startPrefetchWithToken:(SDWebImagePrefetchToken * _Nonnull)token {
|
|
113
|
-
for (NSURL *url in token.urls) {
|
|
114
|
-
@weakify(self);
|
|
115
|
-
SDAsyncBlockOperation *prefetchOperation = [SDAsyncBlockOperation blockOperationWithBlock:^(SDAsyncBlockOperation * _Nonnull asyncOperation) {
|
|
116
|
-
@strongify(self);
|
|
117
|
-
if (!self || asyncOperation.isCancelled) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
id<SDWebImageOperation> operation = [self.manager loadImageWithURL:url options:self.options context:self.context progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
|
|
121
|
-
@strongify(self);
|
|
122
|
-
if (!self) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
if (!finished) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
atomic_fetch_add_explicit(&(token->_finishedCount), 1, memory_order_relaxed);
|
|
129
|
-
if (error) {
|
|
130
|
-
// Add last failed
|
|
131
|
-
atomic_fetch_add_explicit(&(token->_skippedCount), 1, memory_order_relaxed);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// Current operation finished
|
|
135
|
-
[self callProgressBlockForToken:token imageURL:imageURL];
|
|
136
|
-
|
|
137
|
-
if (atomic_load_explicit(&(token->_finishedCount), memory_order_relaxed) == token->_totalCount) {
|
|
138
|
-
// All finished
|
|
139
|
-
if (!atomic_flag_test_and_set_explicit(&(token->_isAllFinished), memory_order_relaxed)) {
|
|
140
|
-
[self callCompletionBlockForToken:token];
|
|
141
|
-
[self removeRunningToken:token];
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
[asyncOperation complete];
|
|
145
|
-
}];
|
|
146
|
-
NSAssert(operation != nil, @"Operation should not be nil, [SDWebImageManager loadImageWithURL:options:context:progress:completed:] break prefetch logic");
|
|
147
|
-
SD_LOCK(token->_loadOperationsLock);
|
|
148
|
-
[token.loadOperations addPointer:(__bridge void *)operation];
|
|
149
|
-
SD_UNLOCK(token->_loadOperationsLock);
|
|
150
|
-
}];
|
|
151
|
-
SD_LOCK(token->_prefetchOperationsLock);
|
|
152
|
-
[token.prefetchOperations addPointer:(__bridge void *)prefetchOperation];
|
|
153
|
-
SD_UNLOCK(token->_prefetchOperationsLock);
|
|
154
|
-
[self.prefetchQueue addOperation:prefetchOperation];
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
#pragma mark - Cancel
|
|
159
|
-
- (void)cancelPrefetching {
|
|
160
|
-
@synchronized(self.runningTokens) {
|
|
161
|
-
NSSet<SDWebImagePrefetchToken *> *copiedTokens = [self.runningTokens copy];
|
|
162
|
-
[copiedTokens makeObjectsPerformSelector:@selector(cancel)];
|
|
163
|
-
[self.runningTokens removeAllObjects];
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
- (void)callProgressBlockForToken:(SDWebImagePrefetchToken *)token imageURL:(NSURL *)url {
|
|
168
|
-
if (!token) {
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
BOOL shouldCallDelegate = [self.delegate respondsToSelector:@selector(imagePrefetcher:didPrefetchURL:finishedCount:totalCount:)];
|
|
172
|
-
NSUInteger tokenFinishedCount = [self tokenFinishedCount];
|
|
173
|
-
NSUInteger tokenTotalCount = [self tokenTotalCount];
|
|
174
|
-
NSUInteger finishedCount = atomic_load_explicit(&(token->_finishedCount), memory_order_relaxed);
|
|
175
|
-
NSUInteger totalCount = token->_totalCount;
|
|
176
|
-
dispatch_async(self.delegateQueue, ^{
|
|
177
|
-
if (shouldCallDelegate) {
|
|
178
|
-
[self.delegate imagePrefetcher:self didPrefetchURL:url finishedCount:tokenFinishedCount totalCount:tokenTotalCount];
|
|
179
|
-
}
|
|
180
|
-
if (token.progressBlock) {
|
|
181
|
-
token.progressBlock(finishedCount, totalCount);
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
- (void)callCompletionBlockForToken:(SDWebImagePrefetchToken *)token {
|
|
187
|
-
if (!token) {
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
BOOL shoulCallDelegate = [self.delegate respondsToSelector:@selector(imagePrefetcher:didFinishWithTotalCount:skippedCount:)] && ([self countOfRunningTokens] == 1); // last one
|
|
191
|
-
NSUInteger tokenTotalCount = [self tokenTotalCount];
|
|
192
|
-
NSUInteger tokenSkippedCount = [self tokenSkippedCount];
|
|
193
|
-
NSUInteger finishedCount = atomic_load_explicit(&(token->_finishedCount), memory_order_relaxed);
|
|
194
|
-
NSUInteger skippedCount = atomic_load_explicit(&(token->_skippedCount), memory_order_relaxed);
|
|
195
|
-
dispatch_async(self.delegateQueue, ^{
|
|
196
|
-
if (shoulCallDelegate) {
|
|
197
|
-
[self.delegate imagePrefetcher:self didFinishWithTotalCount:tokenTotalCount skippedCount:tokenSkippedCount];
|
|
198
|
-
}
|
|
199
|
-
if (token.completionBlock) {
|
|
200
|
-
token.completionBlock(finishedCount, skippedCount);
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
#pragma mark - Helper
|
|
206
|
-
- (NSUInteger)tokenTotalCount {
|
|
207
|
-
NSUInteger tokenTotalCount = 0;
|
|
208
|
-
@synchronized (self.runningTokens) {
|
|
209
|
-
for (SDWebImagePrefetchToken *token in self.runningTokens) {
|
|
210
|
-
tokenTotalCount += token->_totalCount;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return tokenTotalCount;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
- (NSUInteger)tokenSkippedCount {
|
|
217
|
-
NSUInteger tokenSkippedCount = 0;
|
|
218
|
-
@synchronized (self.runningTokens) {
|
|
219
|
-
for (SDWebImagePrefetchToken *token in self.runningTokens) {
|
|
220
|
-
tokenSkippedCount += atomic_load_explicit(&(token->_skippedCount), memory_order_relaxed);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
return tokenSkippedCount;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
- (NSUInteger)tokenFinishedCount {
|
|
227
|
-
NSUInteger tokenFinishedCount = 0;
|
|
228
|
-
@synchronized (self.runningTokens) {
|
|
229
|
-
for (SDWebImagePrefetchToken *token in self.runningTokens) {
|
|
230
|
-
tokenFinishedCount += atomic_load_explicit(&(token->_finishedCount), memory_order_relaxed);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return tokenFinishedCount;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
- (void)addRunningToken:(SDWebImagePrefetchToken *)token {
|
|
237
|
-
if (!token) {
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
@synchronized (self.runningTokens) {
|
|
241
|
-
[self.runningTokens addObject:token];
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
- (void)removeRunningToken:(SDWebImagePrefetchToken *)token {
|
|
246
|
-
if (!token) {
|
|
247
|
-
return;
|
|
248
|
-
}
|
|
249
|
-
@synchronized (self.runningTokens) {
|
|
250
|
-
[self.runningTokens removeObject:token];
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
- (NSUInteger)countOfRunningTokens {
|
|
255
|
-
NSUInteger count = 0;
|
|
256
|
-
@synchronized (self.runningTokens) {
|
|
257
|
-
count = self.runningTokens.count;
|
|
258
|
-
}
|
|
259
|
-
return count;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
@end
|
|
263
|
-
|
|
264
|
-
@implementation SDWebImagePrefetchToken
|
|
265
|
-
|
|
266
|
-
- (instancetype)init {
|
|
267
|
-
self = [super init];
|
|
268
|
-
if (self) {
|
|
269
|
-
SD_LOCK_INIT(_prefetchOperationsLock);
|
|
270
|
-
SD_LOCK_INIT(_loadOperationsLock);
|
|
271
|
-
}
|
|
272
|
-
return self;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
- (void)cancel {
|
|
276
|
-
SD_LOCK(_prefetchOperationsLock);
|
|
277
|
-
[self.prefetchOperations compact];
|
|
278
|
-
for (id operation in self.prefetchOperations) {
|
|
279
|
-
id<SDWebImageOperation> strongOperation = operation;
|
|
280
|
-
if (strongOperation) {
|
|
281
|
-
[strongOperation cancel];
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
self.prefetchOperations.count = 0;
|
|
285
|
-
SD_UNLOCK(_prefetchOperationsLock);
|
|
286
|
-
|
|
287
|
-
SD_LOCK(_loadOperationsLock);
|
|
288
|
-
[self.loadOperations compact];
|
|
289
|
-
for (id operation in self.loadOperations) {
|
|
290
|
-
id<SDWebImageOperation> strongOperation = operation;
|
|
291
|
-
if (strongOperation) {
|
|
292
|
-
[strongOperation cancel];
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
self.loadOperations.count = 0;
|
|
296
|
-
SD_UNLOCK(_loadOperationsLock);
|
|
297
|
-
|
|
298
|
-
self.completionBlock = nil;
|
|
299
|
-
self.progressBlock = nil;
|
|
300
|
-
[self.prefetcher removeRunningToken:self];
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
@end
|