diff --git a/Signal/src/ViewControllers/Registration/OnboardingBaseViewController.swift b/Signal/src/ViewControllers/Registration/OnboardingBaseViewController.swift index 7ed43e10a..ee9f380b0 100644 --- a/Signal/src/ViewControllers/Registration/OnboardingBaseViewController.swift +++ b/Signal/src/ViewControllers/Registration/OnboardingBaseViewController.swift @@ -58,7 +58,6 @@ public class OnboardingBaseViewController: OWSViewController { } private func button(title: String, selector: Selector, titleColor: UIColor, backgroundColor: UIColor) -> OWSFlatButton { - // TODO: Make sure this all fits if dynamic font sizes are maxed out. let font = UIFont.ows_dynamicTypeBodyClamped.ows_mediumWeight() // Button height should be 48pt if the font is 17pt. let buttonHeight = font.pointSize * 48 / 17 diff --git a/Signal/src/ViewControllers/Registration/OnboardingCaptchaViewController.swift b/Signal/src/ViewControllers/Registration/OnboardingCaptchaViewController.swift index aace0845b..91cc9ed5d 100644 --- a/Signal/src/ViewControllers/Registration/OnboardingCaptchaViewController.swift +++ b/Signal/src/ViewControllers/Registration/OnboardingCaptchaViewController.swift @@ -16,9 +16,6 @@ public class OnboardingCaptchaViewController: OnboardingBaseViewController { view.backgroundColor = Theme.backgroundColor view.layoutMargins = .zero - // TODO: - // navigationItem.title = NSLocalizedString("SETTINGS_BACKUP", comment: "Label for the backup view in app settings.") - let titleLabel = self.titleLabel(text: NSLocalizedString("ONBOARDING_CAPTCHA_TITLE", comment: "Title of the 'onboarding Captcha' view.")) let titleRow = UIStackView(arrangedSubviews: [ diff --git a/Signal/src/ViewControllers/Registration/OnboardingController.swift b/Signal/src/ViewControllers/Registration/OnboardingController.swift index fd8f6124c..385f387a9 100644 --- a/Signal/src/ViewControllers/Registration/OnboardingController.swift +++ b/Signal/src/ViewControllers/Registration/OnboardingController.swift @@ -242,9 +242,13 @@ public class OnboardingController: NSObject { Logger.info("") - // TODO: -// let view = OnboardingCaptchaViewController(onboardingController: self) -// navigationController.pushViewController(view, animated: true) + guard let navigationController = viewController.navigationController else { + owsFailDebug("Missing navigationController") + return + } + + let view = Onboarding2FAViewController(onboardingController: self) + navigationController.pushViewController(view, animated: true) } @objc @@ -253,7 +257,7 @@ public class OnboardingController: NSObject { Logger.info("") - // TODO: + showHomeView(view: view) } @objc @@ -262,7 +266,27 @@ public class OnboardingController: NSObject { Logger.info("") - // TODO: + showHomeView(view: view) + } + + private func showHomeView(view: UIViewController) { + AssertIsOnMainThread() + + guard let navigationController = view.navigationController else { + owsFailDebug("Missing navigationController") + return + } + + // In production, this view will never be presented in a modal. + // During testing (debug UI, etc.), it may be a modal. + let isModal = navigationController.presentingViewController != nil + if isModal { + view.dismiss(animated: true, completion: { + SignalApp.shared().showHomeView() + }) + } else { + SignalApp.shared().showHomeView() + } } // MARK: - State diff --git a/Signal/src/ViewControllers/Registration/OnboardingPermissionsViewController.swift b/Signal/src/ViewControllers/Registration/OnboardingPermissionsViewController.swift index 9d39883eb..904eed0a3 100644 --- a/Signal/src/ViewControllers/Registration/OnboardingPermissionsViewController.swift +++ b/Signal/src/ViewControllers/Registration/OnboardingPermissionsViewController.swift @@ -24,7 +24,6 @@ public class OnboardingPermissionsViewController: OnboardingBaseViewController { let explanationLabel = self.explanationLabel(explanationText: NSLocalizedString("ONBOARDING_PERMISSIONS_EXPLANATION", comment: "Explanation in the 'onboarding permissions' view.")) - // TODO: Make sure this all fits if dynamic font sizes are maxed out. let giveAccessButton = self.button(title: NSLocalizedString("ONBOARDING_PERMISSIONS_ENABLE_PERMISSIONS_BUTTON", comment: "Label for the 'give access' button in the 'onboarding permissions' view."), selector: #selector(giveAccessPressed)) @@ -63,7 +62,6 @@ public class OnboardingPermissionsViewController: OnboardingBaseViewController { private func requestAccess() { Logger.info("") - // TODO: We need to defer app's request notification permissions until onboarding is complete. requestContactsAccess().then { _ in return PushRegistrationManager.shared.registerUserNotificationSettings() }.done { [weak self] in diff --git a/Signal/src/ViewControllers/Registration/OnboardingPhoneNumberViewController.swift b/Signal/src/ViewControllers/Registration/OnboardingPhoneNumberViewController.swift index 830999486..7f9d8a7a7 100644 --- a/Signal/src/ViewControllers/Registration/OnboardingPhoneNumberViewController.swift +++ b/Signal/src/ViewControllers/Registration/OnboardingPhoneNumberViewController.swift @@ -105,8 +105,6 @@ public class OnboardingPhoneNumberViewController: OnboardingBaseViewController { validationWarningLabel.autoPinHeightToSuperview() validationWarningLabel.autoPinEdge(toSuperviewEdge: .leading) - // TODO: Finalize copy. - let nextButton = self.button(title: NSLocalizedString("BUTTON_NEXT", comment: "Label for the 'next' button."), selector: #selector(nextPressed)) diff --git a/Signal/src/ViewControllers/Registration/OnboardingSplashViewController.swift b/Signal/src/ViewControllers/Registration/OnboardingSplashViewController.swift index 195e6dfa2..c0c23b4a4 100644 --- a/Signal/src/ViewControllers/Registration/OnboardingSplashViewController.swift +++ b/Signal/src/ViewControllers/Registration/OnboardingSplashViewController.swift @@ -37,7 +37,6 @@ public class OnboardingSplashViewController: OnboardingBaseViewController { explanationLabel.isUserInteractionEnabled = true explanationLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(explanationLabelTapped))) - // TODO: Make sure this all fits if dynamic font sizes are maxed out. let continueButton = self.button(title: NSLocalizedString("BUTTON_CONTINUE", comment: "Label for 'continue' button."), selector: #selector(continuePressed)) diff --git a/Signal/src/environment/SignalApp.m b/Signal/src/environment/SignalApp.m index 1b7f2a2df..2e2921c58 100644 --- a/Signal/src/environment/SignalApp.m +++ b/Signal/src/environment/SignalApp.m @@ -1,5 +1,5 @@ // -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. +// Copyright (c) 2019 Open Whisper Systems. All rights reserved. // #import "SignalApp.h" @@ -166,6 +166,9 @@ NS_ASSUME_NONNULL_BEGIN AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; appDelegate.window.rootViewController = navigationController; OWSAssertDebug([navigationController.topViewController isKindOfClass:[HomeViewController class]]); + + // Clear the signUpFlowNavigationController. + [self setSignUpFlowNavigationController:nil]; } @end