
    |~gE
                         d dl m Z d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ erd d	lmZ  G d
 de      Zy)    )gettext)TYPE_CHECKINGUnionOptionalAny)GLib)ServiceUUID)Device)AutoConnectConfig)Notification)AppletPlugin)BluemanAppletc                        e Zd ZdgZdZdZ ed      ZdddZde	d	d
iZ
d fdZdeddfdZdedededdfdZedededefd       ZdefdZ xZS )AutoConnectDBusServicezbluetooth-symboliccschrammzMTries to auto-connect to configurable services on start and every 60 seconds.zorg.blueman.plugins.autoconnectN)schemapathservicesz[])typedefaultc                 d    t         |   |       t        j                  d| j                         y )Ni`  )super__init__r   timeout_add_run)selfparent	__class__s     D/usr/lib/python3/dist-packages/blueman/plugins/applet/AutoConnect.pyr   zAutoConnect.__init__   s$     		*    statereturnc                 *    |r| j                          y y Nr   )r   r"   s     r    on_manager_state_changedz$AutoConnect.on_manager_state_changed#   s    IIK r!   r   keyvaluec                 6    |dk(  r|r| j                          y y y )NPoweredr&   )r   r   r(   r)   s       r    on_adapter_property_changedz'AutoConnect.on_adapter_property_changed'   s    )IIK !&r!   uuidc                     t               }| j                  dd      dd  }t        |d         }|j                  | |f       |j	                  ||f       ||d<   |S )N_:ir   )r   replacesetremoveadd)r   r-   configaddressdatas        r    __fix_settingszAutoConnect.__fix_settings+   s_    "$,,sC(.6*%&T4L!'4!!zr!   c                    | j                  d      D ]  \  }}|j                  d      r| j                  ||      }| j                  j                  j                  |      }||j                  d      rb|t        |      j                  fdt        t           dt        dd fd}dt        t        t        f   dd fd	}| j                  j                  j                  j!                  |j#                         |||        y
)Nr   z
/org/bluez	Connecteddevservice_namer#   c                     t        | t              sJ t        t        d      t        d      || j                  dz  | d         j                          y )Nr:   z4Automatically connected to %(service)s on %(device)s)servicedeviceIcon)	icon_name)
isinstancer
   r   r/   display_nameshow)r;   r<   s     r    replyzAutoConnect._run.<locals>.replyA   sJ    !#v...Q{^Q/e-f)5AQAQR.S'*6{448DFr!   _reasonc                      y r%    )rF   s    r    errzAutoConnect._run.<locals>.errG   s    r!   T)
get_option
startswith_AutoConnect__fix_settingsr   Managerfind_devicegetr	   namer   r
   strr   	ExceptionPluginsr   connect_serviceget_object_path)r   	btaddressr-   r?   rE   rI   s         r    r   zAutoConnect._run7   s    #z: 	hOIt##L1 //	4@	[[((44Y?F~K!8.4+VZJ[J`J` ;8F+ ;C ;ei ;U9c>2 t  KK++;;F<R<R<TVZ\acfg%	h( r!   )r   r   )__name__
__module____qualname____depends____icon__
__author__r/   __description____gsettings__list__options__r   boolr'   rQ   r   r,   staticmethodrL   r   __classcell__)r   s   @r    r   r      s     /K#HJghO 4M
 	Td3K+d t  # c d  	S 	 	 	 	d r!   r   N)r   r/   typingr   r   r   r   gi.repositoryr   blueman.Sdpr	   blueman.bluez.Devicer
    blueman.config.AutoConnectConfigr   blueman.gui.Notificationr   blueman.plugins.AppletPluginr   blueman.main.Appletr   r   rH   r!   r    <module>rl      s2      6 6  # ' > 1 51<, <r!   