Kaynağa Gözat

Merge pull request #854 from deltachat/qr-show-wording

show name and address below qr-code
cyBerta 5 yıl önce
ebeveyn
işleme
d797155790
1 değiştirilmiş dosya ile 15 ekleme ve 9 silme
  1. 15 9
      deltachat-ios/Controller/QrPageController.swift

+ 15 - 9
deltachat-ios/Controller/QrPageController.swift

@@ -9,17 +9,25 @@ class QrPageController: UIPageViewController, ProgressAlertHandler {
 
     private var selectedIndex: Int = 0
 
-    private lazy var qrCodeHint: String = {
+    private func getQrCodeHint() -> String {
         var qrCodeHint = ""
         if dcContext.isConfigured() {
-            let contact = DcContact(id: Int(DC_CONTACT_ID_SELF))
+            // we cannot use dc_contact_get_displayname() as this would result in "Me" instead of the real name
+            let name = dcContext.getConfig("displayname") ?? ""
+            let addr = dcContext.getConfig("addr") ?? ""
+            var nameAndAddress = ""
+            if name.isEmpty {
+                nameAndAddress = addr
+            } else {
+                nameAndAddress = "\(name) (\(addr))"
+            }
             qrCodeHint = String.localizedStringWithFormat(
                 String.localized("qrshow_join_contact_hint"),
-                contact.email
+                nameAndAddress
             )
         }
         return qrCodeHint
-    }()
+    }
 
     private lazy var qrSegmentControl: UISegmentedControl = {
         let control = UISegmentedControl(
@@ -47,7 +55,7 @@ class QrPageController: UIPageViewController, ProgressAlertHandler {
         delegate = self
         navigationItem.titleView = qrSegmentControl
 
-        let qrController = QrViewController(dcContext: dcContext, qrCodeHint: qrCodeHint)
+        let qrController = QrViewController(dcContext: dcContext, qrCodeHint: getQrCodeHint())
         setViewControllers(
             [qrController],
             direction: .forward,
@@ -72,12 +80,10 @@ class QrPageController: UIPageViewController, ProgressAlertHandler {
         self.progressObserver = nil
     }
 
-
-
     // MARK: - actions
     @objc private func qrSegmentControlChanged(_ sender: UISegmentedControl) {
         if sender.selectedSegmentIndex == 0 {
-            let qrController = QrViewController(dcContext: dcContext, qrCodeHint: qrCodeHint)
+            let qrController = QrViewController(dcContext: dcContext, qrCodeHint: getQrCodeHint())
             setViewControllers([qrController], direction: .reverse, animated: true, completion: nil)
         } else {
             let qrCodeReaderController = makeQRReader()
@@ -113,7 +119,7 @@ extension QrPageController: UIPageViewControllerDataSource, UIPageViewController
         if viewController is QrViewController {
             return nil
         }
-        return QrViewController(dcContext: dcContext, qrCodeHint: qrCodeHint)
+        return QrViewController(dcContext: dcContext, qrCodeHint: getQrCodeHint())
     }
 
     func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {