Skip to content

Fix the compatible with SDWebImage 5.7, which have a query cache type #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cartfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
github "SDWebImage/SDWebImage" ~> 5.6
github "SDWebImage/SDWebImage" ~> 5.7
github "ibireme/YYCache" ~> 1.0
github "ibireme/YYImage" ~> 1.0
2 changes: 1 addition & 1 deletion Cartfile.resolved
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
github "SDWebImage/SDWebImage" "5.6.0"
github "SDWebImage/SDWebImage" "5.7.0"
github "ibireme/YYCache" "1.0.4"
github "ibireme/YYImage" "1.0.4"
22 changes: 11 additions & 11 deletions Example/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
PODS:
- Expecta (1.0.6)
- SDWebImage/Core (5.6.0)
- SDWebImageYYPlugin (0.3.0):
- SDWebImage/Core (~> 5.4)
- SDWebImageYYPlugin/YYCache (= 0.3.0)
- SDWebImageYYPlugin/YYImage (= 0.3.0)
- SDWebImageYYPlugin/YYCache (0.3.0):
- SDWebImage/Core (~> 5.4)
- SDWebImage/Core (5.7.0)
- SDWebImageYYPlugin (0.4.0):
- SDWebImage/Core (~> 5.7)
- SDWebImageYYPlugin/YYCache (= 0.4.0)
- SDWebImageYYPlugin/YYImage (= 0.4.0)
- SDWebImageYYPlugin/YYCache (0.4.0):
- SDWebImage/Core (~> 5.7)
- YYCache
- SDWebImageYYPlugin/YYImage (0.3.0):
- SDWebImage/Core (~> 5.4)
- SDWebImageYYPlugin/YYImage (0.4.0):
- SDWebImage/Core (~> 5.7)
- YYImage/Core
- YYCache (1.0.4)
- YYImage/Core (1.0.4)
Expand All @@ -34,8 +34,8 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5
SDWebImage: 21b19f56b4226cdfe3aefe4e6848dc43ed129a86
SDWebImageYYPlugin: f6c1af162fb075efe5918d8caedee1f3d17c197e
SDWebImage: a99471f452bdfa0ca52ddf5b1adf2b61cab1d1eb
SDWebImageYYPlugin: daa0b74897dd769fa63092e60cde49f3719048bc
YYCache: 8105b6638f5e849296c71f331ff83891a4942952
YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54

Expand Down
2 changes: 1 addition & 1 deletion SDWebImageYYPlugin.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ TODO: Add long description of the pod here.
s.source_files = 'SDWebImageYYPlugin/Module/SDWebImageYYPlugin.h'
s.module_map = 'SDWebImageYYPlugin/Module/SDWebImageYYPlugin.modulemap'

s.dependency 'SDWebImage/Core', '~> 5.6'
s.dependency 'SDWebImage/Core', '~> 5.7'

s.subspec 'YYCache' do |ss|
ss.dependency 'YYCache'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,22 +41,29 @@
@implementation YYCache (SDAdditions)

- (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)doneBlock {
return [self queryImageForKey:key options:options context:context cacheType:SDImageCacheTypeAll completion:doneBlock];
}

- (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType completion:(SDImageCacheQueryCompletionBlock)doneBlock {
if (!key) {
if (doneBlock) {
doneBlock(nil, nil, SDImageCacheTypeNone);
}
return nil;
}

id<SDImageTransformer> transformer = context[SDWebImageContextImageTransformer];
if (transformer) {
// grab the transformed disk image if transformer provided
NSString *transformerKey = [transformer transformerKey];
key = SDTransformedKeyForKey(key, transformerKey);
// Invalid cache type
if (queryCacheType == SDImageCacheTypeNone) {
if (doneBlock) {
doneBlock(nil, nil, SDImageCacheTypeNone);
}
return nil;
}

// First check the in-memory cache...
UIImage *image = [self.memoryCache objectForKey:key];
UIImage *image;
if (queryCacheType != SDImageCacheTypeDisk) {
image = [self.memoryCache objectForKey:key];
}

if (image) {
if (options & SDImageCacheDecodeFirstFrameOnly) {
Expand All @@ -79,7 +86,7 @@ @implementation YYCache (SDAdditions)
}
}

BOOL shouldQueryMemoryOnly = (image && !(options & SDImageCacheQueryMemoryData));
BOOL shouldQueryMemoryOnly = (queryCacheType == SDImageCacheTypeMemory) || (image && !(options & SDImageCacheQueryMemoryData));
if (shouldQueryMemoryOnly) {
if (doneBlock) {
doneBlock(image, nil, SDImageCacheTypeMemory);
Expand Down