
    |~g                         d dl Z d dlZd dlmZmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ  G d dej                  e	      Zy)
    N)DictCallableListTuple)GObjectGio)Transfer)SingletonGObjectMeta)GSignalsc                   P    e Zd ZU ej                  j
                  deffej                  j
                  deffej                  j
                  deffej                  j
                  deeffdZe	e
d<   ej                  j                  Zej                  j                  ZdZd fdZddZdej&                  d	ej(                  ddfd
Zdej&                  d	ej(                  ddfdZdededdfdZedeej6                  eegdf   deej6                  egdf   ddfd       Z xZS )ManagerN)session-addedsession-removedtransfer-startedtransfer-completed__gsignals__zorg.bluez.obexreturnc           	      B   t         |           i | _        t        j                  j                  t        j                  j                  t        j                  j                  | j                  dd d d       | _        g | _        | j                  j                  | j                  j                  d| j                               | j                  j                  | j                  j                  d| j                                t#        j$                  | | j&                         y )N/zobject-addedzobject-removed)super__init___Manager__transfersr   DBusObjectManagerClientnew_for_bus_syncBusTypeSESSIONDBusObjectManagerClientFlagsNONE_Manager__bus_name_object_manager_manager_handleridsappendconnect_on_object_added_on_object_removedweakreffinalize
_on_delete)self	__class__s    </usr/lib/python3/dist-packages/blueman/bluez/obex/Manager.pyr   zManager.__init__   s    HJ"::KKKK!A!A!F!FOOS$d 4 /1   ''(<(<(D(D^UYUjUj(kl  ''(<(<(D(DEUW[WnWn(opt/    c                 j    | j                   D ]  }| j                  j                  |        g | _         y N)r!   r    
disconnect)r)   	handlerids     r+   r(   zManager._on_delete'   s3    11 	7I  ++I6	7#% r,   r    dbus_objectc                    |j                  d      }|j                  d      }|j                         }|rt        j                  |       t	        |      }|j                  d| j                  d      }|j                  d| j                  d      }|||ff| j                  |<   | j                  d|       |r(t        j                  |       | j                  d	|       y y )
Norg.bluez.obex.Session1org.bluez.obex.Transfer1)obj_path	completedTerrorFr   r   )	get_interfaceget_object_pathlogginginfor	   connect_signal_on_transfer_completedr   emit)	r)   r    r1   session_proxytransfer_proxyobject_pathtransfer
chandlerid
ehandlerids	            r+   r$   zManager._on_object_added,   s    #112KL$223MN!113LL%5H!00d>Y>Y[_`J!00$:U:UW\]J-5
J7O,PD[)II(+6LL%IIo{3 r,   c                 r   |j                  d      }|j                  d      }|j                         }|rY|| j                  v rKt        j                  |       | j                  j                  |      \  }}|D ]  }|j                  |        |r(t        j                  |       | j                  d|       y y )Nr3   r4   r   )r8   r9   r   r:   r;   popdisconnect_signalr>   )	r)   r    r1   r?   r@   rA   rB   
handleridsr0   s	            r+   r%   zManager._on_object_removed=   s    #112KL$223MN!113kT-=-==LL%#'#3#3#7#7#D Hj' 6	**956 LL%II'5 r,   rB   successc                 ~    |j                         }t        j                  | d|        | j                  d||       y )N r   )r9   r:   r;   r>   )r)   rB   rI   transfer_paths       r+   r=   zManager._on_transfer_completedM   s8     002ay12		&w?r,   appeared_handlervanished_handlerc                     t        j                  t         j                  j                  | j                  t         j
                  j                  ||       y r.   )r   bus_watch_namer   r   r   BusNameWatcherFlags
AUTO_START)clsrM   rN   s      r+   watch_name_ownerzManager.watch_name_ownerS   s8     	3;;..@W@W@b@b+-=	?r,   )r   N)__name__
__module____qualname__r   SignalFlagsNO_HOOKSstrboolr   r   __annotations__r#   r<   r/   rG   r   r   r(   r   DBusObjectManager
DBusObjectr$   r%   r	   r=   classmethodr   DBusConnectionrT   __classcell__)r*   s   @r+   r   r      sm   !--66sfE#//88$G$00994#H&22;;TC;O	L(  __,,N22!J0&
40E0E 4TWTbTb 4gk 4"6#2G2G 6VYVdVd 6im 6 @x @$ @4 @ ?"C$6$6S#A4#GH? #C$6$6#<d#BC? 
	? ?r,   r   )	metaclass)r:   r&   typingr   r   r   r   gi.repositoryr   r   blueman.bluez.obex.Transferr	   blueman.gobjectr
   blueman.bluemantypingr   r    r,   r+   <module>ri      s2      . . & 0 0 *N?goo)= N?r,   