ó
Qº’Nc           @   sâ   d  d l  Z  d  d l Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ e d k rÞ e j d rš e j d d k rš e ƒ  Z d	 Ge j ƒ  GHd
 Ge j	 ƒ  GHn  e ƒ  Z
 e
 j ƒ  Z d Ge GHe rÎ e j d ƒ n  e j d ƒ n  d S(   iÿÿÿÿNt   ModemManagerHelperc           B   sŠ   e  Z d  Z e d Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d Z d Z d Z d Z d „  Z e d	 „  ƒ Z d
 „  Z d „  Z RS(   s   org.freedesktop.ModemManagers   .Modemi   i   i    i   i   i   c         C   sR   t  j ƒ  |  _ |  j j d d ƒ |  _ t  j |  j |  j ƒ } | j ƒ  |  _ d  S(   Ns   org.freedesktop.ModemManagers   /org/freedesktop/ModemManager(	   t   dbust	   SystemBust   bust
   get_objectt   proxyt	   Interfacet   MM_DBUS_IFACEt   EnumerateDevicest   modems(   t   selft   modem_manager(    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyt   __init__?   s
    c         C   s(   t  j |  d ƒ } | j | | ƒ } | S(   Ns   org.freedesktop.DBus.Properties(   R   R   t   Get(   R   t	   interfacet   propertyt   props(    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyt   get_dbus_propertyF   s    c         C   s¢   x› |  j  D] } |  j j |  j | ƒ } |  j | |  j d ƒ } | |  j k rU q
 n  t j | |  j d ƒ } | j	 ƒ  } | d |  j
 |  j f k r
 t Sq
 Wt S(   Nt   Types   .Gsm.Networki    (   R	   R   R   R   R   t   MM_DBUS_IFACE_MODEMt   MM_MODEM_TYPE_GSMR   R   t   GetRegistrationInfot'   MM_MODEM_GSM_NETWORK_REG_STATUS_UNKNOWNt'   MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMINGt   Truet   False(   R
   t   mt   devt   typet   nett   reg(    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyt   is_gsm_roamingL   s    c         C   sº   x³ |  j  D]¨ } |  j j |  j | ƒ } |  j | |  j d ƒ } | |  j k rU q
 n  t j | |  j d ƒ } | j	 ƒ  \ } } |  j
 |  j f } | | k r¢ t S| | k r
 t Sq
 Wt S(   NR   s   .Cdma(   R	   R   R   R   R   R   t   MM_MODEM_TYPE_CDMAR   R   t   GetRegistrationStatet+   MM_MODEM_CDMA_REGISTRATION_STATE_REGISTEREDt(   MM_MODEM_CDMA_REGISTRATION_STATE_ROAMINGR   R   (   R
   R   R   R   t   cdmat   cmda_1xt   evdot   roaming_states(    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyt   is_cdma_roaming\   s    (   t   __name__t
   __module__R   R   R   R    t$   MM_MODEM_GSM_NETWORK_REG_STATUS_IDLEt$   MM_MODEM_GSM_NETWORK_REG_STATUS_HOMEt)   MM_MODEM_GSM_NETWORK_REG_STATUS_SEARCHINGt&   MM_MODEM_GSM_NETWORK_REG_STATUS_DENIEDR   R   t(   MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWNR"   t%   MM_MODEM_CDMA_REGISTRATION_STATE_HOMER#   R   t   staticmethodR   R   R(   (    (    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyR       s$   
		t   NetworkManagerHelperc           B   sž   e  Z d  Z d Z d Z d Z e e g Z d Z d Z d Z	 d Z
 e e e	 e
 g Z d Z d Z d Z d Z d	 Z d
 „  Z e d „  ƒ Z d „  Z d „  Z RS(   s   org.freedesktop.NetworkManageri    i   i(   i   i2   i<   iF   i   i   c         C   s+   t  j ƒ  |  _ |  j j d d ƒ |  _ d  S(   Ns   org.freedesktop.NetworkManagers   /org/freedesktop/NetworkManager(   R   R   R   R   R   (   R
   (    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyR   ’   s    c         C   s(   t  j |  d ƒ } | j | | ƒ } | S(   Ns   org.freedesktop.DBus.Properties(   R   R   R   (   R   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyR   —   s    c   
      C   s   t  } |  j |  j |  j d ƒ } xØ | D]Ð } |  j j |  j | ƒ } |  j | |  j d d ƒ } | sn q( n  |  j | |  j d d ƒ } xk | D]c } |  j j |  j | ƒ } |  j | |  j d d ƒ }	 |	 |  j k rÞ t S|	 |  j k r‘ t Sq‘ q‘ Wq( W| S(   Nt   ActiveConnectionss   .Connection.Activet   Defaultt   Devicess   .Devicet
   DeviceType(	   R   R   R   t   NM_DBUS_IFACER   R   t   NM_DEVICE_TYPE_GSMR   t   NM_DEVICE_TYPE_CDMA(
   R
   t   rest   activest   at   activet   default_routet   devst   dR   R   (    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyt    is_active_connection_gsm_or_cdma   s*    c         C   sB   t  } |  j ƒ  r> t ƒ  } | | j ƒ  O} | | j ƒ  O} n  | S(   N(   R   RA   R    R   R(   (   R
   R:   t   mmhelper(    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyt(   is_active_connection_gsm_or_cdma_roamingµ   s    	(   R)   R*   R7   t   NM_STATE_UNKNOWNt   NM_STATE_CONNECTING_OLDt   NM_STATE_CONNECTINGt   NM_STATE_CONNECTING_LISTt   NM_STATE_CONNECTED_OLDt   NM_STATE_CONNECTED_LOCALt   NM_STATE_CONNECTED_SITEt   NM_STATE_CONNECTED_GLOBALt   NM_STATE_CONNECTED_LISTt   NM_DEVICE_TYPE_UNKNOWNt   NM_DEVICE_TYPE_ETHERNETt   NM_DEVICE_TYPE_WIFIR8   R9   R   R1   R   RA   RC   (    (    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyR2   p   s.   				t   __main__i   s   --testR   t   is_cdma_romaings   roam: i    (   R   t   syst   objectR    R2   R)   t   argvRB   R   R(   t   nmhelperRC   t
   is_roamingt   exit(    (    (    s;   /usr/lib/python2.7/dist-packages/UpdateManager/Core/roam.pyt   <module>   s   UM 			