Skip to content

Commit a275b4c

Browse files
committed
Add iPad support
1 parent db302de commit a275b4c

File tree

6 files changed

+39
-39
lines changed

6 files changed

+39
-39
lines changed

WordPress/Classes/Services/Stories/StoryEditor.swift

+5-8
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ class StoryEditor: CameraController {
8585
settings.animateEditorControls = false
8686
settings.exportStopMotionPhotoAsVideo = false
8787
settings.fontSelectorUsesFont = true
88+
settings.aspectRatio = 9/16
8889

8990
return settings
9091
}
@@ -98,20 +99,16 @@ class StoryEditor: CameraController {
9899
static func editor(blog: Blog,
99100
context: NSManagedObjectContext,
100101
updated: @escaping (Results) -> Void,
101-
uploaded: @escaping (Results) -> Void) throws -> StoryEditor {
102+
uploaded: @escaping (Results) -> Void) -> StoryEditor {
102103
let post = PostService(managedObjectContext: context).createDraftPost(for: blog)
103-
return try editor(post: post, mediaFiles: nil, publishOnCompletion: true, updated: updated, uploaded: uploaded)
104+
return editor(post: post, mediaFiles: nil, publishOnCompletion: true, updated: updated, uploaded: uploaded)
104105
}
105106

106107
static func editor(post: AbstractPost,
107108
mediaFiles: [MediaFile]?,
108109
publishOnCompletion: Bool = false,
109110
updated: @escaping (Results) -> Void,
110-
uploaded: @escaping (Results) -> Void) throws -> StoryEditor {
111-
112-
guard !UIDevice.isPad() else {
113-
throw EditorCreationError.unsupportedDevice
114-
}
111+
uploaded: @escaping (Results) -> Void) -> StoryEditor {
115112

116113
let controller = StoryEditor(post: post,
117114
onClose: nil,
@@ -240,7 +237,7 @@ extension StoryEditor: PublishingEditor {
240237
}
241238

242239
var prepublishingSourceView: UIView? {
243-
return nil
240+
return super.confirmButton
244241
}
245242

246243
var alertBarButtonItem: UIBarButtonItem? {

WordPress/Classes/Services/Stories/WPMediaPicker+MediaPicker.swift

+17-10
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@ private extension PHAsset {
178178
options.deliveryMode = .opportunistic
179179
options.resizeMode = .fast
180180
options.isNetworkAccessAllowed = true
181+
var size = size
182+
if size == .zero {
183+
size = CGSize(width: pixelWidth, height: pixelHeight)
184+
}
181185
PHImageManager.default().requestImage(for: self, targetSize: size, contentMode: .aspectFit, options: options, resultHandler: { (result, info) in
182186
let error = info?[PHImageErrorKey] as? Error
183187
let cancelled = info?[PHImageCancelledKey] as? Bool
@@ -216,16 +220,19 @@ extension WPMediaAsset {
216220
/// - Returns: A Publisher containing resuling image, URL and any errors during export.
217221
func imagePublisher() -> AnyPublisher<(UIImage, URL?), Error> {
218222
return Future<(UIImage, URL?), Error> { promise in
219-
let size = self.fit(size: UIScreen.main.nativeBounds.size)
220-
self.sizedImage(with: size) { (image, error) in
221-
guard let image = image else {
222-
if let error = error {
223-
return promise(.failure(error))
224-
}
225-
return promise(.failure(WPMediaAssetError.imageAssetExportFailed))
226-
}
227-
return promise(.success((image, nil)))
228-
}
223+
// let size = self.fit(size: UIScreen.main.nativeBounds.size)
224+
// self.sizedImage(with: size) { (image, error) in
225+
// guard let image = image else {
226+
// if let error = error {
227+
// return promise(.failure(error))
228+
// }
229+
// return promise(.failure(WPMediaAssetError.imageAssetExportFailed))
230+
// }
231+
// return promise(.success((image, nil)))
232+
// }
233+
self.sizedImage(with: .zero, completionHandler: { image, error in
234+
return promise(.success((image!, nil)))
235+
})
229236
}.eraseToAnyPublisher()
230237
}
231238

WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FAB.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ extension BlogDetailsViewController {
3636

3737
//TODO: Can be removed after stories launches
3838
private var shouldShowNewStory: Bool {
39-
return Feature.enabled(.stories) && blog.supports(.stories) && !UIDevice.isPad()
39+
return Feature.enabled(.stories) && blog.supports(.stories)
4040
}
4141
}

WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ extension GutenbergViewController: GutenbergBridgeDelegate {
702702
}
703703

704704
func showEditor(files: [MediaFile]) throws {
705-
storyEditor = try StoryEditor.editor(post: post, mediaFiles: files, publishOnCompletion: false, updated: { [weak self] result in
705+
storyEditor = StoryEditor.editor(post: post, mediaFiles: files, publishOnCompletion: false, updated: { [weak self] result in
706706
switch result {
707707
case .success:
708708
self?.dismiss(animated: true, completion: nil)

WordPress/Classes/ViewRelated/Post/PostEditor+Publish.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ extension PublishingEditor where Self: UIViewController {
234234
let prepublishingNavigationController = PrepublishingNavigationController(rootViewController: prepublishing)
235235
let bottomSheet = BottomSheetViewController(childViewController: prepublishingNavigationController, customHeaderSpacing: 0)
236236
if let sourceView = prepublishingSourceView {
237-
bottomSheet.show(from: self, sourceView: sourceView)
237+
bottomSheet.show(from: self.topmostPresentedViewController, sourceView: sourceView, arrowDirections: [.up])
238238
} else {
239239
bottomSheet.show(from: self.topmostPresentedViewController)
240240
}

WordPress/Classes/ViewRelated/System/WPTabBarController+ShowTab.swift

+14-18
Original file line numberDiff line numberDiff line change
@@ -69,26 +69,22 @@ extension WPTabBarController {
6969

7070
WPAppAnalytics.track(.editorCreatedPost, withProperties: [WPAppAnalyticsKeyTapSource: source, WPAppAnalyticsKeyBlogID: blogID, WPAppAnalyticsKeyEditorSource: "stories", WPAppAnalyticsKeyPostType: "post"])
7171

72-
do {
73-
let controller = try StoryEditor.editor(blog: blog, context: ContextManager.shared.mainContext, updated: {_ in }, uploaded: { [weak self] result in
74-
switch result {
75-
case .success:
76-
break
77-
case .failure(let error):
78-
self?.dismiss(animated: true, completion: nil)
79-
let controller = UIAlertController(title: "Failed to create story", message: "Error: \(error)", preferredStyle: .alert)
80-
let dismiss = UIAlertAction(title: "Dismiss", style: .default) { _ in
81-
controller.dismiss(animated: true, completion: nil)
82-
}
83-
controller.addAction(dismiss)
84-
self?.present(controller, animated: true, completion: nil)
72+
let controller = StoryEditor.editor(blog: blog, context: ContextManager.shared.mainContext, updated: {_ in }, uploaded: { [weak self] result in
73+
switch result {
74+
case .success:
75+
break
76+
case .failure(let error):
77+
self?.dismiss(animated: true, completion: nil)
78+
let controller = UIAlertController(title: "Failed to create story", message: "Error: \(error)", preferredStyle: .alert)
79+
let dismiss = UIAlertAction(title: "Dismiss", style: .default) { _ in
80+
controller.dismiss(animated: true, completion: nil)
8581
}
86-
})
82+
controller.addAction(dismiss)
83+
self?.present(controller, animated: true, completion: nil)
84+
}
85+
})
8786

88-
present(controller, animated: true, completion: nil)
89-
} catch let error {
90-
assertionFailure("Story editor should not fail since this button is hidden on iPads.")
91-
}
87+
present(controller, animated: true, completion: nil)
9288
}
9389
}
9490
}

0 commit comments

Comments
 (0)