o
    ïØ{fõ  ã                   @   sB   d dl mZ d dlmZ d dlZd dlmZ G dd„ dejƒZdS )é    )Úabsolute_import)ÚGObjectN)ÚDBusGMainLoopc                   @   s‚   e Zd ZdZejjdejffejjdejffejjdejejffdœZ	dd„ Z
dd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ ZdS )ÚAlertWatcherzX a class that checks for alerts and reports them, like a battery
    or network warning N)únetwork-alertúbattery-alertúnetwork-3g-alertc                 C   s0   t j  | ¡ tdd� t tjj¡| _d| _d S )NT)Úset_as_defaulté   )r   Ú__init__r   ÚdbusÚBusÚTYPE_SYSTEMÚbusÚnetwork_state)Úself© r   úA/usr/lib/python3/dist-packages/UpdateManager/Core/AlertWatcher.pyr   .   s   

zAlertWatcher.__init__c                 C   s–   z>| j  dd¡}|jd| jdd� t |d¡}| dd¡| _|  | j¡ | j  dd¡}|jd	| j	dd� |  	¡  |  
¡  W d S  tjjyJ   Y d S w )
Nzorg.freedesktop.NetworkManagerz/org/freedesktop/NetworkManagerÚStateChanged)Údbus_interfaceúorg.freedesktop.DBus.PropertiesÚStateúorg.freedesktop.UPowerú/org/freedesktop/UPowerÚChanged)r   Ú
get_objectÚconnect_to_signalÚ_on_network_state_changedr   Ú	InterfaceÚGetr   Ú_network_alertÚ_power_changedÚ_update_3g_stateÚ
exceptionsÚDBusException)r   ÚobjÚ	interfacer   r   r   Úcheck_alert_state5   s2   ÿýÿÿ
ÿÿzAlertWatcher.check_alert_statec                 C   s   |   |¡ |  ¡  d S )N)r    r"   ©r   Ústater   r   r   r   L   s   
z&AlertWatcher._on_network_state_changedc                 C   s2   ddl m} |ƒ }| ¡ }| ¡ }|  ||¡ d S )Né   )ÚNetworkManagerHelper)Úroamr+   Ú is_active_connection_gsm_or_cdmaÚ(is_active_connection_gsm_or_cdma_roamingÚ_network_3g_alert)r   r+   ÚnmÚon_3gÚ
is_roamingr   r   r   r"   P   s
   zAlertWatcher._update_3g_statec                 C   s   |   d||¡ d S )Nr   )Úemit)r   r1   r2   r   r   r   r/   W   s   zAlertWatcher._network_3g_alertc                 C   s   || _ |  d|¡ d S )Nr   )r   r3   r(   r   r   r   r    Z   s   zAlertWatcher._network_alertc                 C   s6   | j  dd¡}t |d¡}| dd¡}|  d|¡ d S )Nr   r   r   Ú	OnBatteryr   )r   r   r   r   r   r3   )r   r%   r&   Ú
on_batteryr   r   r   r!   ^   s   ÿzAlertWatcher._power_changed)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚSignalFlagsÚ	RUN_FIRSTÚTYPE_INTÚTYPE_BOOLEANÚ__gsignals__r   r'   r   r"   r/   r    r!   r   r   r   r   r      s0    þþÿþúr   )Ú
__future__r   Úgi.repositoryr   r   Údbus.mainloop.glibr   r   r   r   r   r   Ú<module>   s
   