WIP: custom navbar

TODO:

Use custom navcontroller everywhere - no more UINavigationController

listen to notification for when call starts/ends and sizeToFit.
pull/1/head
Michael Kirk 7 years ago committed by Matthew Chen
parent 772af10e50
commit a7252544b0

@ -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 = "<group>"; };
45FBC59A1DF8575700E9B410 /* CallKitCallManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallKitCallManager.swift; sourceTree = "<group>"; };
45FBC5D01DF8592E00E9B410 /* SignalCall.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignalCall.swift; sourceTree = "<group>"; };
45FDA43420A4D22700396358 /* SignalNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignalNavigationBar.swift; sourceTree = "<group>"; };
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 = "<group>"; };
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 */,

@ -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 <SignalMessaging/UIUtil.h>
#import <SignalServiceKit/NSTimer+OWS.h>
#import <SignalServiceKit/OWSSignalService.h>
@ -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.

@ -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)
}
}
}
Loading…
Cancel
Save