File: //lib/python3/dist-packages/UpdateManager/Core/__pycache__/AlertWatcher.cpython-38.pyc
U
i�f� � @ sB d dl mZ d dlmZ d dlZd dlmZ G dd� dej�ZdS )� )�absolute_import)�GObjectN)�
DBusGMainLoopc @ s� e Zd ZdZejjdejffejjdejffejjdejejffd�Z dd� Z
dd� Zdd � Zd
d� Z
dd
� Zdd� Zdd� ZdS )�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 �| � tdd� t�tjj�| _d| _d S )NT)Zset_as_default� )r �__init__r �dbusZBusZTYPE_SYSTEM�bus�
network_state)�self� r �A/usr/lib/python3/dist-packages/UpdateManager/Core/AlertWatcher.pyr
. s
zAlertWatcher.__init__c C s� zz| j �dd�}|jd| jdd� t�|d�}|�dd�| _| �| j� | j �dd�}|jd | j dd� | � � | �
� W n tjjk
r� Y nX d S )
Nzorg.freedesktop.NetworkManagerz/org/freedesktop/NetworkManagerZStateChanged)Zdbus_interface�org.freedesktop.DBus.Properties�State�org.freedesktop.UPower�/org/freedesktop/UPowerZChanged)
r �
get_objectZconnect_to_signal�_on_network_state_changedr � Interface�Getr
�_network_alert�_power_changed�_update_3g_state�
exceptionsZ
DBusException)r �obj� interfacer r r �check_alert_state5 s2 �� ��
�zAlertWatcher.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 ddl m} |� }|�� }|�� }| �||� d S )N� )�NetworkManagerHelper)Zroamr# Z is_active_connection_gsm_or_cdmaZ(is_active_connection_gsm_or_cdma_roaming�_network_3g_alert)r r# Znm�on_3g�
is_roamingr r r r P s
zAlertWatcher._update_3g_statec C s | � d||� d S )Nr )�emit)r r% r&