mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
CNContactController needs to be presented in a navcontroller with a
translucent navbar. In cases where we were presenting modally, we can easily modify the modal to have a translucent navbar. In the one place we were pushing onto the SignalsNavigationController, rather than modifying the SNC.isTranslucent and having to clean it up, I've opted to convert to a modal presentation. // FREEBIE
This commit is contained in:
parent
2709a91b5e
commit
fe62a6ac92
|
@ -1099,7 +1099,6 @@ static NSTimeInterval launchStartedAt;
|
||||||
// Resume lazy restore.
|
// Resume lazy restore.
|
||||||
[OWSBackupLazyRestoreJob runAsync];
|
[OWSBackupLazyRestoreJob runAsync];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)registrationStateDidChange
|
- (void)registrationStateDidChange
|
||||||
|
|
|
@ -74,11 +74,19 @@ class AddContactShareToExistingContactViewController: ContactsPicker, ContactsPi
|
||||||
contactViewController.allowsEditing = true
|
contactViewController.allowsEditing = true
|
||||||
contactViewController.delegate = self
|
contactViewController.delegate = self
|
||||||
|
|
||||||
guard let navigationController = self.navigationController else {
|
let modal = OWSNavigationController(rootViewController: contactViewController)
|
||||||
owsFail("\(logTag) in \(#function) navigationController was unexpectedly nil")
|
|
||||||
return
|
// HACK otherwise CNContactViewController Navbar is shows window background color.
|
||||||
|
// RADAR rdar://28433898 http://www.openradar.me/28433898
|
||||||
|
// CNContactViewController incompatible with opaque navigation bar
|
||||||
|
modal.navigationBar.isTranslucent = true
|
||||||
|
if #available(iOS 10, *) {
|
||||||
|
// Contact navbar is blue in iOS9, so our white text works,
|
||||||
|
// but gray on iOS10+, in which case we want the system default black text.
|
||||||
|
UIUtil.applyDefaultSystemAppearence()
|
||||||
}
|
}
|
||||||
navigationController.pushViewController(contactViewController, animated: true)
|
|
||||||
|
self.present(modal, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func contactsPicker(_: ContactsPicker, didSelectMultipleContacts contacts: [Contact]) {
|
func contactsPicker(_: ContactsPicker, didSelectMultipleContacts contacts: [Contact]) {
|
||||||
|
@ -126,8 +134,21 @@ class AddContactShareToExistingContactViewController: ContactsPicker, ContactsPi
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HACK otherwise CNContactViewController Navbar is shows window background color.
|
||||||
|
// RADAR rdar://28433898 http://www.openradar.me/28433898
|
||||||
|
// CNContactViewController incompatible with opaque navigation bar
|
||||||
|
navigationController.navigationBar.isTranslucent = false
|
||||||
|
if #available(iOS 10, *) {
|
||||||
|
// Contact navbar is blue in iOS9, so our white text works,
|
||||||
|
// but gray on iOS10+, in which case we want the system default black text.
|
||||||
|
UIUtil.applySignalAppearence()
|
||||||
|
}
|
||||||
|
|
||||||
let previousViewControllerIndex = navigationController.viewControllers.index(before: myIndex)
|
let previousViewControllerIndex = navigationController.viewControllers.index(before: myIndex)
|
||||||
let previousViewController = navigationController.viewControllers[previousViewControllerIndex]
|
let previousViewController = navigationController.viewControllers[previousViewControllerIndex]
|
||||||
navigationController.popToViewController(previousViewController, animated: true)
|
|
||||||
|
self.dismiss(animated: false) {
|
||||||
|
navigationController.popToViewController(previousViewController, animated: true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,12 +163,17 @@ public class ContactShareViewHelper: NSObject, CNContactViewControllerDelegate {
|
||||||
target: self,
|
target: self,
|
||||||
action: #selector(didFinishEditingContact))
|
action: #selector(didFinishEditingContact))
|
||||||
|
|
||||||
// HACK otherwise CNContactViewController Navbar is shown as black.
|
let modal = OWSNavigationController(rootViewController: contactViewController)
|
||||||
|
// HACK otherwise CNContactViewController Navbar is shows window background color.
|
||||||
// RADAR rdar://28433898 http://www.openradar.me/28433898
|
// RADAR rdar://28433898 http://www.openradar.me/28433898
|
||||||
// CNContactViewController incompatible with opaque navigation bar
|
// CNContactViewController incompatible with opaque navigation bar
|
||||||
UIUtil.applyDefaultSystemAppearence()
|
modal.navigationBar.isTranslucent = true
|
||||||
|
if #available(iOS 10, *) {
|
||||||
|
// Contact navbar is blue in iOS9, so our white text works,
|
||||||
|
// but gray on iOS10+, in which case we want the system default black text.
|
||||||
|
UIUtil.applyDefaultSystemAppearence()
|
||||||
|
}
|
||||||
|
|
||||||
let modal = OWSNavigationController(rootViewController: contactViewController)
|
|
||||||
fromViewController.present(modal, animated: true)
|
fromViewController.present(modal, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +194,7 @@ public class ContactShareViewHelper: NSObject, CNContactViewControllerDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
let viewController = AddContactShareToExistingContactViewController(contactShare: contactShare)
|
let viewController = AddContactShareToExistingContactViewController(contactShare: contactShare)
|
||||||
|
UIUtil.applySignalAppearence()
|
||||||
navigationController.pushViewController(viewController, animated: true)
|
navigationController.pushViewController(viewController, animated: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -392,19 +392,23 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
target:fromViewController
|
target:fromViewController
|
||||||
action:@selector(didFinishEditingContact)];
|
action:@selector(didFinishEditingContact)];
|
||||||
|
|
||||||
OWSNavigationController *navigationController =
|
OWSNavigationController *modal = [[OWSNavigationController alloc] initWithRootViewController:contactViewController];
|
||||||
[[OWSNavigationController alloc] initWithRootViewController:contactViewController];
|
|
||||||
|
// HACK otherwise CNContactViewController Navbar is shows window background color.
|
||||||
|
// RADAR rdar://28433898 http://www.openradar.me/28433898
|
||||||
|
// CNContactViewController incompatible with opaque navigation bar
|
||||||
|
modal.navigationBar.translucent = YES;
|
||||||
|
if (@available(iOS 10, *)) {
|
||||||
|
// Contact navbar is blue in iOS9, so our white tex works,
|
||||||
|
// but gray on iOS10+, in which case we want the system default black text.
|
||||||
|
[UIUtil applyDefaultSystemAppearence];
|
||||||
|
}
|
||||||
|
|
||||||
// We want the presentation to imply a "replacement" in this case.
|
// We want the presentation to imply a "replacement" in this case.
|
||||||
if (shouldEditImmediately) {
|
if (shouldEditImmediately) {
|
||||||
navigationController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
|
modal.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
|
||||||
}
|
}
|
||||||
[fromViewController presentViewController:navigationController animated:YES completion:nil];
|
[fromViewController presentViewController:modal animated:YES completion:nil];
|
||||||
|
|
||||||
// HACK otherwise CNContactViewController Navbar is shown as black.
|
|
||||||
// RADAR rdar://28433898 http://www.openradar.me/28433898
|
|
||||||
// CNContactViewController incompatible with opaque navigation bar
|
|
||||||
[UIUtil applyDefaultSystemAppearence];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in a new issue