
    fE                     z    d Z ddlmZ ddlmZ ddlZ ej                  d      Zddlm	Z	  e	       Z
 G d d      Zy)z9
Hide the keyboard on incoming physical keyboard events.
    )GlobalKeyListener)UDevTrackerNAutoHide)Configc                   P    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)r   z>
    Hide Onboard when a physical keyboard is being used.
    zhide-on-key-pressc                 .    || _         d | _        d | _        y N)	_keyboard_key_listener_udev_keyboard_devices)selfkeyboards     2/usr/lib/python3/dist-packages/Onboard/AutoHide.py__init__zAutoHide.__init__(   s    !!&*#    c                 &    | j                  d       y )NF_register_eventsr   s    r   cleanupzAutoHide.cleanup-   s    e$r   c                     | j                   d uS r	   )r   r   s    r   
is_enabledzAutoHide.is_enabled0   s    !!--r   c                 &    | j                  |       y r	   r   )r   enables     r   r   zAutoHide.enable3   s    f%r   c                    |ri| j                   s\t               | _         | j                   j                  d| j                         | j                   j                  d| j                         y y | j                   rL| j                   j                  d| j                         | j                   j                  d| j                         d | _         y )Nz	key-presszdevices-updated)r   r   connect_on_key_press_on_devices_updated
disconnect)r   registers     r   r   zAutoHide._register_events6   s    %%%6%8"""**;8J8JK""**+<,0,D,DF & !!""--k4;M;MN""--.?.2.F.FH!%Dr   c                 ,   t         j                         r t               }|j                         | _        nd | _        t
        j                  dj                  | j                  xr$ | j                  D cg c]  }|j                   c}             y c c}w )Nz"AutoHide._on_devices_updated(): {})	config is_tablet_mode_detection_enabledr   get_keyboard_devicesr   _loggerdebugformatname)r   udev_trackerds      r   r   zAutoHide._on_devices_updatedD   sr    224&=L*6*K*K*MD'*.D':vd99 L/3/J/JK!qvvKM	NKs   2Bc                 h   t         j                         rt        j                  t        j
                        r?| j                  j                  |      }t        j                  dj                  |             t         j                         r| j                  |      rt         j                  j                  }t         j                  j                  }|j                  |k7  rQ|j                  |k7  rAt         j                  j                   }| j"                  j%                  | j&                  |       y y y y y )Nz_on_key_press(): {})r"    is_auto_hide_on_keypress_enabledr%   isEnabledForloggingINFOr   get_key_event_stringinfor'   r#   _is_real_keyboard_event	auto_showtablet_mode_enter_keytablet_mode_leave_keykeycodehide_on_key_press_pauser
   auto_show_lock_and_hideLOCK_REASON)r   eventsenter_keycodeleave_keycodedurations         r   r   zAutoHide._on_key_pressO   s    224##GLL1&&;;EB299!<= ::<++E2 !' 0 0 F F & 0 0 F F==M1==M1%//GGHNN::4;K;K;CE 2 2 3 5r   c                 L    | j                   j                  | j                        S r	   )r
   is_auto_show_lockedr9   r   s    r   r@   zAutoHide.is_auto_show_lockedi   s    ~~11$2B2BCCr   c                 N    | j                   j                  | j                         y r	   )r
   auto_show_unlockr9   r   s    r   rB   zAutoHide.auto_show_unlockl   s    ''(8(89r   c           	         d}|j                         }| j                  rKd}| j                  D ]:  }|j                  j                         |j                  j                         k(  s9d}< t        j                  dj                  t        |j                        | j                  xr$ | j                  D cg c]  }|j                   c}|             |S c c}w )NTFzA_is_real_keyboard_event(): xidevice={}, udevdevices={}, result={})get_source_devicer   r(   lowerr%   r&   r'   repr)r   r:   resultxideviceudevicer*   s         r   r2   z AutoHide._is_real_keyboard_evento   s    **,&&F66 "==&&(GLL,>,>,@@!F" 	 ?vd8==1"99 L/3/J/JK!qvvK$&	'  Ls   4CN)__name__
__module____qualname____doc__r9   r   r   r   r   r   r   r   r@   rB   r2    r   r   r   r   "   sC     &K+
%.&&	NE4D:r   )rM   Onboard.GlobalKeyListenerr   Onboard.UDevTrackerr   r.   	getLoggerr%   Onboard.Configr   r"   r   rN   r   r   <module>rS      s=   ( 9 2 
'

J
' !	^ ^r   