Merge tag '2.35.0.12'

pull/1/head
Matthew Chen 6 years ago
commit ea547fa46a

@ -111,19 +111,18 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.qrScanningController startCapture];
[UIDevice.currentDevice ows_setOrientation:UIInterfaceOrientationPortrait];
dispatch_async(dispatch_get_main_queue(), ^{
[self.qrScanningController startCapture];
});
}
// pragma mark - OWSQRScannerDelegate
#pragma mark - OWSQRScannerDelegate
- (void)controller:(OWSQRCodeScanningViewController *)controller didDetectQRCodeWithString:(NSString *)string
{
@ -137,14 +136,13 @@ NS_ASSUME_NONNULL_BEGIN
UIAlertController *alertController =
[UIAlertController alertControllerWithTitle:title message:body preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction =
[UIAlertAction actionWithTitle:CommonStrings.cancelButton
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
dispatch_async(dispatch_get_main_queue(), ^{
[self.navigationController popViewControllerAnimated:YES];
});
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:CommonStrings.cancelButton
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
dispatch_async(dispatch_get_main_queue(), ^{
[self popToLinkedDeviceList];
});
}];
[alertController addAction:cancelAction];
UIAlertAction *proceedAction =
@ -166,14 +164,13 @@ NS_ASSUME_NONNULL_BEGIN
message:linkingDescription
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction =
[UIAlertAction actionWithTitle:CommonStrings.cancelButton
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
dispatch_async(dispatch_get_main_queue(), ^{
[self.navigationController popViewControllerAnimated:YES];
});
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:CommonStrings.cancelButton
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
dispatch_async(dispatch_get_main_queue(), ^{
[self popToLinkedDeviceList];
});
}];
[alertController addAction:cancelAction];
UIAlertAction *proceedAction =
@ -214,7 +211,7 @@ NS_ASSUME_NONNULL_BEGIN
OWSLogInfo(@"Successfully provisioned device.");
dispatch_async(dispatch_get_main_queue(), ^{
[self.linkedDevicesTableViewController expectMoreDevices];
[self.navigationController popToViewController:self.linkedDevicesTableViewController animated:YES];
[self popToLinkedDeviceList];
// The service implementation of the socket connection caches the linked device state,
// so all sync message sends will fail on the socket until it is cycled.
@ -264,6 +261,14 @@ NS_ASSUME_NONNULL_BEGIN
return alertController;
}
- (void)popToLinkedDeviceList
{
[self.navigationController popViewControllerWithAnimated:YES
completion:^{
[UIViewController attemptRotationToDeviceOrientation];
}];
}
#pragma mark - Orientation
- (UIInterfaceOrientationMask)supportedInterfaceOrientations

@ -171,6 +171,10 @@ class PeerConnectionProxy: NSObject, RTCPeerConnectionDelegate, RTCDataChannelDe
self.get()?.peerConnection(peerConnection, didOpen: dataChannel)
}
public func peerConnection(_ peerConnection: RTCPeerConnection, didChange connectionState: RTCPeerConnectionState) {
self.get()?.peerConnection(peerConnection, didChange: connectionState)
}
// MARK: - RTCDataChannelDelegate
public func dataChannelDidChangeState(_ dataChannel: RTCDataChannel) {
@ -1046,6 +1050,10 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
}
}
internal func peerConnection(_ peerConnectionParam: RTCPeerConnection, didChange connectionState: RTCPeerConnectionState) {
Logger.info("didChange PeerConnectionState:\(connectionState.debugDescription)")
}
// MARK: Helpers
/**
@ -1349,3 +1357,22 @@ fileprivate extension RTCIceConnectionState {
}
}
}
fileprivate extension RTCPeerConnectionState {
var debugDescription: String {
switch self {
case .new:
return "new"
case .connecting:
return "connecting"
case .connected:
return "connected"
case .disconnected:
return "disconnected"
case .failed:
return "failed"
case .closed:
return "closed"
}
}
}

@ -1,5 +1,5 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
import Foundation
@ -54,6 +54,7 @@ public extension UIDevice {
return isNativeIPad || isCompatabilityModeIPad
}
@objc
public func ows_setOrientation(_ orientation: UIInterfaceOrientation) {
// XXX - This is not officially supported, but there's no other way to programmatically rotate
// the interface.

@ -12,3 +12,35 @@ public extension UIEdgeInsets {
right: CurrentAppContext().isRTL ? leading : trailing)
}
}
@objc
public extension UINavigationController {
@objc
public func pushViewController(viewController: UIViewController,
animated: Bool,
completion: (() -> Void)?) {
CATransaction.begin()
CATransaction.setCompletionBlock(completion)
pushViewController(viewController, animated: animated)
CATransaction.commit()
}
@objc
public func popViewController(animated: Bool,
completion: (() -> Void)?) {
CATransaction.begin()
CATransaction.setCompletionBlock(completion)
popViewController(animated: animated)
CATransaction.commit()
}
@objc
public func popToViewController(viewController: UIViewController,
animated: Bool,
completion: (() -> Void)?) {
CATransaction.begin()
CATransaction.setCompletionBlock(completion)
self.popToViewController(viewController, animated: animated)
CATransaction.commit()
}
}

@ -1,5 +1,5 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
#import "Theme.h"
@ -15,20 +15,33 @@ NS_ASSUME_NONNULL_BEGIN
- (UIViewController *)findFrontmostViewController:(BOOL)ignoringAlerts
{
NSMutableArray<UIViewController *> *visitedViewControllers = [NSMutableArray new];
UIViewController *viewController = self;
while (YES) {
[visitedViewControllers addObject:viewController];
UIViewController *_Nullable nextViewController = viewController.presentedViewController;
if (nextViewController) {
if (ignoringAlerts) {
if ([nextViewController isKindOfClass:[UIAlertController class]]) {
break;
if (!ignoringAlerts || ![nextViewController isKindOfClass:[UIAlertController class]]) {
if ([visitedViewControllers containsObject:nextViewController]) {
// Cycle detected.
return viewController;
}
viewController = nextViewController;
continue;
}
viewController = nextViewController;
} else if ([viewController isKindOfClass:[UINavigationController class]]) {
}
if ([viewController isKindOfClass:[UINavigationController class]]) {
UINavigationController *navigationController = (UINavigationController *)viewController;
if (navigationController.topViewController) {
viewController = navigationController.topViewController;
nextViewController = navigationController.topViewController;
if (nextViewController) {
if ([visitedViewControllers containsObject:nextViewController]) {
// Cycle detected.
return viewController;
}
viewController = nextViewController;
} else {
break;
}

@ -337,7 +337,8 @@ public class OWSLinkPreview: MTLModel {
"imgur.com",
// Instagram
"cdninstagram.com"
"cdninstagram.com",
"fbcdn.net"
]
private static let protocolWhitelist = [

2
ThirdParty/WebRTC vendored

@ -1 +1 @@
Subproject commit aa8bee9bd6f69e388a9ca7506b8702ef8ab7f195
Subproject commit 55de5593cc261fa9368c5ccde98884ed1e278ba0
Loading…
Cancel
Save