Browse Source

return to UIApplicationDelegate's application(_:open:options:) only true if the app actually handled a mailto url correctly

cyberta 4 years ago
parent
commit
50bc5069dd
2 changed files with 5 additions and 3 deletions
  1. 1 2
      deltachat-ios/AppDelegate.swift
  2. 4 1
      deltachat-ios/Coordinator/AppCoordinator.swift

+ 1 - 2
deltachat-ios/AppDelegate.swift

@@ -140,8 +140,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
             self.appCoordinator.handleQRCode(urlString)
             return true
         case "mailto":
-            self.appCoordinator.handleMailtoURL(url)
-            return true
+            return self.appCoordinator.handleMailtoURL(url)
         default:
             return false
         }

+ 4 - 1
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -97,18 +97,21 @@ class AppCoordinator {
         }
     }
 
-    func handleMailtoURL(_ url: URL) {
+    func handleMailtoURL(_ url: URL) -> Bool {
         if RelayHelper.sharedInstance.parseMailtoUrl(url) {
             showTab(index: chatsTab)
             if let rootController = self.tabBarController.selectedViewController as? UINavigationController {
                 rootController.popToRootViewController(animated: false)
                 if let controller = rootController.viewControllers.first as? ChatListController {
                     controller.handleMailto()
+                    return true
                 }
             }
         } else {
             logger.warning("Could not parse mailto: URL")
         }
+        RelayHelper.sharedInstance.finishMailto()
+        return false
     }
     
     func handleQRCode(_ code: String) {