     }
     
     public func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
-        if debug {
-            switch result {
-            case .sent:
+        switch result {
+        case .sent:
+            if debugEnabled {
                 debugPrint("Report sent")
-                break
-            case .saved:
+            }
+            
+            if let d = self.delegate, let report = self.currentReport {
+                d.userDidSendAReport(report, using: .email)
+            }
+            break
+        case .saved:
+            if debugEnabled {
                 debugPrint("Report saved")
-                break
-            default:
+            }
+            
+            if let d = self.delegate, let report = self.currentReport {
+                d.userDidSaveAReport(report, using: .email)
+            }
+            break
+        default:
+            if debugEnabled {
                 debugPrint("Report not sent neither saved")
-                break
-            }
-        }
+            }
+            
+            if let d = self.delegate, let report = self.currentReport {
+                d.userDidCancelAReport(report)
+            }
+            break
+        }
+        
+        currentReport = nil
+        
         controller.dismiss(animated: true, completion: nil)
     }
-    
 }

            
            if let screenshot = screenshot {
                report.add(image: screenshot)
            }
            
            switch self.reportingMode {
            case .email:
                if !MFMailComposeViewController.canSendMail() {
                    if self.debug {
                        debugPrint("Mail services are not available")
                    }
                    return
                }
                
                if self.debug {
                    debugPrint("Reporting information\n====================\n\(report.json())\n====================")
                }
                
                self.emailReport(report, from: topVC)
                
                break
                
            default: break
            }
            
        })
    }
    

    fileprivate var applicationId: String
    fileprivate var reportingMode: ReportingMode
    fileprivate var delegate : BugReporterDelegate?
    fileprivate var currentReport : Report?
    
    //MARK: Debug Variable
    fileprivate var debugEnabled = false
    
    //MARK: Init
    private override init() {
