diff --git a/WordPress/Classes/Services/Stories/DisabledVideoOverlay.swift b/WordPress/Classes/Services/Stories/DisabledVideoOverlay.swift new file mode 100644 index 000000000000..2bcdd2cba8e8 --- /dev/null +++ b/WordPress/Classes/Services/Stories/DisabledVideoOverlay.swift @@ -0,0 +1,16 @@ +import UIKit + +/// An overlay for videos that exceed allowed duration +class DisabledVideoOverlay: UIView { + + static let overlayTransparency: CGFloat = 0.8 + + init() { + super.init(frame: .zero) + backgroundColor = .gray.withAlphaComponent(Self.overlayTransparency) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/WordPress/Classes/System/WordPress-Bridging-Header.h b/WordPress/Classes/System/WordPress-Bridging-Header.h index 0b5fa8a4b27b..1a69dbe6bdff 100644 --- a/WordPress/Classes/System/WordPress-Bridging-Header.h +++ b/WordPress/Classes/System/WordPress-Bridging-Header.h @@ -108,7 +108,6 @@ #import "WPWebViewController.h" #import "WPTabBarController.h" #import "WPUserAgent.h" -#import "WPAndDeviceMediaLibraryDataSource.h" #import "WPLogger.h" #import "WPException.h" diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMediaPickerHelper.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMediaPickerHelper.swift index 8e3197ace36a..dce9c93a9325 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMediaPickerHelper.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMediaPickerHelper.swift @@ -85,7 +85,6 @@ class GutenbergMediaPickerHelper: NSObject { picker.selectionActionTitle = Constants.mediaPickerInsertText picker.mediaPicker.options = mediaPickerOptions picker.delegate = self - picker.mediaPicker.registerClass(forReusableCellOverlayViews: DisabledVideoOverlay.self) picker.mediaPicker.registerClass(forCustomHeaderView: DeviceMediaPermissionsHeader.self) picker.previewActionTitle = NSLocalizedString("Edit %@", comment: "Button that displays the media editor to the user") diff --git a/WordPress/Classes/ViewRelated/Media/MediaLibraryPicker.swift b/WordPress/Classes/ViewRelated/Media/MediaLibraryPicker.swift deleted file mode 100644 index 7443086d038d..000000000000 --- a/WordPress/Classes/ViewRelated/Media/MediaLibraryPicker.swift +++ /dev/null @@ -1,46 +0,0 @@ -import WPMediaPicker -import MobileCoreServices -import CoreGraphics -import Photos -import UniformTypeIdentifiers - -/// Encapsulates launching and customization of a media picker to import media from the Photos Library -final class MediaLibraryPicker: NSObject { - private let dataSource = WPPHAssetDataSource() - - weak var delegate: WPMediaPickerViewControllerDelegate? - private var blog: Blog? - - func presentPicker(origin: UIViewController, blog: Blog) { - self.blog = blog - let options = WPMediaPickerOptions() - options.showMostRecentFirst = true - options.filter = [.all] - options.allowCaptureOfMedia = false - options.badgedUTTypes = [UTType.gif.identifier] - options.preferredStatusBarStyle = WPStyleGuide.preferredStatusBarStyle - - let picker = WPNavigationMediaPickerViewController(options: options) - picker.dataSource = dataSource - picker.delegate = delegate - picker.mediaPicker.registerClass(forReusableCellOverlayViews: DisabledVideoOverlay.self) - picker.mediaPicker.registerClass(forCustomHeaderView: DeviceMediaPermissionsHeader.self) - - origin.present(picker, animated: true) - } -} - -/// An overlay for videos that exceed allowed duration -class DisabledVideoOverlay: UIView { - - static let overlayTransparency: CGFloat = 0.8 - - init() { - super.init(frame: .zero) - backgroundColor = .gray.withAlphaComponent(Self.overlayTransparency) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } -} diff --git a/WordPress/Classes/ViewRelated/Media/MediaLibraryPickerDataSource.h b/WordPress/Classes/ViewRelated/Media/MediaLibraryPickerDataSource.h index 04036b1ebcab..b15e8156bd88 100644 --- a/WordPress/Classes/ViewRelated/Media/MediaLibraryPickerDataSource.h +++ b/WordPress/Classes/ViewRelated/Media/MediaLibraryPickerDataSource.h @@ -6,6 +6,11 @@ @class Blog; @class AbstractPost; +typedef NS_ENUM(NSUInteger, MediaPickerDataSourceType) { + MediaPickerDataSourceTypeDevice, + MediaPickerDataSourceTypeMediaLibrary +}; + @interface MediaLibraryGroup: NSObject - (nonnull instancetype)initWithBlog:(Blog *_Nonnull)blog; diff --git a/WordPress/Classes/ViewRelated/Media/WPAndDeviceMediaLibraryDataSource.h b/WordPress/Classes/ViewRelated/Media/WPAndDeviceMediaLibraryDataSource.h deleted file mode 100644 index f628fd8af9e7..000000000000 --- a/WordPress/Classes/ViewRelated/Media/WPAndDeviceMediaLibraryDataSource.h +++ /dev/null @@ -1,25 +0,0 @@ -#import -#import - -@class Blog; -@class AbstractPost; - -typedef NS_ENUM(NSUInteger, MediaPickerDataSourceType) { - MediaPickerDataSourceTypeDevice, - MediaPickerDataSourceTypeMediaLibrary -}; - -@interface WPAndDeviceMediaLibraryDataSource : NSObject - -@property (nonatomic) MediaPickerDataSourceType dataSourceType; -@property (nonatomic, readonly, copy) NSString *searchQuery; - -- (instancetype)initWithBlog:(Blog *)blog; -- (instancetype)initWithBlog:(Blog *)blog - initialDataSourceType:(MediaPickerDataSourceType)sourceType; - -- (instancetype)initWithPost:(AbstractPost *)post; -- (instancetype)initWithPost:(AbstractPost *)post - initialDataSourceType:(MediaPickerDataSourceType)sourceType; - -@end diff --git a/WordPress/Classes/ViewRelated/Media/WPAndDeviceMediaLibraryDataSource.m b/WordPress/Classes/ViewRelated/Media/WPAndDeviceMediaLibraryDataSource.m deleted file mode 100644 index 468216dbb8b1..000000000000 --- a/WordPress/Classes/ViewRelated/Media/WPAndDeviceMediaLibraryDataSource.m +++ /dev/null @@ -1,267 +0,0 @@ -#import "WPAndDeviceMediaLibraryDataSource.h" -#import "MediaLibraryPickerDataSource.h" -#import "Blog.h" - -@interface WPAndDeviceMediaLibraryDataSource() - @property (nonatomic, strong) MediaLibraryPickerDataSource *mediaLibraryDataSource; - @property (nonatomic, strong) WPPHAssetDataSource *deviceLibraryDataSource; - @property (nonatomic, strong) id currentDataSource; - @property (nonatomic, strong) NSMutableDictionary *observers; - @property (nonatomic, strong) NSMutableDictionary *groupObservers; - @property (nonatomic, readwrite, copy) NSString *searchQuery; -@end - -@implementation WPAndDeviceMediaLibraryDataSource - -- (instancetype)initWithBlog:(Blog *)blog -{ - return [self initWithBlog:blog - initialDataSourceType:MediaPickerDataSourceTypeDevice]; -} - -- (instancetype)initWithBlog:(Blog *)blog - initialDataSourceType:(MediaPickerDataSourceType)sourceType -{ - self = [super init]; - if (self) { - _mediaLibraryDataSource = [[MediaLibraryPickerDataSource alloc] initWithBlog:blog]; - - [self commonInitWithSourceType:sourceType]; - } - return self; -} - -- (instancetype)initWithPost:(AbstractPost *)post -{ - return [self initWithPost:post - initialDataSourceType:MediaPickerDataSourceTypeDevice]; -} - -- (instancetype)initWithPost:(AbstractPost *)post - initialDataSourceType:(MediaPickerDataSourceType)sourceType -{ - self = [super init]; - if (self) { - _mediaLibraryDataSource = [[MediaLibraryPickerDataSource alloc] initWithPost:post]; - - [self commonInitWithSourceType:sourceType]; - } - return self; -} - -- (void)commonInitWithSourceType:(MediaPickerDataSourceType)sourceType -{ - _deviceLibraryDataSource = [[WPPHAssetDataSource alloc] init]; - - _observers = [[NSMutableDictionary alloc] init]; - _groupObservers = [[NSMutableDictionary alloc] init]; - _searchQuery = @""; - _mediaLibraryDataSource.ignoreSyncErrors = YES; - - [self setDataSourceType:sourceType]; -} - -- (MediaPickerDataSourceType)dataSourceType -{ - return (_currentDataSource == _deviceLibraryDataSource) ? MediaPickerDataSourceTypeDevice : MediaPickerDataSourceTypeMediaLibrary; -} - -- (void)setDataSourceType:(MediaPickerDataSourceType)dataSourceType -{ - switch (dataSourceType) { - case MediaPickerDataSourceTypeDevice: - _currentDataSource = _deviceLibraryDataSource; - break; - case MediaPickerDataSourceTypeMediaLibrary: - _currentDataSource = _mediaLibraryDataSource; - default: - break; - } -} - -- (NSInteger)numberOfGroups -{ - return [self.mediaLibraryDataSource numberOfGroups] + [self.deviceLibraryDataSource numberOfGroups]; -} - --(NSString *)searchQuery -{ - return self.mediaLibraryDataSource.searchQuery; -} - -- (id)groupAtIndex:(NSInteger)index -{ - NSInteger numberOfGroupsInMediaLibrary = [self.mediaLibraryDataSource numberOfGroups]; - if (index < numberOfGroupsInMediaLibrary) { - return [self.mediaLibraryDataSource groupAtIndex:index]; - } else { - return [self.deviceLibraryDataSource groupAtIndex:index - numberOfGroupsInMediaLibrary]; - } - return nil; -} - -- (id)selectedGroup -{ - return [self.currentDataSource selectedGroup]; -} - -- (void)setSelectedGroup:(id)group -{ - if ([group isKindOfClass:[MediaLibraryGroup class]]) { - [self.mediaLibraryDataSource setSelectedGroup:group]; - self.currentDataSource = self.mediaLibraryDataSource; - } else { - [self.deviceLibraryDataSource setSelectedGroup:group]; - self.currentDataSource = self.deviceLibraryDataSource; - } -} - -- (void)searchFor:(NSString *)searchText -{ - [self.mediaLibraryDataSource searchFor:searchText]; -} - -- (void)searchCancelled -{ - [self.mediaLibraryDataSource searchCancelled]; -} - -- (NSInteger)numberOfAssets -{ - return [self.currentDataSource numberOfAssets]; -} - -- (id)mediaAtIndex:(NSInteger)index -{ - return [self.currentDataSource mediaAtIndex:index]; -} - -- (id)mediaWithIdentifier:(NSString *)identifier -{ - if (!identifier) { - return nil; - } - id result = [self.deviceLibraryDataSource mediaWithIdentifier:identifier]; - if (result) { - return result; - } - result = [self.mediaLibraryDataSource mediaWithIdentifier:identifier]; - return result; -} - -- (id)registerChangeObserverBlock:(WPMediaChangesBlock)callback -{ - NSUUID *blockKey = [NSUUID UUID]; - __weak __typeof__(self) weakSelf = self; - id oneKey = [self.deviceLibraryDataSource registerChangeObserverBlock:^(BOOL incrementalChanges, NSIndexSet *removed, NSIndexSet *inserted, NSIndexSet *changed, NSArray> *moved) { - if (weakSelf.currentDataSource == weakSelf.deviceLibraryDataSource) { - if (callback) { - callback(incrementalChanges, removed, inserted, changed, moved); - } - } - }]; - id secondKey = [self.mediaLibraryDataSource registerChangeObserverBlock:^(BOOL incrementalChanges, NSIndexSet *removed, NSIndexSet *inserted, NSIndexSet *changed, NSArray> *moved) { - if (weakSelf.currentDataSource == weakSelf.mediaLibraryDataSource) { - if (callback) { - callback(incrementalChanges, removed, inserted, changed, moved); - } - } - }]; - - self.observers[blockKey] = @[oneKey, secondKey]; - return blockKey; -} - -- (void)unregisterChangeObserver:(id)blockKey -{ - NSArray *keys = self.observers[blockKey]; - if (!keys) { - return; - } - [self.deviceLibraryDataSource unregisterChangeObserver:keys[0]]; - [self.mediaLibraryDataSource unregisterChangeObserver:keys[1]]; -} - --(id)registerGroupChangeObserverBlock:(WPMediaGroupChangesBlock)callback -{ - NSUUID *blockKey = [NSUUID UUID]; - id deviceKey = [self.deviceLibraryDataSource registerGroupChangeObserverBlock:callback]; - id mediaLibraryKey = [self.mediaLibraryDataSource registerGroupChangeObserverBlock:callback]; - self.groupObservers[blockKey] = @[deviceKey, mediaLibraryKey]; - return blockKey; -} - --(void)unregisterGroupChangeObserver:(id)blockKey -{ - NSArray *keys = self.groupObservers[blockKey]; - if (!keys) { - return; - } - [self.deviceLibraryDataSource unregisterGroupChangeObserver:keys[0]]; - [self.mediaLibraryDataSource unregisterGroupChangeObserver:keys[1]]; -} - -- (void)loadDataWithOptions:(WPMediaLoadOptions)options - success:(WPMediaSuccessBlock)successBlock - failure:(WPMediaFailureBlock)failureBlock -{ - if (options == WPMediaLoadOptionsGroups || options == WPMediaLoadOptionsGroupsAndAssets) { - [self.deviceLibraryDataSource loadDataWithOptions:options success:^{ - if (successBlock) { - // the moment we have device data available show it - successBlock(); - } - [self.mediaLibraryDataSource loadDataWithOptions:options success:successBlock failure:failureBlock]; - } failure:^(NSError * __unused error) { - [self.mediaLibraryDataSource loadDataWithOptions:options success:successBlock failure:failureBlock]; - }]; - } else { - [self.currentDataSource loadDataWithOptions:options success:successBlock failure:^(NSError *error) { - if ([error.domain isEqualToString:WPMediaPickerErrorDomain] && - (error.code == WPMediaPickerErrorCodePermissionDenied || error.code == WPMediaPickerErrorCodeRestricted)) { - if (self.currentDataSource == self.deviceLibraryDataSource) { - self.currentDataSource = self.mediaLibraryDataSource; - [self loadDataWithOptions:options success:successBlock failure:failureBlock]; - return; - } - } - if (failureBlock) { - failureBlock(error); - } - }]; - } -} - -- (void)addImage:(UIImage *)image metadata:(NSDictionary *)metadata completionBlock:(WPMediaAddedBlock)completionBlock -{ - [self.currentDataSource addImage:image metadata:metadata completionBlock:completionBlock]; -} - -- (void)addVideoFromURL:(NSURL *)url completionBlock:(WPMediaAddedBlock)completionBlock -{ - [self.currentDataSource addVideoFromURL:url completionBlock:completionBlock]; -} - -- (void)setMediaTypeFilter:(WPMediaType)filter -{ - [self.mediaLibraryDataSource setMediaTypeFilter:filter]; - [self.deviceLibraryDataSource setMediaTypeFilter:filter]; -} - -- (WPMediaType)mediaTypeFilter -{ - return [self.currentDataSource mediaTypeFilter]; -} - -- (void)setAscendingOrdering:(BOOL)ascending -{ - [self.mediaLibraryDataSource setAscendingOrdering:ascending]; - [self.deviceLibraryDataSource setAscendingOrdering:ascending]; -} - -- (BOOL)ascendingOrdering -{ - return [self.currentDataSource ascendingOrdering]; -} - -@end diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 400ed8f9bf9a..83566cea4467 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -433,6 +433,8 @@ 0C896DE42A3A7BDC00D7D4E7 /* SettingsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C896DDF2A3A763400D7D4E7 /* SettingsCell.swift */; }; 0C896DE52A3A7C1F00D7D4E7 /* SiteVisibility+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C896DE12A3A767200D7D4E7 /* SiteVisibility+Extensions.swift */; }; 0C896DE72A3A832B00D7D4E7 /* SiteVisibilityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C896DE62A3A832B00D7D4E7 /* SiteVisibilityTests.swift */; }; + 0C8B8C0F2ACDBE1900CCE50F /* DisabledVideoOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8B8C0E2ACDBE1900CCE50F /* DisabledVideoOverlay.swift */; }; + 0C8B8C102ACDBE1900CCE50F /* DisabledVideoOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8B8C0E2ACDBE1900CCE50F /* DisabledVideoOverlay.swift */; }; 0C8E2F2D2AC4722F0023F9D6 /* SiteMediaViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8E2F2C2AC4722F0023F9D6 /* SiteMediaViewController.swift */; }; 0C8E2F2E2AC4722F0023F9D6 /* SiteMediaViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8E2F2C2AC4722F0023F9D6 /* SiteMediaViewController.swift */; }; 0C8FC9A12A8BC8630059DCE4 /* PHPickerController+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8FC9A02A8BC8630059DCE4 /* PHPickerController+Extensions.swift */; }; @@ -3016,7 +3018,6 @@ D80BC79C207464D200614A59 /* MediaLibraryMediaPickingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D80BC79B207464D200614A59 /* MediaLibraryMediaPickingCoordinator.swift */; }; D80BC79E20746B4100614A59 /* MediaPickingContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D80BC79D20746B4100614A59 /* MediaPickingContext.swift */; }; D80BC7A22074739400614A59 /* MediaLibraryStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D80BC7A12074739300614A59 /* MediaLibraryStrings.swift */; }; - D80BC7A4207487F200614A59 /* MediaLibraryPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D80BC7A3207487F200614A59 /* MediaLibraryPicker.swift */; }; D81322B32050F9110067714D /* NotificationName+Names.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81322B22050F9110067714D /* NotificationName+Names.swift */; }; D813D67F21AA8BBF0055CCA1 /* ShadowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D813D67E21AA8BBF0055CCA1 /* ShadowView.swift */; }; D8160442209C1B0F00ABAFFA /* ReaderSaveForLaterAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8160441209C1B0F00ABAFFA /* ReaderSaveForLaterAction.swift */; }; @@ -4537,7 +4538,6 @@ FABB22B32602FC2C00C8785C /* PrepublishingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BAD272B241FEF3300E9D105 /* PrepublishingViewController.swift */; }; FABB22B42602FC2C00C8785C /* PageListTableViewHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A22D9BF214A6BCA00BAEAF2 /* PageListTableViewHandler.swift */; }; FABB22B52602FC2C00C8785C /* SearchableItemConvertable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74729CA52056FE6000D1394D /* SearchableItemConvertable.swift */; }; - FABB22B62602FC2C00C8785C /* WPAndDeviceMediaLibraryDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = FFE3B2C61B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.m */; }; FABB22B72602FC2C00C8785C /* SettingsListEditorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59D994E1C0790CC0003D795 /* SettingsListEditorViewController.swift */; }; FABB22B82602FC2C00C8785C /* QuickStartChecklistManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4E215B21F75BBE00EFF212 /* QuickStartChecklistManager.swift */; }; FABB22B92602FC2C00C8785C /* NoResultsTenorConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81CCD7A243BF7A600A83E27 /* NoResultsTenorConfiguration.swift */; }; @@ -5050,7 +5050,6 @@ FABB24DE2602FC2C00C8785C /* UIViewController+NoResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4E939E2268D9B400E14823 /* UIViewController+NoResults.swift */; }; FABB24DF2602FC2C00C8785C /* TimeZoneStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1CB6DA2200F376400945457 /* TimeZoneStore.swift */; }; FABB24E02602FC2C00C8785C /* UserSuggestion+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B68A9A252FA91E0001B28C /* UserSuggestion+CoreDataClass.swift */; }; - FABB24E12602FC2C00C8785C /* MediaLibraryPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D80BC7A3207487F200614A59 /* MediaLibraryPicker.swift */; }; FABB24E22602FC2C00C8785C /* SharingAccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E663D18F1C65383E0017F109 /* SharingAccountViewController.swift */; }; FABB24E42602FC2C00C8785C /* UIApplication+mainWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B3626F825A665E500D7CCE3 /* UIApplication+mainWindow.swift */; }; FABB24E52602FC2C00C8785C /* CoreDataIterativeMigrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FD83CBE246C751800381999 /* CoreDataIterativeMigrator.swift */; }; @@ -5611,7 +5610,6 @@ FFC6ADDA1B56F366002F3C84 /* LocalCoreDataService.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC6ADD91B56F366002F3C84 /* LocalCoreDataService.m */; }; FFCB9F4B22A125BD0080A45F /* WPException.m in Sources */ = {isa = PBXBuildFile; fileRef = FFCB9F4A22A125BD0080A45F /* WPException.m */; }; FFD12D5E1FE1998D00F20A00 /* Progress+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFD12D5D1FE1998D00F20A00 /* Progress+Helpers.swift */; }; - FFE3B2C71B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = FFE3B2C61B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.m */; }; FFEECFFC2084DE2B009B8CDB /* PostSettingsViewController+FeaturedImageUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFEECFFB2084DE2B009B8CDB /* PostSettingsViewController+FeaturedImageUpload.swift */; }; /* End PBXBuildFile section */ @@ -6090,6 +6088,7 @@ 0C896DDF2A3A763400D7D4E7 /* SettingsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsCell.swift; sourceTree = ""; }; 0C896DE12A3A767200D7D4E7 /* SiteVisibility+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SiteVisibility+Extensions.swift"; sourceTree = ""; }; 0C896DE62A3A832B00D7D4E7 /* SiteVisibilityTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteVisibilityTests.swift; sourceTree = ""; }; + 0C8B8C0E2ACDBE1900CCE50F /* DisabledVideoOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisabledVideoOverlay.swift; sourceTree = ""; }; 0C8E2F2C2AC4722F0023F9D6 /* SiteMediaViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteMediaViewController.swift; sourceTree = ""; }; 0C8FC9A02A8BC8630059DCE4 /* PHPickerController+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PHPickerController+Extensions.swift"; sourceTree = ""; }; 0C8FC9A32A8BD39A0059DCE4 /* ItemProviderMediaExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemProviderMediaExporter.swift; sourceTree = ""; }; @@ -8351,7 +8350,6 @@ D80BC79B207464D200614A59 /* MediaLibraryMediaPickingCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaLibraryMediaPickingCoordinator.swift; sourceTree = ""; }; D80BC79D20746B4100614A59 /* MediaPickingContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPickingContext.swift; sourceTree = ""; }; D80BC7A12074739300614A59 /* MediaLibraryStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaLibraryStrings.swift; sourceTree = ""; }; - D80BC7A3207487F200614A59 /* MediaLibraryPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaLibraryPicker.swift; sourceTree = ""; }; D81322B22050F9110067714D /* NotificationName+Names.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationName+Names.swift"; sourceTree = ""; }; D813D67E21AA8BBF0055CCA1 /* ShadowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowView.swift; sourceTree = ""; }; D8160441209C1B0F00ABAFFA /* ReaderSaveForLaterAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderSaveForLaterAction.swift; sourceTree = ""; }; @@ -9426,8 +9424,6 @@ FFCB9F4A22A125BD0080A45F /* WPException.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WPException.m; sourceTree = ""; }; FFD12D5D1FE1998D00F20A00 /* Progress+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Progress+Helpers.swift"; sourceTree = ""; }; FFD47BDE2474228C00F00660 /* FeaturedImageScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeaturedImageScreen.swift; sourceTree = ""; }; - FFE3B2C51B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPAndDeviceMediaLibraryDataSource.h; sourceTree = ""; }; - FFE3B2C61B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPAndDeviceMediaLibraryDataSource.m; sourceTree = ""; }; FFE3B2C81B38081700E9F1E0 /* WordPress 34.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 34.xcdatamodel"; sourceTree = ""; }; FFE69A1E1B1BD4F10073C2EB /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; FFE69A1F1B1BD6D60073C2EB /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -12394,8 +12390,6 @@ B5EEB19E1CA96D19004B6540 /* ImageCropViewController.xib */, FF945F6E1B28242300FB8AC4 /* MediaLibraryPickerDataSource.h */, FF945F6F1B28242300FB8AC4 /* MediaLibraryPickerDataSource.m */, - FFE3B2C51B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.h */, - FFE3B2C61B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.m */, 17BB26AD1E6D8321008CD031 /* MediaLibraryViewController.swift */, 173B215427875E0600D4DD6B /* DeviceMediaPermissionsHeader.swift */, 1782BE831E70063100A91E7D /* MediaItemViewController.swift */, @@ -12405,7 +12399,6 @@ 1750BD6C201144DB0050F13A /* MediaNoticeNavigationCoordinator.swift */, D80BC79B207464D200614A59 /* MediaLibraryMediaPickingCoordinator.swift */, D80BC7A12074739300614A59 /* MediaLibraryStrings.swift */, - D80BC7A3207487F200614A59 /* MediaLibraryPicker.swift */, 0C8FC9A02A8BC8630059DCE4 /* PHPickerController+Extensions.swift */, 0C8FC9A62A8BFAAD0059DCE4 /* NSItemProvider+Exportable.swift */, 0C0AE7582A8FAD6A007D9D6C /* MediaPickerMenu.swift */, @@ -17644,6 +17637,7 @@ F5AE43E325DD02C0003675F4 /* StoryEditor.swift */, F504D2AA25D60C5900A2764C /* StoryPoster.swift */, F504D2AB25D60C5900A2764C /* StoryMediaLoader.swift */, + 0C8B8C0E2ACDBE1900CCE50F /* DisabledVideoOverlay.swift */, ); path = Stories; sourceTree = ""; @@ -21489,7 +21483,6 @@ DCCDF75B283BEFEA00AA347E /* SiteStatsInsightsDetailsTableViewController.swift in Sources */, 80A2154029CA68D5002FE8EB /* RemoteFeatureFlag.swift in Sources */, 74729CA62056FE6000D1394D /* SearchableItemConvertable.swift in Sources */, - FFE3B2C71B2E651400E9F1E0 /* WPAndDeviceMediaLibraryDataSource.m in Sources */, B59D994F1C0790CC0003D795 /* SettingsListEditorViewController.swift in Sources */, 9A4E215C21F75BBE00EFF212 /* QuickStartChecklistManager.swift in Sources */, FAC1B81E29B0C2AC00E0C542 /* BlazeOverlayViewModel.swift in Sources */, @@ -21819,6 +21812,7 @@ 9A341E5321997A1F0036662E /* BlogService+BlogAuthors.swift in Sources */, 17A28DC52050404C00EA6D9E /* AuthorFilterButton.swift in Sources */, 08216FD31CDBF96000304BA7 /* MenuItemTagsViewController.m in Sources */, + 0C8B8C0F2ACDBE1900CCE50F /* DisabledVideoOverlay.swift in Sources */, 5D3E334E15EEBB6B005FC6F2 /* ReachabilityUtils.m in Sources */, C81CCD7D243BF7A600A83E27 /* TenorDataSource.swift in Sources */, 9F3EFCA1208E305E00268758 /* ReaderTopicService+Subscriptions.swift in Sources */, @@ -22230,7 +22224,6 @@ E1CB6DA3200F376400945457 /* TimeZoneStore.swift in Sources */, B0B68A9C252FA91E0001B28C /* UserSuggestion+CoreDataClass.swift in Sources */, 46F583D42624D0BC0010A723 /* Blog+BlockEditorSettings.swift in Sources */, - D80BC7A4207487F200614A59 /* MediaLibraryPicker.swift in Sources */, E663D1901C65383E0017F109 /* SharingAccountViewController.swift in Sources */, 8B3626F925A665E500D7CCE3 /* UIApplication+mainWindow.swift in Sources */, 80D9D00329EF4C7F00FE3400 /* DashboardPageCreationCell.swift in Sources */, @@ -24269,7 +24262,6 @@ FABB22B52602FC2C00C8785C /* SearchableItemConvertable.swift in Sources */, 4A9948E5297624EF006282A9 /* Blog+Creation.swift in Sources */, 8BBBCE712717651200B277AC /* JetpackModuleHelper.swift in Sources */, - FABB22B62602FC2C00C8785C /* WPAndDeviceMediaLibraryDataSource.m in Sources */, 011896A329D5AF0700D34BA9 /* BlogDashboardCardConfigurable.swift in Sources */, FABB22B72602FC2C00C8785C /* SettingsListEditorViewController.swift in Sources */, 80C523A82995D73C00B1C14B /* BlazeCreateCampaignWebViewModel.swift in Sources */, @@ -25022,6 +25014,7 @@ FA3A28192A38D36900206D74 /* BlazeCampaignTableViewCell.swift in Sources */, C373D6E828045281008F8C26 /* SiteIntentData.swift in Sources */, FABB24DA2602FC2C00C8785C /* HomeWidgetAllTimeData.swift in Sources */, + 0C8B8C102ACDBE1900CCE50F /* DisabledVideoOverlay.swift in Sources */, DC3B9B2D27739760003F7249 /* TimeZoneSelectorViewModel.swift in Sources */, 0C8FC9A82A8BFAAE0059DCE4 /* NSItemProvider+Exportable.swift in Sources */, FABB24DB2602FC2C00C8785C /* UIView+Borders.swift in Sources */, @@ -25033,7 +25026,6 @@ 069A4AA72664448F00413FA9 /* GutenbergFeaturedImageHelper.swift in Sources */, 8313B9EF298B1ACD000AF26E /* SiteSettingsViewController+Blogging.swift in Sources */, 982DA9A8263B1E2F00E5743B /* CommentService+Likes.swift in Sources */, - FABB24E12602FC2C00C8785C /* MediaLibraryPicker.swift in Sources */, 46F583D52624D0BC0010A723 /* Blog+BlockEditorSettings.swift in Sources */, FABB24E22602FC2C00C8785C /* SharingAccountViewController.swift in Sources */, FABB24E42602FC2C00C8785C /* UIApplication+mainWindow.swift in Sources */,