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
   