
    |~g                         d dl m Z d dl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 d d	lmZ d d
lZ G d de      Zy
)    )gettext)DictOptional)GLib)Gio)NetworkServer)	Mechanism)DNSServerProvider)AppletPlugin)ErrorDialogNc                       e Zd ZU dZ ed      ZdZdZee	   e
d<   ddZdeddfd	Zdd
ZddZdeddfdZddZdej(                  deddfdZdeddfdZy)
Networkingznetwork-workgroup-symbolicz0Manages local network services, like NAP bridgesWalmisN_dns_server_providerreturnc                     i  _         t        j                  d       _         j                  j	                  d j
                          j                          t                _         j                  j	                  d fd       y )Nzorg.blueman.network)	schema_idchangedc                 $    j                         S N)_apply_nap_settings)	_providerselfs    C/usr/lib/python3/dist-packages/blueman/plugins/applet/Networking.py<lambda>z$Networking.on_load.<locals>.<lambda>    s    tG_G_Ga     )	_registeredr   SettingsConfigconnecton_config_changedr   r
   r   r   s   `r   on_loadzNetworking.on_load   sd    ,.ll-BCIt'='=>  "$5$7!!!)))5abr   statec                 *    |r| j                          y y r   update_status)r   r$   s     r   on_manager_state_changedz#Networking.on_manager_state_changed"   s      r   c           	      0   | j                   d   r| j                   d   y dt        dd dd dd fd}dt        dt        j                  dd dd fd	}t               }|j	                  d
| j                   d   | j                   d   | j                   d   d||       y )N
nap-enablezip4-address_obj_result
_user_datar   c                      y r    )r+   r,   r-   s      r   replyz-Networking._apply_nap_settings.<locals>.reply*   s    r   resultc                 b    t        dd|d      }|j                          |j                          y )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+   r1   r-   ds       r   errz+Networking._apply_nap_settings.<locals>.err-   s,    Eh"()+A
 EEGIIKr   z(sssb)zip4-netmaskzdhcp-handlerF)result_handlererror_handler)r   r	   r   ErrorEnableNetwork)r   r0   r8   ms       r   r   zNetworking._apply_nap_settings&   s    {{<(DKK,F,N		 	D 	d 	t 		i 	 	 	$ 	 K	$++m"<dkk->XZ^ZeZeftZue3 	 	Hr   c                 v    | j                   D ]  }t        |      }|j                  d       ! i | _         | `| `y )Nobj_pathnap)r   r   
unregisterr   r   )r   adapter_pathss      r   	on_unloadzNetworking.on_unload:   sB     ,, 	 L|4ALL	  K%r   pathc                 $    | j                          y r   r&   )r   rF   s     r   on_adapter_addedzNetworking.on_adapter_addedC   s    r   c                 @    | j                  | j                  d          y Nr*   )set_napr   r"   s    r   r'   zNetworking.update_statusF   s    T[[./r   configkeyc                 8    |dk(  r| j                  ||          y y rJ   )rK   )r   rL   rM   s      r   r!   zNetworking.on_config_changedI   s    ,LL% r   onc                    t        j                  d|        | j                  j                  r| j                  j                  j                         }|D ]  }|j                         }| j                  j                  |d      }t        |      }|r$|s"|j                  dd       d| j                  |<   a|rd|sg|j                  d       d| j                  |<    y y )Nzset nap Fr?   rA   pan1T)logginginfoparentmanager_stateManagerget_adaptersget_object_pathr   
setdefaultr   registerrB   )r   rO   adaptersadapterobject_path
registeredrD   s          r   rK   zNetworking.set_napM   s    xt_%;;$${{**779H# :%557!--88eL
!;7jJJuf-48D$$[1
LL'49D$$[1: %r   )r   N)__name__
__module____qualname____icon_____description__
__author__r   r   r
   __annotations__r#   boolr(   r   rE   strrH   r'   r   r   r!   rK   r/   r   r   r   r      s    +HJKOJ8<(#45<	c!d !t !H(&S T 0& &3 &4 &:$ :4 :r   r   )r   rc   typingr   r   gi.repositoryr   r   blueman.bluez.NetworkServerr   blueman.main.DBusProxiesr	   blueman.main.DNSServerProviderr
   blueman.plugins.AppletPluginr   blueman.gui.CommonUir   rR   r   r/   r   r   <module>rp      s1      !   5 . < 5 , L: L:r   