// _____ _ // |_ _| |_ _ _ ___ ___ _ __ __ _ // | | | ' \| '_/ -_) -_) ' \/ _` |_ // |_| |_||_|_| \___\___|_|_|_\__,_(_) // // Threema iOS Client // Copyright (c) 2014-2020 Threema GmbH // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License, version 3, // as published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #import "CreatePasswordTrigger.h" #import "BackupPasswordViewController.h" #import "BackupPasswordVerifyViewController.h" @interface CreatePasswordTrigger () @property UIViewController *viewController; @end CreatePasswordTrigger *createPasswordTriggerInstance; @implementation CreatePasswordTrigger + (instancetype)createPasswordTriggerOn:(UIViewController *)viewController { CreatePasswordTrigger *createPasswordTrigger = [[CreatePasswordTrigger alloc] initWithViewController:viewController]; createPasswordTriggerInstance = createPasswordTrigger; return createPasswordTrigger; } - (instancetype)initWithViewController: (UIViewController *) viewController { self = [super init]; if (self) { self.viewController = viewController; } return self; } - (void)presentPasswordUI { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"CreatePassword" bundle:nil]; UINavigationController *navigationController = (UINavigationController *) [storyboard instantiateInitialViewController]; navigationController.delegate = self; if (createPasswordTriggerInstance) { [createPasswordTriggerInstance.viewController presentViewController:navigationController animated:YES completion:nil]; } } #pragma mark - UINavigationControllerDelegate -(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)vc animated:(BOOL)animated { if ([vc isKindOfClass: [BackupPasswordViewController class]]) { BackupPasswordViewController *passwordVC = (BackupPasswordViewController *) vc; passwordVC.passwordTitle = _passwordTitle; passwordVC.passwordAdditionalText = _passwordAdditionalText; } if ([vc isKindOfClass: [BackupPasswordVerifyViewController class]]) { BackupPasswordVerifyViewController *passwordVerify = (BackupPasswordVerifyViewController *) vc; passwordVerify.passwordCallback = self; } } #pragma mark - PasswordCallback - (void)passwordResult:(NSString *)password fromViewController:(UIViewController *)viewController{ if (_passwordCallback) { [_passwordCallback passwordResult: password fromViewController: viewController]; } } @end