
    |~g                         d dl mZmZmZmZmZ d dlmZ d dlZ ej                  dd       d dl
mZ erd dlmZ  G d d	e      Zy)
    )TupleCallableSetAnyTYPE_CHECKING)
BasePluginNGtkz3.0)r	   )BluemanAppletc                   ,    e Zd ZdZd fdZ	 d dedeedf   dededef   de	d	d
fdZ
deded	d
fdZdeded	d
fdZd!dZd! fdZd! fdZde	d	d
fdZded	d
fdZded	d
fdZded	d
fdZded	d
fdZdededed	d
fdZdededed	d
fdZd!dZ xZS )"AppletPluginapplication-x-addon-symbolicc                 2   t         |           || _        t        j                  j                         j                  | j                  j                        sd| j                  _        |j                  | _
        t               | _        t               | _        y )Nr   )super__init__parentr	   	IconThemeget_defaulthas_icon	__class____icon__DbusSvc_dbus_serviceset_dbus_methods_dbus_signals)selfr   r   s     >/usr/lib/python3/dist-packages/blueman/plugins/AppletPlugin.pyr   zAppletPlugin.__init__   sf    }}((*33DNN4K4KL&DDNN##^^'*u'*u    name	arguments.return_valuemethodis_asyncreturnNc                 z    | j                   j                  |       | j                  j                  |||||       y )N)r#   )r   addr   
add_method)r   r   r    r!   r"   r#   s         r   _add_dbus_methodzAppletPlugin._add_dbus_method   s6    t$%%dI|VV^%_r   	signaturec                 r    | j                   j                  |       | j                  j                  ||       y N)r   r&   r   
add_signal)r   r   r)   s      r   _add_dbus_signalzAppletPlugin._add_dbus_signal    s,    t$%%dI6r   argsc                 >     | j                   j                  |g|  y r+   )r   emit_signal)r   r   r.   s      r   _emit_dbus_signalzAppletPlugin._emit_dbus_signal$   s    &&&t3d3r   c                      y r+    r   s    r   	on_unloadzAppletPlugin.on_unload'       r   c                     t         |           | j                  D ]  }| j                  j	                  |        | j
                  D ]  }| j                  j                  |        y r+   )r   _unloadr   r   remove_methodr   remove_signal)r   r"   signalr   s      r   r8   zAppletPlugin._unload*   s_    (( 	5F,,V4	5(( 	5F,,V4	5r   c                     t         |           | j                  j                  r&| j	                  | j                  j
                         y y r+   )r   _loadr   plugin_run_state_changedon_manager_state_changedmanager_state)r   r   s    r   r=   zAppletPlugin._load2   s8     ;;//))$++*C*CD 0r   statec                      y)zcRun when the dbus service appears and disappears. Should only be used to setup, register agents etcNr3   )r   rA   s     r   r?   z%AppletPlugin.on_manager_state_changed:       r   pathc                      y)z-Run when a new adapter is added to the systemNr3   r   rD   s     r   on_adapter_addedzAppletPlugin.on_adapter_added>   rC   r   c                      y)z.Run when an adapter is removed from the systemNr3   rF   s     r   on_adapter_removedzAppletPlugin.on_adapter_removedB   rC   r   c                      y)zRun when a new device is foundNr3   rF   s     r   on_device_createdzAppletPlugin.on_device_createdF   rC   r   c                      y)zRun when a device is removedNr3   rF   s     r   on_device_removedzAppletPlugin.on_device_removedJ   rC   r   keyvaluec                      y)zZRun when a property changes of any adapters. Make sure to distinguish your actions by pathNr3   r   rD   rN   rO   s       r   on_adapter_property_changedz(AppletPlugin.on_adapter_property_changedN   rC   r   c                      y)zYRun when a property changes of any devices. Make sure to distinguish your actions by pathNr3   rQ   s       r   on_device_property_changedz'AppletPlugin.on_device_property_changedR   rC   r   c                      y r+   r3   r4   s    r   on_plugins_loadedzAppletPlugin.on_plugins_loadedW   r6   r   )r   r
   )F)r$   N)__name__
__module____qualname__r   r   strr   r   r   boolr(   r-   r1   r5   r8   r=   r?   rG   rI   rK   rM   rR   rT   rV   __classcell__)r   s   @r   r   r      sJ   -H	- +0`S `U38_ `TW `aijmorjras `#'`48`
7S 7S 7T 74c 4# 4$ 45Ed t S T s t c d c d  # c d s  S T 
r   r   )typingr   r   r   r   r   blueman.plugins.BasePluginr   girequire_versiongi.repositoryr	   blueman.main.Appletr
   r   r3   r   r   <module>rc      s:    ; ; 1 	   5%   1K: Kr   