Merged SDWebImage iOS static + SDWebImage watchOS static targets into SDWebImage static target (supports all platforms)
Created dedicated SDWebImageMapKit target
All this is done for:
- ability to install via Carthage without MapKit dependency now we generate SDWebImage.framework and SDWebImageMapKit.framework so the users can choose to link against core or core+MapKit.
- simpler management of targets (no need to duplicate effort).
Replacement for #2078
Merged SDWebImage iOS + SDWebImage OSX + SDWebImage tvOS + SDWebImage watchOS targets into SDWebImage target (supports all platforms)
Merged SDWebImage iOS static + SDWebImage watchOS static targets into SDWebImage static target (supports all platforms)
Created dedicated SDWebImageMapKit target
All this is done for:
- ability to install via Carthage without MapKit dependency now we generate SDWebImage.framework and SDWebImageMapKit.framework so the users can choose to link against core or core+MapKit.
- simpler management of targets (no need to duplicate effort).
Replacement for #2078
- move the webp component + the libwebp dependency to SDWebImage/SDWebImageWebPCoder (including tests and demo)
- Xcode 9.4
- instead of directly linking the Demos to the frameworks, using CocoaPods (`Examples/Podfile`). This allows using SDWebImage/SDWebImageWebPCoder into our examples so we keep the WebP demos
- demos code cleanup and warnings resolved
- all links from docs (README, Migration guide, CHANGELOG) are full links, so they work even from external pages (i.e. https://cocoapods.org/pods/SDWebImage).
- added "Additional modules" section to README
Deprecate `createNewSessionWithConfiguration`, which make downloader not sync with URLSession. If user need to specify sharedDownloader config, just modify the defaultDownloaderConfig instead.
* 'master' of https://github.com/rs/SDWebImage:
Bumped version to 4.3.3
Add cacheKeyFilter to allow user provide modified version of data when storing the disk cache in SDWebImageManager
# Conflicts:
# SDWebImage/SDWebImageManager.h
* 'master' of https://github.com/rs/SDWebImage:
Bumped version to 4.3.2
Follow Apple's doc, add NSOperation only after all configuration done.
Update the comments
Fix that iOS 8 NSURLSessionTaskPriorityHigh symbol not defined in Foundation framework and cause crash
* 'master' of https://github.com/rs/SDWebImage:
Bumped version to 4.3.1
update CHANGELOG
Create a subclass of NSCache using a weak cache. Only remove the cache when memory warning and sync back the alive instance from weak cache into cache.
# Conflicts:
# SDWebImage/SDImageCache.m
* 'master' of https://github.com/rs/SDWebImage:
Fix CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warning
Disable travis-ci email notification
Fix prefetcher test to first clear the disk cache, and manager test to only fulfill the finished one
Improve the travis-ci to not clean the build for dynamic framework to speed up the demo build
Create a subclass of NSBitmapImageRep to fix the GIF frame duration issue on macOS
Use lock instead of barrier queue to keep callbacks block thread-safe
Decode the image in the operation level's queue instead of URLSession delegate queue. Because URLSession delegate queue is a barrier queue and shared between different operations
Expose the read write to FLAnimatedImage associate to the UIImage to allow advanced feature like placeholder
Fix that SDImageCacheQueryDataWhenInMemory should response cacheType to memory cache when the in-memory cache hit (#2218)
Update the docs
Improvement download operation for priority and some protect (#2208)
Update the readme about macOS minimum deployment target version
Fix the macOS wrong minimum deployment target version to 10.9. And also fix the warning on Xcode 9 by enable more warning options
# Conflicts:
# SDWebImage.podspec
# SDWebImage.xcodeproj/project.pbxproj
# SDWebImage/SDImageCache.m
# SDWebImage/SDWebImageDownloaderOperation.m
# SDWebImage/SDWebImageFrame.h
* 'master' of https://github.com/rs/SDWebImage:
Bumped version to 4.3.0
update CHANGELOG
Update the readme
Update the readme and issue template
Use a lock to ensure headers mutable dictionary thread-safe
Do not hard-code cache policy. Use SDWebImageDownloaderUseNSURLCache to check
Use the correct way to specify cancel if the response status code is invalid.
Ensure all the session delegate completionHandler called. Fix the leak when response error code below iOS 10
Fix the issue that prefetcher will cause stack overflow is the input urls list is huge because of recursion function call
Update the comments for image transition
Expose the associate FLAnimatedImage to user for advanced usage. Update the comments
* 'master' of https://github.com/rs/SDWebImage:
Update the comments and a little enhancement for FLAnimatedImageView Category
Use a dispatch semaphore to keep thread safe for downloader because it need the hold cancel and add procedure be thread-safe
Add the current image/alternateImage url for NSButton category. A little code refactoring
Update macOS demo to add a clear cache button using NSButton category
Fix that reset alternateImage cancel the image load operation for NSButton+WebCache
Add WebCache category for NSButton on macOS
A little enhancement to avoid block capture the heap object
Use a internal method to avoid thread-safe issue for file manager. Remove that checkIOQueue and add sync version exist API
Add the image transition argument for all UIView+WebCache, make this easy for user to do some fade transition. It also reuse the current setImageBlock and make it easy to customize
# Conflicts:
# SDWebImage.xcodeproj/project.pbxproj
# SDWebImage/SDImageCache.h
# SDWebImage/SDImageCache.m
# SDWebImage/UIView+WebCache.h
# SDWebImage/UIView+WebCache.m
# WebImage/SDWebImage.h
* Refactor code. Move the C global function to a new SDWebImageCoderHelper class.
1. Create two method for animated image parse. Provide the way to allow animates on macOS
2. Create a new class called SDWebImageFrame to allow abstract usage for animated image
3. Fix EXIF orientation method will crash on iOS 7 because it’s a iOS 8 above API
* Change sd_imageLoopCount to retrieve GIF loop count for NSImage on macOS
* Adopt the refactor code, change our build-in coder with that coder helper method to reduce complexity
* Update the demo project on macOS to show animated WebP
- open the decoding/encoding procedures to the users
- switch from hardcoded decoding/encoding to pluginable decoders/encoders (builtin + user created)
- `SDWebImageCodersManager` is a singleton holding an array of `SDImageCoder` (protocol). Even though a singleton is not necesarily a good pattern, in this case it eliminates dealing with passing this array around
- uses a priority queue behind scenes, which means the latest added coders have priority.
- the priority is crucial when encoding/decoding something, we go through the list and ask each coder if they can handle the current data (see `canDecodeFromData:`, `canEncodeToFormat:`, `canIncrementallyDecodeFromData:`)
- each coder must conform to this protocol `SDImageCoder` describing all the required behavior for a coder
- we provide 3 built-in coders: `SDWebImageImageIOCoder` (for JPEG, PNG, TIFF), `SDWebImageGIFCoder` (for GIF), `SDWebImageWebPCoder` (for WebP and animated WebP)
- the user of SDWebImage can create custom coders by conforming to `SDImageCoder` and adding the coders to `SDWebImageCodersManager`. See `addCoder:` or `removeCoder:` or `coders` getter to get the array
- in order to preserve backwards compatibility, the UIImage categories were preserved, calling the new coders APIs described above