     
     deinit {
         gestureRecognizers.forEach({ interactionView?.removeGestureRecognizer($0) })
+    }
+    
+    // MARK: Overrides
+    
+    override func invalidate() {
+        super.invalidate()
+        resetDismissTimer()
+    }
+    
+    // MARK: Timers
+    
+    private func resetDismissTimer() {
+        timer?.invalidate()
+        if #available(iOSApplicationExtension 10.0, *) {
+            timer = Timer.scheduledTimer(withTimeInterval: duration, repeats: false, block: { (_) in
+                self.bar.hide(animated: true, completion: nil)
+            })
+        }
     }
     
     // MARK: Gestures


internal class TMAutoHidingTriggerHandler {
    
    private weak var bar: TMAutoHidingBar!
    
    var viewController: UIViewController? {
        return bar.delegate as? UIViewController

        
        addGestureRecognizer(UITapGestureRecognizer.self, to: interactionView)
        
        resetDismissTimer()
    }
    
    @available(*, unavailable)
