Abandonded: separate window pattern

Hiding the old window, caused keyboard to resign first responder.
pull/1/head
Michael Kirk 7 years ago committed by Michael Kirk
parent 6037a440c9
commit aa98963fd9

@ -420,7 +420,7 @@
4C20B2B920CA10DE001BAC90 /* ConversationSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C20B2B820CA10DE001BAC90 /* ConversationSearchViewController.swift */; };
4C4AEC4520EC343B0020E72B /* DismissableTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C4AEC4420EC343B0020E72B /* DismissableTextField.swift */; };
4CC0B59C20EC5F2E00CF6EE0 /* ConversationConfigurationSyncOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC0B59B20EC5F2E00CF6EE0 /* ConversationConfigurationSyncOperation.swift */; };
4CFF4C0A20F55BBA005DA313 /* MessageActionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CFF4C0920F55BBA005DA313 /* MessageActionsViewController.swift */; };
4CFF4C0B20F56104005DA313 /* MessageActionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CFF4C0920F55BBA005DA313 /* MessageActionsViewController.swift */; };
70377AAB1918450100CAF501 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70377AAA1918450100CAF501 /* MobileCoreServices.framework */; };
768A1A2B17FC9CD300E00ED8 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 768A1A2A17FC9CD300E00ED8 /* libz.dylib */; };
76C87F19181EFCE600C4ACAB /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76C87F18181EFCE600C4ACAB /* MediaPlayer.framework */; };
@ -1691,7 +1691,6 @@
452EC6DE205E9E30000E787C /* MediaGalleryViewController.swift */,
45F32C1D205718B000A300D5 /* MediaPageViewController.swift */,
454A84032059C787008B8C75 /* MediaTileViewController.swift */,
4CFF4C0920F55BBA005DA313 /* MessageActionsViewController.swift */,
34CA1C261F7156F300E51C51 /* MessageDetailViewController.swift */,
34B3F84F1E8DF1700035BE1A /* NewContactThreadViewController.h */,
34B3F8501E8DF1700035BE1A /* NewContactThreadViewController.m */,
@ -1851,7 +1850,6 @@
450DF2061E0DD28D003D14BE /* UserInterface */ = {
isa = PBXGroup;
children = (
4541B719209D2D860008608F /* ViewModels */,
450DF2071E0DD29E003D14BE /* Notifications */,
34FD936E1E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.h */,
34FD936F1E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.m */,
@ -1890,6 +1888,7 @@
34B3F89E1E8DF5490035BE1A /* OWSTableViewController.m */,
34D99C8A1F27B13B00D284D6 /* OWSViewController.h */,
34D99C8B1F27B13B00D284D6 /* OWSViewController.m */,
4CFF4C0920F55BBA005DA313 /* MessageActionsViewController.swift */,
45A60E7220AC674100FB1ABF /* ReturnToCallViewController.swift */,
);
path = ViewControllers;
@ -1934,13 +1933,6 @@
path = SignalMessaging;
sourceTree = "<group>";
};
4541B719209D2D860008608F /* ViewModels */ = {
isa = PBXGroup;
children = (
);
path = ViewModels;
sourceTree = "<group>";
};
4541B71C209D3B4F0008608F /* ViewModels */ = {
isa = PBXGroup;
children = (
@ -3137,6 +3129,7 @@
344D6CEC20069E070042AF96 /* NewNonContactConversationViewController.m in Sources */,
346129FB1FD5F31400532771 /* OWS101ExistingUsersBlockOnIdentityChange.m in Sources */,
344F248D2007CCD600CFB4F4 /* DisplayableText.swift in Sources */,
4CFF4C0B20F56104005DA313 /* MessageActionsViewController.swift in Sources */,
450998651FD8A34D00D89EB3 /* DeviceSleepManager.swift in Sources */,
3466087220E550F400AFFE73 /* ConversationStyle.swift in Sources */,
3478506B1FD9B78A007B8332 /* NoopCallMessageHandler.swift in Sources */,
@ -3249,7 +3242,6 @@
4585C4681ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift in Sources */,
4C20B2B920CA10DE001BAC90 /* ConversationSearchViewController.swift in Sources */,
450D19131F85236600970622 /* RemoteVideoView.m in Sources */,
4CFF4C0A20F55BBA005DA313 /* MessageActionsViewController.swift in Sources */,
B6B9ECFC198B31BA00C620D3 /* PushManager.m in Sources */,
34386A54207D271D009F5D9C /* NeverClearView.swift in Sources */,
45DF5DF21DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */,

@ -1982,7 +1982,7 @@ typedef enum : NSUInteger {
- (void)conversationCellDidLongpressText:(ConversationViewCell *)cell viewItem:(ConversationViewItem *)viewItem
{
UIViewController *messageActionsViewController = [MessageActionsViewController new];
MessageActionsViewController *messageActionsViewController = [MessageActionsViewController new];
[[OWSWindowManager sharedManager] presentMessageActions:messageActionsViewController];
}

@ -1,14 +0,0 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc
class MessageActionsViewController: UIViewController {
override func loadView() {
self.view = UIView()
view.backgroundColor = .purple
}
}

@ -0,0 +1,25 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc
class MessageActionsViewController: UIViewController {
@objc
weak var delegate: MessageActionsDelegate?
override func loadView() {
self.view = UIView()
view.backgroundColor = .purple
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(didTapBackground))
self.view.addGestureRecognizer(tapGesture)
}
@objc
func didTapBackground() {
self.delegate?.dismissMessageActions(self)
}
}

@ -4,6 +4,8 @@
NS_ASSUME_NONNULL_BEGIN
@class MessageActionsViewController;
// This VC can become first responder
// when presented to ensure that the input accessory is updated.
@interface OWSWindowRootViewController : UIViewController
@ -12,12 +14,20 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@protocol MessageActionsDelegate
- (void)dismissMessageActions:(MessageActionsViewController *)messageActionsViewController;
@end
#pragma mark -
extern NSString *const OWSWindowManagerCallDidChangeNotification;
const CGFloat OWSWindowManagerCallScreenHeight(void);
extern const UIWindowLevel UIWindowLevel_Background;
@interface OWSWindowManager : NSObject
@interface OWSWindowManager : NSObject <MessageActionsDelegate>
- (instancetype)init NS_UNAVAILABLE;
@ -29,7 +39,7 @@ extern const UIWindowLevel UIWindowLevel_Background;
#pragma mark - Message Actions
- (void)presentMessageActions:(UIViewController *)messageActionsViewController;
- (void)presentMessageActions:(MessageActionsViewController *)messageActionsViewController;
#pragma mark - Calls

@ -12,7 +12,6 @@ NS_ASSUME_NONNULL_BEGIN
NSString *const OWSWindowManagerCallDidChangeNotification = @"OWSWindowManagerCallDidChangeNotification";
const CGFloat OWSWindowManagerCallScreenHeight(void)
{
if ([UIDevice currentDevice].isIPhoneX) {
@ -235,17 +234,21 @@ const UIWindowLevel UIWindowLevel_MessageActions(void)
[self ensureWindowState];
}
#pragma mark - Calls
#pragma mark - Message Actions
- (void)presentMessageActions:(UIViewController *)messageActionsViewController
- (void)presentMessageActions:(MessageActionsViewController *)messageActionsViewController
{
messageActionsViewController.delegate = self;
self.messageActionsViewController = messageActionsViewController;
self.messageActionsWindow.rootViewController = messageActionsViewController;
[self ensureWindowState];
}
- (void)dismissMessageActions
- (void)dismissMessageActions:(UIViewController *)messageActionsViewController
{
OWSAssert(self.messageActionsViewController == messageActionsViewController);
self.messageActionsWindow.rootViewController = nil;
self.messageActionsViewController = nil;
@ -372,6 +375,7 @@ const UIWindowLevel UIWindowLevel_MessageActions(void)
[self ensureMessageActionsWindowHidden];
[self ensureScreenBlockWindowHidden];
} else if (self.messageActionsViewController) {
// Show Message Actions
[self ensureRootWindowHidden];
[self ensureReturnToCallWindowHidden];

Loading…
Cancel
Save