Skip to content

Commit 8b9361c

Browse files
authored
Merge pull request #13 from SDWebImage/rename_loader_without_web
Remove the SDWebImage prefix into the SDImage prefix, match the 5.0 version naming
2 parents 9af5988 + 95c9323 commit 8b9361c

18 files changed

+109
-75
lines changed

Example/Podfile.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ EXTERNAL SOURCES:
2020
SPEC CHECKSUMS:
2121
Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5
2222
SDWebImage: fb387001955223213dde14bc08c8b73f371f8d8f
23-
SDWebImagePhotosPlugin: 7577bd9f01f16c2f3b35fd81109b0612c739c81a
23+
SDWebImagePhotosPlugin: 0055105db4af4a89fb2c977b8b0e15291be4ee3f
2424

2525
PODFILE CHECKSUM: 60756e45d1da564a14e0e1964ffd639deadc2855
2626

Example/SDWebImagePhotosPlugin.xcodeproj/project.pbxproj

+8
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
32893E66213EB679007FCEC7 /* TestImageStatic.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = TestImageStatic.webp; sourceTree = "<group>"; };
8686
32893E67213EB679007FCEC7 /* TestImageAnimated.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = TestImageAnimated.webp; sourceTree = "<group>"; };
8787
32893E68213EB679007FCEC7 /* TestImage.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TestImage.gif; sourceTree = "<group>"; };
88+
32C044142389252D00FEE55E /* SDWebImagePhotosPlugin_Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SDWebImagePhotosPlugin_Example.entitlements; sourceTree = "<group>"; };
8889
32DE261920AAE1D200DF5574 /* DetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DetailViewController.xib; sourceTree = "<group>"; };
8990
32DE261A20AAE1D200DF5574 /* MasterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MasterViewController.xib; sourceTree = "<group>"; };
9091
5D78672539E09912614EBC63 /* Pods_SDWebImagePhotosPlugin_Example_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImagePhotosPlugin_Example_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -187,6 +188,7 @@
187188
6003F581195388D10070C39A = {
188189
isa = PBXGroup;
189190
children = (
191+
32C044142389252D00FEE55E /* SDWebImagePhotosPlugin_Example.entitlements */,
190192
60FF7A9C1954A5C5007DD14C /* Podspec Metadata */,
191193
6003F593195388D20070C39A /* Example for SDWebImagePhotosPlugin */,
192194
6003F5B5195388D20070C39A /* Tests */,
@@ -798,13 +800,16 @@
798800
baseConfigurationReference = E572DC592529A86343DC9C10 /* Pods-SDWebImagePhotosPlugin_Example.debug.xcconfig */;
799801
buildSettings = {
800802
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
803+
CODE_SIGN_ENTITLEMENTS = SDWebImagePhotosPlugin_Example.entitlements;
804+
DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES;
801805
DEVELOPMENT_TEAM = H7W77QXGX2;
802806
GCC_PRECOMPILE_PREFIX_HEADER = YES;
803807
GCC_PREFIX_HEADER = "SDWebImagePhotosPlugin/SDWebImagePhotosPlugin-Prefix.pch";
804808
INFOPLIST_FILE = "SDWebImagePhotosPlugin/SDWebImagePhotosPlugin-Info.plist";
805809
MODULE_NAME = ExampleApp;
806810
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
807811
PRODUCT_NAME = "$(TARGET_NAME)";
812+
SUPPORTS_MACCATALYST = YES;
808813
WRAPPER_EXTENSION = app;
809814
};
810815
name = Debug;
@@ -814,13 +819,16 @@
814819
baseConfigurationReference = 879A5B78D1F240E180B5A79A /* Pods-SDWebImagePhotosPlugin_Example.release.xcconfig */;
815820
buildSettings = {
816821
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
822+
CODE_SIGN_ENTITLEMENTS = SDWebImagePhotosPlugin_Example.entitlements;
823+
DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES;
817824
DEVELOPMENT_TEAM = H7W77QXGX2;
818825
GCC_PRECOMPILE_PREFIX_HEADER = YES;
819826
GCC_PREFIX_HEADER = "SDWebImagePhotosPlugin/SDWebImagePhotosPlugin-Prefix.pch";
820827
INFOPLIST_FILE = "SDWebImagePhotosPlugin/SDWebImagePhotosPlugin-Info.plist";
821828
MODULE_NAME = ExampleApp;
822829
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
823830
PRODUCT_NAME = "$(TARGET_NAME)";
831+
SUPPORTS_MACCATALYST = YES;
824832
WRAPPER_EXTENSION = app;
825833
};
826834
name = Release;

Example/SDWebImagePhotosPlugin/MasterViewController.m

+3-3
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibB
5555
action:@selector(reloadData)];
5656
self.objects = [NSMutableArray array];
5757
// Setup Photos Loader
58-
SDWebImageManager.defaultImageLoader = [SDWebImagePhotosLoader sharedLoader];
58+
SDWebImageManager.defaultImageLoader = [SDImagePhotosLoader sharedLoader];
5959
PHImageRequestOptions *options = [PHImageRequestOptions new];
6060
options.sd_targetSize = CGSizeMake(500, 500); // The original image size may be 4K, we only query the max view size :)
61-
SDWebImagePhotosLoader.sharedLoader.imageRequestOptions = options;
61+
SDImagePhotosLoader.sharedLoader.imageRequestOptions = options;
6262
// Request Video Asset Poster as well
63-
SDWebImagePhotosLoader.sharedLoader.requestImageAssetOnly = NO;
63+
SDImagePhotosLoader.sharedLoader.requestImageAssetOnly = NO;
6464
}
6565
return self;
6666
}

Example/SDWebImagePhotosPlugin_Example macOS/ViewController.m

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ - (instancetype)initWithCoder:(NSCoder *)coder {
2727
if (self) {
2828
self.objects = [NSMutableArray array];
2929
// Setup Photos Loader
30-
SDWebImageManager.defaultImageLoader = [SDWebImagePhotosLoader sharedLoader];
30+
SDWebImageManager.defaultImageLoader = [SDImagePhotosLoader sharedLoader];
3131
PHImageRequestOptions *options = [PHImageRequestOptions new];
3232
options.sd_targetSize = CGSizeMake(500, 500); // The original image size may be 4K, we only query the max view size :)
33-
SDWebImagePhotosLoader.sharedLoader.imageRequestOptions = options;
33+
SDImagePhotosLoader.sharedLoader.imageRequestOptions = options;
3434

3535
// Reload
3636
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuItemDidTap:) name:NSMenuDidSendActionNotification object:nil];
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>com.apple.security.app-sandbox</key>
6+
<true/>
7+
<key>com.apple.security.network.client</key>
8+
<true/>
9+
<key>com.apple.security.personal-information.photos-library</key>
10+
<true/>
11+
</dict>
12+
</plist>

Example/Tests/SDPhotosPluginTests.m

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ + (void)setUp {
2828

2929
- (void)testUIImageViewSetImageWithAsset {
3030
XCTestExpectation *expectation = [self expectationWithDescription:@"UIImageView setImageWithAsset"];
31-
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDWebImagePhotosLoader.sharedLoader];
31+
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDImagePhotosLoader.sharedLoader];
3232
PHAsset *asset = [self smartAlbumAssets].firstObject;
3333
expect(asset).notTo.beNil();
3434
NSURL *originalImageURL = [NSURL sd_URLWithAsset:asset];
@@ -51,7 +51,7 @@ - (void)testUIImageViewSetImageWithAsset {
5151

5252
- (void)testUIImageViewSetImageWithAssetLocalIdentifier {
5353
XCTestExpectation *expectation = [self expectationWithDescription:@"UIImageView setImageWithAssetLocalIdentifier"];
54-
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDWebImagePhotosLoader.sharedLoader];
54+
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDImagePhotosLoader.sharedLoader];
5555
NSString *localIdentifier = [self smartAlbumAssets].firstObject.localIdentifier;
5656
expect(localIdentifier).notTo.beNil();
5757
NSURL *originalImageURL = [NSURL sd_URLWithAssetLocalIdentifier:localIdentifier];
@@ -87,7 +87,7 @@ - (void)testUIImageViewSetImageWithGIFAsset {
8787

8888
dispatch_async(dispatch_get_main_queue(), ^{
8989
// Query the GIF image with localIdentifier
90-
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDWebImagePhotosLoader.sharedLoader];
90+
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDImagePhotosLoader.sharedLoader];
9191
NSURL *originalImageURL = [NSURL sd_URLWithAssetLocalIdentifier:localIdentifier];
9292

9393
UIImageView *imageView = [[UIImageView alloc] init];

README.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ You can create custom manager for temporary usage. When you use custom manager,
6464

6565
```objectivec
6666
// Assign loader to custom manager
67-
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDWebImagePhotosLoader.sharedLoader];
67+
SDWebImageManager *manager = [[SDWebImageManager alloc] initWithCache:SDImageCache.sharedImageCache loader:SDImagePhotosLoader.sharedLoader];
6868
```
6969
7070
+ Swift
7171
7272
```swift
7373
// Assign loader to custom manager
74-
let manager = SDWebImageManager(cache: SDImageCache.shared, loader: SDWebImagePhotosLoader.shared)
74+
let manager = SDWebImageManager(cache: SDImageCache.shared, loader: SDImagePhotosLoader.shared)
7575
```
7676

7777
#### Use loaders manager (globally)
@@ -81,7 +81,7 @@ You can replace the default manager's loader implementation using [loaders manag
8181

8282
```objectivec
8383
// Supports HTTP URL as well as Photos URL globally
84-
SDImageLoadersManager.sharedManager.loaders = @[SDWebImageDownloader.sharedDownloader, SDWebImagePhotosLoader.sharedLoader];
84+
SDImageLoadersManager.sharedManager.loaders = @[SDWebImageDownloader.sharedDownloader, SDImagePhotosLoader.sharedLoader];
8585
// Replace default manager's loader implementation
8686
SDWebImageManager.defaultImageLoader = SDImageLoadersManager.sharedManager;
8787
```
@@ -90,7 +90,7 @@ SDWebImageManager.defaultImageLoader = SDImageLoadersManager.sharedManager;
9090

9191
```swift
9292
// Supports HTTP URL as well as Photos URL globally
93-
SDImageLoadersManager.shared.loaders = [SDWebImageDownloader.shared, SDWebImagePhotosLoader.shared]
93+
SDImageLoadersManager.shared.loaders = [SDWebImageDownloader.shared, SDImagePhotosLoader.shared]
9494
// Replace default manager's loader implementation
9595
SDWebImageManager.defaultImageLoader = SDImageLoadersManager.shared
9696
```
@@ -136,13 +136,13 @@ SDWebImagePhotosPlugin supports to load Video Asset poster as well. By default w
136136
+ Objective-C
137137

138138
```objectivec
139-
SDWebImagePhotosLoader.sharedLoader.requestImageAssetOnly = NO;
139+
SDImagePhotosLoader.sharedLoader.requestImageAssetOnly = NO;
140140
```
141141

142142
+ Swift
143143

144144
```swift
145-
SDWebImagePhotosLoader.shared.requestImageAssetOnly = false
145+
SDImagePhotosLoader.shared.requestImageAssetOnly = false
146146
```
147147

148148
Then just request the PHAssets or using the fetch options, which the media type is `.video`.
@@ -157,7 +157,7 @@ To specify options like `PHFetchOptions` or `PHImageRequestOptions` for Photos L
157157
// ignore iCloud Shared Album (`localIdentifier` Photos URL only)
158158
PHFetchOptions *fetchOptions = [PHFetchOptions new];
159159
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"sourceType != %d", PHAssetSourceTypeCloudShared];
160-
SDWebImagePhotosLoader.sharedLoader.fetchOptions = fetchOptions;
160+
SDImagePhotosLoader.sharedLoader.fetchOptions = fetchOptions;
161161

162162
// request-level options
163163
// allows iCloud Photos Library
@@ -173,7 +173,7 @@ requestOptions.networkAccessAllowed = YES;
173173
// ignore iCloud Shared Album (`localIdentifier` Photos URL only)
174174
let fetchOptions = PHFetchOptions()
175175
fetchOptions.predicate = NSPredicate(format: "sourceType != %d", PHAssetSourceType.typeCloudShared.rawValue)
176-
SDWebImagePhotosLoader.shared.fetchOptions = fetchOptions
176+
SDImagePhotosLoader.shared.fetchOptions = fetchOptions
177177
178178
// request-level options
179179
// allows iCloud Photos Library
@@ -192,7 +192,7 @@ imageView.sd_setImage(with: photosURL, placeholderImage: nil, context:[.photosIm
192192

193193
The Photos taken by iPhone's Camera, its pixel size may be really large (4K+). So if you want to load large Photos Library assets for rendering, you'd better specify target size with a limited size (like you render imageView's size).
194194

195-
By default, we query the target size matching the original image pixel size (See: `SDWebImagePhotosLoaderPixelSize`), which may consume much memory on iOS device.
195+
By default, we query the target size matching the original image pixel size (See: `SDWebImagePhotosPixelSize`), which may consume much memory on iOS device.
196196

197197
## Demo
198198

SDWebImagePhotosPlugin.podspec

+5
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ This is a SDWebImage loader plugin to support Apple's Photos framework image ass
2828

2929
s.source_files = 'SDWebImagePhotosPlugin/Classes/**/*', 'SDWebImagePhotosPlugin/Module/SDWebImagePhotosPlugin.h'
3030
s.module_map = 'SDWebImagePhotosPlugin/Module/SDWebImagePhotosPlugin.modulemap'
31+
32+
s.pod_target_xcconfig = {
33+
'SUPPORTS_MACCATALYST' => 'YES',
34+
'DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER' => 'NO'
35+
}
3136

3237
s.frameworks = 'Photos'
3338
s.dependency 'SDWebImage/Core', '~> 5.0'

0 commit comments

Comments
 (0)