o
    \c
                     @   s|   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 d dlmZ d dlmZ d d	lZG d
d deZd	S )    )gettext)Dict)GLib)Config)NetworkServer)	Mechanism)AppletPlugin)ErrorDialogNc                   @   s   e Zd ZdZedZdZdZdddZde	ddfd	d
Z
dddZdddZdeddfddZdddZdededdfddZde	ddfddZdS )
Networkingznetwork-workgroup-symbolicz0Manages local network services, like NAP bridgesWalmisNreturnc                 C   s,   i | _ td| _| jd| j |   d S )Nzorg.blueman.networkchanged)_registeredr   connecton_config_changedload_nap_settingsself r   C/usr/lib/python3/dist-packages/blueman/plugins/applet/Networking.pyon_load   s   
zNetworking.on_loadstatec                 C   s   |r|    d S d S Nupdate_status)r   r   r   r   r   on_manager_state_changed   s   z#Networking.on_manager_state_changedc                 C   sX   t d dtdd dd dd fdd}dtdtjdd dd fd	d
}t }|j||d d S )NzLoading NAP settings_obj_result
_user_datar   c                 S   s   d S r   r   )r   r   r   r   r   r   reply%   s   z+Networking.load_nap_settings.<locals>.replyresultc                 S   s$   t dd|dd}|  |  d S )Nz'<b>Failed to apply network settings</b>zJYou might not be able to connect to the Bluetooth network via this machine	   )margin_left)r	   rundestroy)r   r    r   dr   r   r   err(   s   z)Networking.load_nap_settings.<locals>.err)result_handlererror_handler)logginginfor   r   ErrorReloadNetwork)r   r   r&   mr   r   r   r   "   s
   
	zNetworking.load_nap_settingsc                 C   s.   | j D ]}t|d}|d qi | _ | `d S )Nobj_pathnap)r   r   
unregisterr   )r   adapter_pathsr   r   r   	on_unload4   s
   

zNetworking.on_unloadpathc                 C   s   |    d S r   r   )r   r5   r   r   r   on_adapter_added<   s   zNetworking.on_adapter_addedc                 C   s   |  | jd  d S Nz
nap-enable)set_napr   r   r   r   r   r   ?   s   zNetworking.update_statusconfigkeyc                 C   s   |dkr|  ||  d S d S r7   )r8   )r   r9   r:   r   r   r   r   B   s   zNetworking.on_config_changedonc                 C   s   t d|  | jjrD| jj }|D ]2}| }| j|d}t	|d}|r5|s5|
dd d| j|< q|sC|rC|d d| j|< qd S d S )Nz
set nap %sFr.   r0   pan1T)r)   r*   parentmanager_stateManagerget_adaptersget_object_pathr   
setdefaultr   registerr1   )r   r;   adaptersadapterobject_path
registeredr3   r   r   r   r8   F   s    


zNetworking.set_nap)r   N)__name__
__module____qualname____icon_____description__
__author___signalr   boolr   r   r4   strr6   r   r   r   r8   r   r   r   r   r
      s    



r
   )r   rL   typingr   gi.repositoryr   blueman.main.Configr   blueman.bluez.NetworkServerr   blueman.main.DBusProxiesr   blueman.plugins.AppletPluginr   blueman.gui.CommonUir	   r)   r
   r   r   r   r   <module>   s    