Skip to content

Commit

Permalink
add dedicated 'add second device' button to welcome screen
Browse files Browse the repository at this point in the history
  • Loading branch information
r10s committed Mar 25, 2023
1 parent 08be4c8 commit 01adf36
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 6 deletions.
27 changes: 24 additions & 3 deletions deltachat-ios/Controller/AccountSetup/WelcomeViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,16 @@ class WelcomeViewController: UIViewController, ProgressAlertHandler {
guard let self = self else { return }
self.showAccountSetupController()
}
view.onAddSecondDevice = { [weak self] in
guard let self = self else { return }
let qrReader = QrCodeReaderController(title: String.localized("multidevice_title"))
qrReader.delegate = self
self.qrCodeReader = qrReader
self.navigationController?.pushViewController(qrReader, animated: true)
}
view.onScanQRCode = { [weak self] in
guard let self = self else { return }
let qrReader = QrCodeReaderController()
let qrReader = QrCodeReaderController(title: String.localized("scan_invitation_code"))
qrReader.delegate = self
self.qrCodeReader = qrReader
self.navigationController?.pushViewController(qrReader, animated: true)
Expand Down Expand Up @@ -462,6 +469,7 @@ extension WelcomeViewController: QrCodeReaderDelegate {
class WelcomeContentView: UIView {

var onLogin: VoidFunction?
var onAddSecondDevice: VoidFunction?
var onScanQRCode: VoidFunction?
var onImportBackup: VoidFunction?

Expand Down Expand Up @@ -499,7 +507,7 @@ class WelcomeContentView: UIView {
}()

private lazy var buttonStack: UIStackView = {
let stack = UIStackView(arrangedSubviews: [loginButton, qrCodeButton, importBackupButton])
let stack = UIStackView(arrangedSubviews: [loginButton, addSecondDeviceButton, qrCodeButton, importBackupButton])
stack.axis = .vertical
stack.spacing = 15
return stack
Expand All @@ -520,9 +528,18 @@ class WelcomeContentView: UIView {
return button
}()

private lazy var addSecondDeviceButton: UIButton = {
let button = UIButton()
let title = String.localized("multidevice_title")
button.setTitleColor(UIColor.systemBlue, for: .normal)
button.setTitle(title, for: .normal)
button.addTarget(self, action: #selector(addSecondDeviceButtonPressed(_:)), for: .touchUpInside)
return button
}()

private lazy var qrCodeButton: UIButton = {
let button = UIButton()
let title = String.localized("qrscan_title")
let title = String.localized("scan_invitation_code")
button.setTitleColor(UIColor.systemBlue, for: .normal)
button.setTitle(title, for: .normal)
button.addTarget(self, action: #selector(qrCodeButtonPressed(_:)), for: .touchUpInside)
Expand Down Expand Up @@ -622,6 +639,10 @@ class WelcomeContentView: UIView {
onLogin?()
}

@objc private func addSecondDeviceButtonPressed(_ sender: UIButton) {
onAddSecondDevice?()
}

@objc private func qrCodeButtonPressed(_ sender: UIButton) {
onScanQRCode?()
}
Expand Down
14 changes: 12 additions & 2 deletions deltachat-ios/Controller/QrCodeReaderController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ class QrCodeReaderController: UIViewController {
weak var delegate: QrCodeReaderDelegate?

private let captureSession = AVCaptureSession()


private var addHints: String?
private var infoLabelBottomConstraint: NSLayoutConstraint?
private var infoLabelCenterConstraint: NSLayoutConstraint?

Expand Down Expand Up @@ -35,11 +36,20 @@ class QrCodeReaderController: UIViewController {
AVMetadataObject.ObjectType.qr
]

init(title: String, addHints: String? = nil) {
super.init(nibName: nil, bundle: nil)
self.title = title
self.addHints = addHints // TODO: if set, show in overlay or so
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

// MARK: - lifecycle
override func viewDidLoad() {
super.viewDidLoad()
self.edgesForExtendedLayout = []
title = String.localized("qrscan_title")
self.setupInfoLabel()
if AVCaptureDevice.authorizationStatus(for: .video) == .authorized {
self.setupQRCodeScanner()
Expand Down
2 changes: 1 addition & 1 deletion deltachat-ios/Controller/QrPageController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class QrPageController: UIPageViewController {

// MARK: - factory
private func makeQRReader() -> QrCodeReaderController {
let qrReader = QrCodeReaderController()
let qrReader = QrCodeReaderController(title: String.localized("qrscan_title"))
qrReader.delegate = self
return qrReader
}
Expand Down

0 comments on commit 01adf36

Please sign in to comment.