diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 1224b37ce..dd0637e62 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -407,6 +407,7 @@ 45F659821E1BE77000444429 /* NonCallKitCallUIAdaptee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F659811E1BE77000444429 /* NonCallKitCallUIAdaptee.swift */; }; 45FBC5C81DF8575700E9B410 /* CallKitCallManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FBC59A1DF8575700E9B410 /* CallKitCallManager.swift */; }; 45FBC5D11DF8592E00E9B410 /* SignalCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FBC5D01DF8592E00E9B410 /* SignalCall.swift */; }; + 45FDA43520A4D22700396358 /* SignalNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FDA43420A4D22700396358 /* SignalNavigationBar.swift */; }; 4AC4EA13C8A444455DAB351F /* Pods_SignalMessaging.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 264242150E87D10A357DB07B /* Pods_SignalMessaging.framework */; }; 70377AAB1918450100CAF501 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70377AAA1918450100CAF501 /* MobileCoreServices.framework */; }; 768A1A2B17FC9CD300E00ED8 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 768A1A2A17FC9CD300E00ED8 /* libz.dylib */; }; @@ -1060,6 +1061,7 @@ 45F659811E1BE77000444429 /* NonCallKitCallUIAdaptee.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NonCallKitCallUIAdaptee.swift; sourceTree = ""; }; 45FBC59A1DF8575700E9B410 /* CallKitCallManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallKitCallManager.swift; sourceTree = ""; }; 45FBC5D01DF8592E00E9B410 /* SignalCall.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignalCall.swift; sourceTree = ""; }; + 45FDA43420A4D22700396358 /* SignalNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignalNavigationBar.swift; sourceTree = ""; }; 69349DE607F5BA6036C9AC60 /* Pods-SignalShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SignalShareExtension/Pods-SignalShareExtension.debug.xcconfig"; sourceTree = ""; }; 70377AAA1918450100CAF501 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; 748A5CAEDD7C919FC64C6807 /* Pods_SignalTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SignalTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -2145,6 +2147,7 @@ 45A6DAD51EBBF85500893231 /* ReminderView.swift */, 450D19111F85236600970622 /* RemoteVideoView.h */, 450D19121F85236600970622 /* RemoteVideoView.m */, + 45FDA43420A4D22700396358 /* SignalNavigationBar.swift */, ); name = Views; path = views; @@ -3298,6 +3301,7 @@ 34BECE2E1F7ABCE000D7438D /* GifPickerViewController.swift in Sources */, 34D1F0C01F8EC1760066283D /* MessageRecipientStatusUtils.swift in Sources */, 45F659731E1BD99C00444429 /* CallKitCallUIAdaptee.swift in Sources */, + 45FDA43520A4D22700396358 /* SignalNavigationBar.swift in Sources */, 45BB93381E688E14001E3939 /* UIDevice+featureSupport.swift in Sources */, 34277A5E20751BDC006049F2 /* OWSQuotedMessageView.m in Sources */, 458DE9D61DEE3FD00071BB03 /* PeerConnectionClient.swift in Sources */, diff --git a/Signal/src/ViewControllers/SignalsNavigationController.m b/Signal/src/ViewControllers/SignalsNavigationController.m index 5314fd7dd..02e6a6bb5 100644 --- a/Signal/src/ViewControllers/SignalsNavigationController.m +++ b/Signal/src/ViewControllers/SignalsNavigationController.m @@ -1,8 +1,9 @@ // -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. +// Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import "SignalsNavigationController.h" +#import "Signal-Swift.h" #import #import #import @@ -21,6 +22,14 @@ static double const STALLED_PROGRESS = 0.9; @implementation SignalsNavigationController +- (instancetype)initWithRootViewController:(UIViewController *)rootViewController +{ + self = [self initWithNavigationBarClass:[SignalNavigationBar class] toolbarClass:nil]; + [self pushViewController:rootViewController animated:NO]; + + return self; +} + - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. diff --git a/Signal/src/views/SignalNavigationBar.swift b/Signal/src/views/SignalNavigationBar.swift new file mode 100644 index 000000000..5f4fc04ec --- /dev/null +++ b/Signal/src/views/SignalNavigationBar.swift @@ -0,0 +1,66 @@ +// +// Copyright (c) 2018 Open Whisper Systems. All rights reserved. +// + +import Foundation +import UIKit + +@objc +class SignalNavigationBar: UINavigationBar { +// var isCallActive: Bool = false { +// didSet { +// guard oldValue != isCallActive else { +// return +// } +// +// if isCallActive { +// self.addSubview(callBanner) +//// callBanner.autoPinEdge(toSuperviewEdge: .top) +// callBanner.autoPinEdge(toSuperviewEdge: .leading) +// callBanner.autoPinEdge(toSuperviewEdge: .trailing) +// } else { +// callBanner.removeFromSuperview() +// } +// } +// } +// +// let callBanner: UIView +// let callLabel: UILabel +// let callBannerHeight: CGFloat = 40 +// +// override init(frame: CGRect) { +// callBanner = UIView() +// callBanner.backgroundColor = .green +// callBanner.autoSetDimension(.height, toSize: callBannerHeight) +// +// callLabel = UILabel() +// callLabel.text = "Return to your call..." +// callLabel.textColor = .white +// +// callBanner.addSubview(callLabel) +// callLabel.autoPinBottomToSuperviewMargin() +// callLabel.autoHCenterInSuperview() +// callLabel.setCompressionResistanceHigh() +// callLabel.setContentHuggingHigh() +// +// super.init(frame: frame) +// +// let debugTap = UITapGestureRecognizer(target: self, action: #selector(didTap)) +// self.addGestureRecognizer(debugTap) +// } +// +// @objc +// func didTap(sender: UITapGestureRecognizer) { +// Logger.debug("\(self.logTag) in \(#function)") +// self.isCallActive = !self.isCallActive +// } +// +// + override func sizeThatFits(_ size: CGSize) -> CGSize { + if OWSWindowManager.shared().hasCall() { + return CGSize(width: UIScreen.main.bounds.width, height: 30) + } else { + return super.sizeThatFits(size) + } + } +}