// _____ _ // |_ _| |_ _ _ ___ ___ _ __ __ _ // | | | ' \| '_/ -_) -_) ' \/ _` |_ // |_| |_||_|_| \___\___|_|_|_\__,_(_) // // Threema iOS Client // Copyright (c) 2013-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 #import "ScanBackupController.h" #import "MBProgressHUD.h" #import "PortraitNavigationController.h" #import "UIDefines.h" #ifdef DEBUG static const DDLogLevel ddLogLevel = DDLogLevelVerbose; #else static const DDLogLevel ddLogLevel = DDLogLevelWarning; #endif @implementation ScanBackupController + (BOOL)canScan { if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]; return [mediaTypes containsObject:(NSString *)kUTTypeMovie]; } return NO; } - (void)startScan { [MBProgressHUD hideHUDForView:self.containingViewController.view animated:NO]; [MBProgressHUD showHUDAddedTo:self.containingViewController.view animated:YES]; QRScannerViewController *qrController = [[QRScannerViewController alloc] init]; qrController.delegate = self; qrController.title = NSLocalizedString(@"scan_backup", nil); UINavigationController *nav = [[PortraitNavigationController alloc] initWithRootViewController:qrController]; nav.navigationBar.barStyle = UIBarStyleBlackTranslucent; nav.navigationBar.tintColor = [Colors mainThemeDark]; nav.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self.containingViewController presentViewController:nav animated:YES completion:nil]; } #pragma mark - QRScannerViewControllerDelegate - (void)qrScannerViewController:(QRScannerViewController *)controller didScanResult:(NSString *)result { DDLogVerbose(@"Scanned data: %@", result); [MBProgressHUD hideHUDForView:self.containingViewController.view animated:NO]; [self.delegate didScanBackup:result]; [controller dismissViewControllerAnimated:YES completion:nil]; } - (void)qrScannerViewControllerDidCancel:(QRScannerViewController *)controller { DDLogVerbose(@"Scan cancelled"); [MBProgressHUD hideHUDForView:self.containingViewController.view animated:NO]; [controller dismissViewControllerAnimated:YES completion:nil]; } @end