| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | 
							- //
 
- //  KeyboardEventHandler.swift
 
- //  flowy_infra_ui
 
- //
 
- //  Created by Jaylen Bian on 7/17/21.
 
- //
 
- class KeyboardEventHandler: NSObject, FlutterStreamHandler {
 
-     var isKeyboardShow: Bool = false
 
-     var eventSink: FlutterEventSink?
 
-     override init() {
 
-         super.init()
 
-         NotificationCenter.default.addObserver(
 
-             self,
 
-             selector: #selector(handleKeyboardWillShow),
 
-             name: UIApplication.keyboardWillShowNotification,
 
-             object: nil)
 
-         NotificationCenter.default.addObserver(
 
-             self,
 
-             selector: #selector(handleKeyboardDidShow),
 
-             name: UIApplication.keyboardDidShowNotification,
 
-             object: nil)
 
-         NotificationCenter.default.addObserver(
 
-             self,
 
-             selector: #selector(handleKeyboardWillHide),
 
-             name: UIApplication.keyboardWillHideNotification,
 
-             object: nil)
 
-         NotificationCenter.default.addObserver(
 
-             self,
 
-             selector: #selector(handleKeyboardDidHide),
 
-             name: UIApplication.keyboardDidHideNotification,
 
-             object: nil)
 
-     }
 
-     func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
 
-         eventSink = events
 
-         return nil
 
-     }
 
-     func onCancel(withArguments arguments: Any?) -> FlutterError? {
 
-         eventSink = nil
 
-         return nil
 
-     }
 
-     // MARK: Helper
 
-     @objc
 
-     private func handleKeyboardWillShow() {
 
-         guard !isKeyboardShow else {
 
-             return
 
-         }
 
-         isKeyboardShow = true
 
-         eventSink?(NSNumber(booleanLiteral: true))
 
-     }
 
-     @objc
 
-     private func handleKeyboardDidShow() {
 
-         guard !isKeyboardShow else {
 
-             return
 
-         }
 
-         isKeyboardShow = true
 
-         eventSink?(NSNumber(booleanLiteral: true))
 
-     }
 
-     @objc
 
-     private func handleKeyboardWillHide() {
 
-         guard isKeyboardShow else {
 
-             return
 
-         }
 
-         isKeyboardShow = false
 
-         eventSink?(NSNumber(booleanLiteral: false))
 
-     }
 
-     @objc
 
-     private func handleKeyboardDidHide() {
 
-         guard isKeyboardShow else {
 
-             return
 
-         }
 
-         isKeyboardShow = false
 
-         eventSink?(NSNumber(booleanLiteral: false))
 
-     }
 
- }
 
 
  |