Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Threema/Threema/MyProfile/   (Social Medium ©)  Datei vom 26.9.2026 mit Größe 4 kB image not shown  

Quelle  LinkEmailViewController.swift   Sprache: JAVA

 

import Foundation
import MBProgressHUD
import ThreemaMacros

final class LinkEmailViewController: ThemedTableViewController {
    
    @IBOutlet var emailTextFieldTitle: UILabel!
    @IBOutlet var emailTextField: UITextField!
    var serverName = ""
    
    // MARK: - Lifecycle
    
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.title = #localize("link_email_title")
        navigationItem.rightBarButtonItem?.title = #localize("save")
        navigationItem.leftBarButtonItem?.title = #localize("cancel")
        emailTextField.placeholder = #localize("link_email_textfield_placeholder")
        emailTextFieldTitle.text = #localize("link_email_textfield_title")
        emailTextField.keyboardAppearance = UIKeyboardAppearance.default
        
        emailTextFieldTitle.textColor = .label
        
        ServerInfoProviderFactory.makeServerInfoProvider()
            .directoryServer(ipv6: UserSettings.shared().enableIPv6) { directoryServerInfo, _ in
                if let urlString = directoryServerInfo?.url,
                   let url = URL(string: urlString) {
                    self.serverName = url.host ?? ""
                }
            }
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        emailTextField.text = MyIdentityStore.shared().linkedEmail
        
        if let mdmSetup = MDMSetup(), mdmSetup.readonlyProfile() {
            emailTextField.isEnabled = false
        }
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        if emailTextField.isEnabled {
            emailTextField.becomeFirstResponder()
        }
    }

    // MARK: - TableViewDelegates
    
    override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
        if TargetManager.isOnPrem {
            return String.localizedStringWithFormat(
                #localize("myprofile_link_email_onprem_footer"),
                serverName,
                TargetManager.appName
            )
        }
        return String.localizedStringWithFormat(
            #localize("myprofile_link_email_footer"),
            TargetManager.appName
        )
    }
    
    // MARK: - Helper functions
    
    @IBAction func saveAction(_ sender: Any) {
        if emailTextField.text == MyIdentityStore.shared().linkedEmail {
            dismiss(animated: true, completion: nil)
            return
        }
        navigationItem.rightBarButtonItem?.isEnabled = false
        emailTextField.resignFirstResponder()
        MBProgressHUD.showAdded(to: view, animated: true)
        
        let conn = ServerAPIConnector()
        conn.linkEmail(
            with: MyIdentityStore.shared(),
            email: emailTextField.text,
            onCompletion: { [self] linked in
                
                MBProgressHUD.hide(for: view, animated: true)
                if let text = emailTextField.text, !text.isEmpty, !linked {
                    UIAlertTemplate.showOKAlert(
                        owner: self,
                        title: #localize("link_email_sent_title"),
                        message: String.localizedStringWithFormat(
                            #localize("link_email_sent_message"), text
                        ), actionOk: { [self] _ in
                            dismiss(animated: true)
                        }
                    )
                }
                else {
                    dismiss(animated: true, completion: nil)
                }
                
            }, onError: { _ in
                MBProgressHUD.hide(for: self.view, animated: true)
                self.navigationItem.rightBarButtonItem?.isEnabled = true
                UIAlertTemplate.showOKAlert(
                    owner: self,
                    title: #localize("invalid_email_address_title"),
                    message: #localize("invalid_email_address_message"),
                    actionOk: nil
                )
            }
        )
    }
    
    @IBAction func cancelAction(_ sender: Any) {
        dismiss(animated: true, completion: nil)
    }
}

Messung
CHZG
869310092

¤ Dauer der Verarbeitung: 0.7 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.