Ë
    ¾�jt  ã                   óp  — d dl mZmZ d dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlZd dlmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZ d d	lm Z m!Z!m"Z"m#Z#m$Z$m%Z% d d
l&m'Z'  ejP                  e)«      Z* ejV                  dedddddgi¬«       ejX                  dddd¬«       ejX                  dde-dd¬«       ejX                  dddd¬«       ejX                  d e.d!d"d#¬$«       ejX                  d%e.d&d"d'¬$«      ej^                  d(ej`                  d)e1d*e	e-   d+e-d,e.d-e.d.dfd/„«       «       «       «       «       «       «       Z2d0e-fd1„Z3	 �d	d2e-d3e	ee-ef      d.efd4„Z4e2jk                  d5d6dddgi¬7«       ejX                  d8dd¬9«      eed:e1d.dfd;„«       «       «       «       Z6e2jk                  d<d=dddgi¬7«      ee	 	 �d
d>„«       «       «       Z7e2jk                  d?d@dddgi¬7«      ee	 	 �d
dA„«       «       «       Z8e2jk                  dBdCdddgi¬7«      ee	 	 �d
dD„«       «       «       Z9e2jk                  dEdFdddgi¬7«       ejt                  dGddHdI¬J«      eedGe-d.dfdK„«       «       «       «       Z;e2jk                  dLdMdddgi¬7«       ejX                  dNddO¬«       ejX                  dPde.dQ¬R«       ejX                  dSdTddU¬V«       ejX                  dWddX¬«      eedYe1dZe	e.   d[e	e-   d\e1d.df
d]„«       «       «       «       «       «       «       Z<e2jk                  d^d_dddgi¬7«      ee	 	 �d
d`„«       «       «       Z=e2jk                  dadbdddgi¬7«      ee	 	 �d
dc„«       «       «       Z>e2jk                  dddedddgi¬7«      ee	 	 �d
df„«       «       «       Z?e2jk                  dgdhdddgi¬7«       ejX                  didje.dk¬R«       ejt                  dldmddn¬o«      eedpe.dle
e-dqf   d.dfdr„«       «       «       «       «       Z@e2jk                  dsdtdddgi¬7«       ejX                  duddv¬V«       ejX                  dwddx¬«       ejX                  dyddz¬«       ejt                  d{d|¬}«      eed~e	e-   de1d€e1d{e-d.df
d�„«       «       «       «       «       «       «       ZAe2jk                  d‚dƒdddgi¬7«       ejX                  d„d…d†d‡¬V«      eed…e-d.dfdˆ„«       «       «       «       ZBe2jk                  d‰dŠdddgi¬7«       ejX                  d‹dŒdd�¬«       ejt                  d{ddd|¬J«      eedŒe1d{e	e-   d.dfdŽ„«       «       «       «       «       ZCe2jk                  d�d�dddgi¬7«       ejt                  d‘d’¬}«      eed‘e-d.dfd“„«       «       «       «       ZDe2jk                  d”d•dddgi¬7«       ejt                  d{d|¬}«      eed{e-d.dfd–„«       «       «       «       ZEe2jk                  d—d˜dddgi¬7«       ejt                  d{d|¬}«      eed{e-d.dfd™„«       «       «       «       ZFe2jk                  dšd›dddgi¬7«      ee	 	 �d
dœ„«       «       «       ZGe2jk                  d�dždddgi¬7«      ee	 	 �d
dŸ„«       «       «       ZHe2jk                  d d¡dddgi¬7«       ejt                  d¢d£¬}«      eed¢e-d.dfd¤„«       «       «       «       ZIe2jk                  d¥d¦dddgi¬7«       ejt                  d0d§¬}«      eed0e-d.dfd¨„«       «       «       «       ZJe2jk                  d©dªdddgi¬7«       ejX                  d«dd¬¬«       ejt                  d­d®¬}«      eed¯e1d­e-d.dfd°„«       «       «       «       «       ZKe2jk                  d±d²dddgi¬7«      ee	 	 �d
d³„«       «       «       ZLe2jk                  d´dµdddgi¬7«       ejX                  did¶eMd·¬R«       ejt                  d¸ddd¹¬J«       ejt                  dºddd»¬J«      eeedpeMd¸e	e-   dºe	e-   d¼ed.df
d½„«       «       «       «       «       «       «       ZNe2jk                  d¾d¿dddgi¬7«       ejX                  dÀdÁeMdÂ¬R«       ejt                  d¸eMd¹¬Ã«       ejt                  dºeMd»¬Ã«      eedÄeMd¸eMdºeMd.dfdÅ„«       «       «       «       «       «       ZOe2jk                  dÆdÇdddgi¬7«       ejX                  dÀdÈeMdÉ¬R«       ejX                  did¶eMd·¬R«       ejt                  d¸ddd¹¬J«       ejt                  dºddd»¬J«      eeedÄeMdpeMd¸e	e-   dºe	e-   d¼ed.dfdÊ„«       «       «       «       «       «       «       «       ZPe2jk                  dËdÌdddgi¬7«       ejX                  dÀdÈeMdÍ¬R«       ejX                  dÎde.dÏ¬R«       ejX                  dÐdÑeMdÒ¬R«       ejt                  dÓdÔ¬}«       ejt                  dÕddeMdÖ¬×«       ejt                  dØddeMdÙ¬×«       ejt                  dÚddeMdÛ¬×«      eedÄeMdÜe	e.   dÝeMdÓe-dÕe	eM   dØe	eM   dÚe	eM   d.dfdÞ„«       «       «       «       «       «       «       «       «       «       ZQe2jk                  dßdàdddgi¬7«       ejX                  dÀdÈeMdá¬R«       ejt                  dâeMdã¬Ã«       ejt                  däeMdå¬Ã«       ejt                  dæeMdç¬Ã«       ejt                  dèeMdé¬Ã«      eedÄeMdâeMdäeMdæeMdèeMd.dfdê„«       «       «       «       «       «       «       «       ZRe2jk                  dëdìdddgi¬7«       ejX                  didíeMdî¬R«      eeedpeMd¼ed.dfdï„«       «       «       «       «       ZSe2jk                  ddðdddgi¬7«       ejX                  did¶eMdî¬R«       ejX                  dñddò¬«      eeedpeMdóe1d¼ed.dfdô„«       «       «       «       «       «       ZTe2jk                  dõdödddgi¬7«       ejX                  d÷ ejª                  dødùg«      dødú¬û«       ejX                  dü ejª                  g dý¢«      dþdÿ¬û«       ejX                  �d de.�d¬R«       ejX                  �dd�d¬V«      eee�de-�de-�de	e.   �de	e-   d¼ed.df�d„«       «       «       «       «       «       «       «       ZVy(  é    )Úabsolute_importÚprint_functionN)ÚSimpleNamespace)ÚAnyÚDictÚOptionalÚTuple)Úenable_pretty_logging)ÚCategorizedGroup)ÚU2CliClientÚ
U2CliErrorÚensure_server)
Ú_normalize_swipe_directionÚ_optional_floatÚ_parse_swipe_fxÚ_require_selectorÚ_selector_chainÚ_selector_chain_codeÚ_selector_chain_payloadÚglobal_optionsÚhandle_errorsÚselector_options)Ú_absolute_filenameÚ_image_resolutionÚ_output_messageÚ_output_resultÚ_output_textÚ
_parse_key)Ú
run_serverÚu2cliFTÚhelp_option_namesz-hz--help)ÚnameÚclsÚinvoke_without_commandÚno_args_is_helpÚcontext_settingsz-dz--debugzshow log)Úis_flagÚhelpz-sz--serialÚSERIALzdevice serial number)ÚtypeÚmetavarr(   z--server-hostz	127.0.0.1ÚHOSTzu2cli server listen host)Údefaultr+   r(   z--server-portiùE  ÚPORTzu2cli server listen port)r*   r-   r+   r(   z--device-porti0#  z"uiautomator2 server port on deviceÚctxÚdebugÚserialÚserver_hostÚserver_portÚdevice_portÚreturnc                 ó  — | j                  t        «       || j                  d<   || j                  d<   || j                  d<   || j                  d<   || j                  d<   t        «        |rt        j                  d«       yy)u2   u2cli â€” command line interface for uiautomator2.r0   r1   r2   r3   r4   zdebug mode enabledN)Úensure_objectÚdictÚobjr
   Úloggerr0   )r/   r0   r1   r2   r3   r4   s         ú`/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/uiautomator2/agent_cli/commands.pyÚclir<      ss   € ð, ×Ñ”dÔØ€C‡G�GˆGÑØ€C‡G�GˆHÑØ(€C‡G�GˆMÑØ(€C‡G�GˆMÑØ(€C‡G�GˆMÑÜÔÙÜ�‰Ð)Õ*ð ó    Úkeyc                 ó`   — t        j                  «       j                  «       j                  |    S ©N)ÚclickÚget_current_contextÚ	find_rootr9   )r>   s    r;   Ú_get_globalrD   <   s%   € Ü×$Ñ$Ó&×0Ñ0Ó2×6Ñ6°sÑ;Ð;r=   ÚmethodÚparamsc                 ó°   — t         }t         |d«       |d«      «      \  }} |d«       |d«      dœ}|r|j                  |«       |j                  | |«      S )Nr2   r3   r1   r4   )r1   Úport)rD   r   ÚupdateÚrequest)rE   rF   ÚgÚclientÚ_Úpayloads         r;   Ú_request_device_methodrO   ?   sV   € ô 	€AÜ™a Ó.±°-Ó0@ÓA�I€FˆAÙ)*¨8«¹aÀÓ>NÑO€GÙØ�‰�vÔØ�>‰>˜& 'Ó*Ð*r=   Úserverzrun u2cli server in foreground)r"   r(   r&   z--foreground)r'   ÚhiddenÚ
foregroundc                 ó@   — t        t        d«      t        d«      «       y)zRun u2cli server in foreground.r2   r3   N)r   rD   )rR   s    r;   Ú
cmd_serverrT   N   s   € ô Œ{˜=Ó)¬;°}Ó+EÕFr=   zstart-serverzstart u2cli serverc                  ó˜   — t        t        d«      t        d«      «      \  } }|rd}nd}t        |t        d«      t        d«      dœ¬«       y)zStart u2cli server.r2   r3   zu2cli server startedzu2cli server is already running)ÚhostrH   )ÚextraN)r   rD   r   )rM   ÚstartedÚmessages      r;   Úcmd_start_serverrZ   \   sF   € ô œ{¨=Ó9¼;À}Ó;UÓV�J€A€wÙØ(‰à3ˆÜ�G¬K¸Ó,FÔP[Ð\iÓPjÑ#kÖlr=   zkill-serverzstop u2cli serverc                  ó´   — t        t        d«      t        d«      «      } | j                  «       st        d«       y| j	                  dd¬«       t        d«       y)	zStop u2cli server.r2   r3   zu2cli server is not runningNzserver.stopg       @)Útimeoutzu2cli server stopped)r   rD   Ú
is_runningr   rJ   )rL   s    r;   Úcmd_kill_serverr^   m   sK   € ô œ ]Ó3´[ÀÓ5OÓP€FØ×ÑÔÜÐ5Ô6ØØ
‡N�N�=¨#€NÔ.ÜÐ*Õ+r=   zserver-statuszshow u2cli server statusc                  óè   — t        t        d«      t        d«      «      } | j                  «       s$dt        d«      t        d«      dœ}t        |«       y| j	                  «       }d|d<   t        |«       y)zShow u2cli server status.r2   r3   F)ÚrunningrV   rH   NTr`   )r   rD   r]   r   Ústatus)rL   ra   s     r;   Úcmd_server_statusrb   ~   sf   € ô œ ]Ó3´[ÀÓ5OÓP€FØ×ÑÔØ"¬K¸Ó,FÔP[Ð\iÓPjÑkˆÜ�vÔØØ�]‰]‹_€FØ€Fˆ9ÑÜ�6Õr=   Ú
screenshotztake device screenshotÚfilenamezscreenshot.jpgÚFILENAME)Úrequiredr-   r+   c                 óö  — t        t        d«      t        d«      «      \  }}t        | «      }|j                  dt        d«      t        d«      |dœ«      }t	        |t
        «      r|j                  d«      xs |n|}t	        |t
        «      r|j                  d«      nd	}t	        |t
        «      r|j                  d
«      n
t        d«      }|st        |«      }d|i}|r||d
<   |r||d<   t        d| z  |¬«       y	)zTake device screenshot.r2   r3   rc   r1   r4   )r1   rH   rd   rd   Ú
resolutionNÚdevice_serialÚsaved_tozd.screenshot(%r)©Úu2_coderW   )	r   rD   r   rJ   Ú
isinstancer8   Úgetr   r   )	rd   rL   rM   Úabs_filenameÚresultrj   rh   ri   rW   s	            r;   Úcmd_screenshotrq   ”   sï   € ô œk¨-Ó8¼+ÀmÓ:TÓU�I€FˆAÜ% hÓ/€LØ�^‰^˜LÜ˜hÓ'Ü˜MÓ*Ø ñ+ó €Fô
 :DÀFÌDÔ9Qˆv�z‰z˜*Ó%Ò5©ÐWc€HÜ-7¸ÄÔ-E�—‘˜LÔ)È4€JÜ3=¸fÄdÔ3K�F—J‘J˜Ô/ÔQ\Ð]eÓQf€MÙÜ& xÓ0ˆ
Ø'¨Ð2€EÙØ!.ˆˆoÑÙØ(ˆˆlÑÜØ" XÑ-Øör=   zdump-hierarchyzdump UI hierarchyz--compressedzuse compressed hierarchyz--max-depthzmaximum hierarchy depth)r-   r*   r(   z--outputz-ozsave output to file)r-   r(   z--rawz%output raw XML without simplificationÚ
compressedÚ	max_depthÚoutputÚrawc           
      ó”  — t        t        d«      t        d«      «      \  }}|rt        |«      nd}|j                  dt        d«      t        d«      | |||dœ«      }g }| r|j	                  d«       |�|j	                  d	|z  «       d
dj                  |«      z  }	t        |t        «      r|j                  d«      n
t        d«      }
|r<t        |t        «      r|j                  d«      n|}d|i}|
r|
|d<   t        |	|¬«       yt        |t        «      r|j                  d«      n|}t        |	|
rd|
ind¬«       |rt        |«       yy)zDump UI hierarchy.r2   r3   NÚdump_hierarchyr1   r4   )r1   rH   rr   rs   ru   rt   zcompressed=Truezmax_depth=%szd.dump_hierarchy(%s)ú, ri   rd   rj   rk   Úcontent)r   rD   r   rJ   ÚappendÚjoinrm   r8   rn   r   r   )rr   rs   rt   ru   rL   rM   Úout_filerp   Ú_partsrl   ri   rj   rW   ry   s                 r;   Úcmd_dump_hierarchyr~   ¶   s=  € ô$ œk¨-Ó8¼+ÀmÓ:TÓU�I€FˆAÙ-3Ô! &Ô)¸€HØ�^‰^Ð,Ü˜hÓ'Ü˜MÓ*Ø ØØØñ/ó €Fð €FÙØ�‰Ð'Ô(ØÐØ�‰�n yÑ0Ô1Ø$ t§y¡y°Ó'8Ñ8€GÜ3=¸fÄdÔ3K�F—J‘J˜Ô/ÔQ\Ð]eÓQf€MÙÜ-7¸ÄÔ-E�6—:‘:˜jÔ)È8ˆØ!+¨XÐ 6ˆÙØ%2ˆE�/Ñ"Ü˜w¨eÕ4Øä'1°&¼$Ô'?ˆf�j‰j˜Ô#ÀV€GÜ˜7Ém¨?¸MÑ*JÐaeÕfÙÜ�WÕð r=   zapp-currentzshow current foreground appc                  ó4   — t        d«      } t        | d¬«       y)zShow current foreground app.Úapp_currentzd.app_current()©rl   N©rO   r   ©rp   s    r;   Úcmd_app_currentr„   æ   ó   € ô $ MÓ2€FÜ�6Ð#4Ö5r=   zdevice-infozshow device informationc                  ó4   — t        d«      } t        | d¬«       y)zShow device information.Údevice_infozd.device_infor�   Nr‚   rƒ   s    r;   Úcmd_device_inforˆ   ó   s   € ô $ MÓ2€FÜ�6 ?Ö3r=   zwindow-sizezshow screen window sizec                  ó4   — t        d«      } t        | d¬«       y)zShow screen window size.Úwindow_sizezd.window_size()r�   Nr‚   rƒ   s    r;   Úcmd_window_sizer‹      r…   r=   Úshellzrun shell commandz	--timeouté<   zcommand timeout in secondsÚcmdéÿÿÿÿÚCMD)Únargsrf   r+   r\   .c                 ó~  — dj                  |«      }t        d|| dœ«      }t        |t        «      r|j	                  d«      n|}i }t        |t        «      r|j	                  d«      nd}|r||d<   t        |t        «      r%|j	                  d«      �|j	                  d«      |d<   t        |d|›d	| ›d
�|xs d¬«       y)zRun shell command on device.ú rŒ   )Úcommandr\   rt   ri   NÚ	exit_codezd.shell(ú
, timeout=ú)rk   )r{   rO   rm   r8   rn   r   )r\   rŽ   r”   rp   rt   rW   ri   s          r;   Ú	cmd_shellr˜     s®   € ð �h‰h�s‹m€GÜ# GØ07ÀGÑ$LóN€Fä%/°¼Ô%=ˆV�Z‰Z˜Ô!À6€FØ€EÜ3=¸fÄdÔ3K�F—J‘J˜Ô/ÐQU€MÙØ!.ˆˆoÑÜ�&œ$Ô F§J¡J¨{Ó$;Ð$GØ#ŸZ™Z¨Ó4ˆˆkÑÜ‘6ÂÊÐ#QØš $ö(r=   z	app-startzstart applicationz
--activityzspecific activity to launchz--waitzwait for app to launchz--stopzstop app before launchingÚpackageÚPACKAGE)r+   ÚactivityÚwaitÚstopc                 óø   — || ||dœ}t        d|«      }t        |«      g}| r|j                  d| z  «       |r|j                  d«       |r|j                  d«       t        |ddj	                  |«      z  ¬«       y	)
zStart application.)r™   r›   rœ   r�   Ú	app_startzactivity=%rz	wait=Truez	stop=Truezd.app_start(%s)rx   r�   N)rO   Úreprrz   r   r{   )r›   rœ   r�   r™   rF   rp   Úpartss          r;   Úcmd_app_startr¢   +  s{   € ð& ØØØñ	€Fô $ K°Ó8€FÜ�'‹]ˆO€EÙØ�‰�] XÑ-Ô.ÙØ�‰�[Ô!ÙØ�‰�[Ô!Ü�6Ð#4°t·y±yÀÓ7GÑ#GÖHr=   zapp-listzlist installed packagesz--filterÚfilter_Ú z(filter string passed to pm list packagesc                 óà   — t        dd| i«      }t        |t        «      r|j                  d«      n|}t        |t        «      rd|j                  d«      ind}| rd| z  }nd}t	        |||¬«       y)	zList installed packages.Úapp_listÚfilterÚpackagesri   Nzd.app_list(%r)zd.app_list()rk   ©rO   rm   r8   rn   r   )r£   rp   r¨   rW   rl   s        r;   Úcmd_app_listrª   M  so   € ô $ JØ%-¨wÐ$7ó9€Fä)3°F¼DÔ)Aˆv�z‰z˜*Ô%Àv€HÜ>HÈÔQUÔ>Vˆ_˜fŸj™j¨Ó9Ñ:Ð\`€EÙØ" WÑ,‰à ˆÜ�8 W°EÖ:r=   zapp-stopzstop applicationz--allÚall_zstop all third-party appsc                 ón   — | s|st        d«      ‚t        d|| dœ«      }| rd}nd|z  }t        ||¬«       y)zStop application.z(package is required unless --all is usedÚapp_stop)r™   Úallzd.app_stop_all()zd.app_stop(%r)r�   N)r   rO   r   )r«   r™   rp   rl   s       r;   Úcmd_app_stopr¯   c  sF   € ñ ™ÜÐCÓDÐDÜ# JØ07ÀÑ$EóG€FáØ$‰à" WÑ,ˆÜ�6 7Ö+r=   zapp-installzinstall applicationÚapkÚAPKc                 óÒ   — t        dd| i«      }t        |t        «      rd|j                  d«      ind}t        |t        «      r|j                  d«      n|}t	        |d| z  |¬«       y)zInstall application.Úapp_installr°   ri   Nrp   zd.app_install(%r)rk   r©   )r°   rp   rW   Úinstall_results       r;   Úcmd_app_installrµ   {  sb   € ô $ MØ%*¨C Ló2€Fä>HÈÔQUÔ>Vˆ_˜fŸj™j¨Ó9Ñ:Ð\`€EÜ-7¸ÄÔ-E�V—Z‘Z Ô)È6€NÜ�>Ð+>ÀÑ+DÈEÖRr=   zapp-uninstallzuninstall applicationc                 óÒ   — t        dd| i«      }t        |t        «      rd|j                  d«      ind}t        |t        «      r|j                  d«      n|}t	        |d| z  |¬«       y)zUninstall application.Úapp_uninstallr™   ri   Nrp   zd.app_uninstall(%r)rk   r©   )r™   rp   rW   Úuninstall_results       r;   Úcmd_app_uninstallr¹   �  sf   € ô $ OØ%.°Ð$8ó:€Fä>HÈÔQUÔ>Vˆ_˜fŸj™j¨Ó9Ñ:Ð\`€EÜ/9¸&Ä$Ô/G�v—z‘z (Ô+ÈVÐÜÐ#Ð-BÀWÑ-LÐTYÖZr=   z	app-clearzclear application datac                 ó@   — t        dd| i«      }t        |d| z  ¬«       y)zClear application data.Ú	app_clearr™   zd.app_clear(%r)r�   Nr‚   )r™   rp   s     r;   Úcmd_app_clearr¼   Ÿ  s(   € ô $ KØ%.°Ð$8ó:€Fä�6Ð#4°wÑ#>Ö?r=   zopen-notificationzopen notification shadec                  ó4   — t        d«      } t        | d¬«       y)zOpen notification shade.Úopen_notificationzd.open_notification()r�   Nr‚   rƒ   s    r;   Úcmd_open_notificationr¿   ²  s   € ô $Ð$7Ó8€FÜ�6Ð#:Ö;r=   zopen-quick-settingszopen quick settingsc                  ó4   — t        d«      } t        | d¬«       y)zOpen quick settings.Úopen_quick_settingszd.open_quick_settings()r�   Nr‚   rƒ   s    r;   Úcmd_open_quick_settingsrÂ   ¿  s   € ô $Ð$9Ó:€FÜ�6Ð#<Ö=r=   zopen-urlzopen urlÚurlÚURLc                 ó@   — t        dd| i«      }t        |d| z  ¬«       y)z	Open URL.Úopen_urlrÃ   zd.open_url(%r)r�   Nr‚   )rÃ   rp   s     r;   Úcmd_open_urlrÇ   Ì  s'   € ô $ JØ%*¨C Ló2€Fä�6Ð#3°cÑ#9Ö:r=   Úpressz	press keyÚKEYc                 ó†   — t        | «      }t        dd|i«      }t        |t        «      rd|z  }nd|z  }t	        ||¬«       y)z
Press key.rÈ   r>   zd.press(%s)zd.press(%r)r�   N)r   rO   rm   Úintr   )r>   Úparsedrp   rl   s       r;   Ú	cmd_pressrÍ   ß  sH   € ô ˜‹_€FÜ# GØ%*¨F Oó5€Fä�&œ#ÔØ &Ñ(‰à &Ñ(ˆÜ�6 7Ö+r=   z	send-keysztype text into focused inputz
--no-clearzdo not clear before typingÚtextÚTEXTÚno_clearc                 óP   — |  }t        d||dœ«      }t        |d|›d|›d�¬«       y)zType text into focused input.Ú	send_keys)rÎ   Úclearzd.send_keys(z, clear=r—   r�   Nr‚   )rÐ   rÎ   rÓ   rp   s       r;   Úcmd_send_keysrÔ   ô  s/   € ð ˆL€EÜ# KØ-1¸EÑ$BóD€Fä‘6Â$ÊÐ#NÖOr=   z
clear-textzclear focused input textc                  ó4   — t        d«      } t        | d¬«       y)zClear focused input text.Ú
clear_textzd.clear_text()r�   Nr‚   rƒ   s    r;   Úcmd_clear_textr×     s   € ô $ LÓ1€FÜ�6Ð#3Ö4r=   rA   zclick coordinates or selectorg      @zselector wait timeoutÚxÚXÚyÚYÚkwargsc                 óØ  — t        di |¤Ž}||_        ||_        t        d«      |_        t        d«      |_        t        d«      |_        t        d«      |_        | |_        t        |«      \  }}t        |«      }t        |«      }|r0t        ||«      }	| |	d<   t        d|	«      }
t        ||«      ›d| ›d�}n'|�|€t        d
«      ‚t        d||dœ«      }
d|›d|›d�}t        |
|¬«       y	)zClick coordinates or selector.r2   r3   r4   r1   r\   rA   z.click(timeout=r—   Nú4x and y are required when no selector option is used)rØ   rÚ   zd.click(rx   r�   © )r   rØ   rÚ   rD   r2   r3   rH   r1   r\   r   r   r   rO   r   r   r   )r\   rØ   rÚ   rÜ   ÚargsÚselectorÚchild_selectorsÚfxÚfyrN   rp   rl   s               r;   Ú	cmd_clickrå     sï   € ô& Ñ$˜VÑ$€DØ€D„FØ€D„FÜ" =Ó1€DÔÜ" =Ó1€DÔÜ˜MÓ*€D„IÜ˜hÓ'€D„KØ€D„Lä /°Ó 5Ñ€HˆoÜ	˜Ó	€BÜ	˜Ó	€BÙÜ)¨(°OÓDˆØ$ˆ�	ÑÜ'¨°Ó9ˆÜ,@ÀÈ?Õ,[Ò]dÐe‰àˆ:˜˜ÜÐSÓTÐTÜ'¨Ø.0°rÑ(:ó<‰â')ª2Ð.ˆÜ�6 7Ö+r=   zdouble-clickzdouble click coordinatesz
--durationgš™™™™™¹?zdelay between taps)r*   r+   Údurationc           
      óR   — t        d||| dœ«      }t        |d|›d|›d| ›d�¬«       y)	zDouble click coordinates.Údouble_click©rØ   rÚ   ræ   zd.double_click(rx   ú, duration=r—   r�   Nr‚   )ræ   rØ   rÚ   rp   s       r;   Úcmd_double_clickrë   @  s2   € ô  $ NØØØñ5ó €Fô
 ‘6ÊAÊqÒRZÐ#[Ö\r=   z
long-clickz"long click coordinates or selectorg      à?zlong press durationc                 ó  — t        di |¤Ž}||_        ||_        t        d«      |_        t        d«      |_        t        d«      |_        t        d«      |_        | |_        ||_	        t        |«      \  }}t        |«      }t        |«      }	|rBt        ||«      }
|
j                  | |dœ«       t        d|
«      }t        ||«      ›d| ›d|›d	�}n+|�|	€t!        d«      ‚t        d||	| dœ«      }d|›d|	›d| ›d	�}t#        ||¬«       y
)z#Long click coordinates or selector.r2   r3   r4   r1   )ræ   r\   Ú
long_clickz.long_click(duration=r–   r—   NrÞ   ré   zd.long_click(rx   rê   r�   rß   )r   rØ   rÚ   rD   r2   r3   rH   r1   ræ   r\   r   r   r   rI   rO   r   r   r   )ræ   r\   rØ   rÚ   rÜ   rà   rá   râ   rã   rä   rN   rp   rl   s                r;   Úcmd_long_clickrî   W  s  € ô* Ñ$˜VÑ$€DØ€D„FØ€D„FÜ" =Ó1€DÔÜ" =Ó1€DÔÜ˜MÓ*€D„IÜ˜hÓ'€D„KØ€D„MØ€D„Lä /°Ó 5Ñ€HˆoÜ	˜Ó	€BÜ	˜Ó	€BÙÜ)¨(°OÓDˆØ�‰Ø Øñ
ô 	ô (¨°gÓ>ˆä  ¨?Õ;ºXÂwðP‰ð ˆ:˜˜ÜÐSÓTÐTÜ'¨Ø.0°rÀxÑ(PóR‰â9;ºRÂÐJˆÜ�6 7Ö+r=   Úswipezswipe coordinates or directionzswipe durationz--stepsznumber of swipe stepsz--scaleçÍÌÌÌÌÌì?zdirection swipe distance scalerã   ÚFXrä   ÚFY)rf   r-   r*   r+   ÚtxÚTXÚtyÚTYÚstepsÚscalec                 ó¢  — t        |«      }|rM|€|€|�t        d«      ‚||| |dœ}t        d|«      }	|�d|›d|›d|›d�}
nd|›d|›d	| ›d�}
t        |	|
¬
«       y|�|�|€t        d«      ‚|dk7  rt        d«      ‚t	        |«      }||||| |dœ}t        d|«      }	|�d|›d|›d|›d|›d|›d�}
nd|›d|›d|›d|›d	| ›d�}
t        |	|
¬
«       y)zSwipe coordinates or direction.NzAcoordinate arguments are not allowed when swipe direction is used)Ú	directionrø   ræ   r÷   rï   zd.swipe_ext(z, scale=z, steps=r—   rê   r�   z?fx, fy, tx and ty are required when swipe direction is not usedrð   z6--scale is only supported when swipe direction is used)rã   rä   ró   rõ   ræ   r÷   zd.swipe(rx   )r   r   rO   r   r   )ræ   r÷   rø   rã   rä   ró   rõ   rú   rF   rp   rl   Ú	parsed_fxs               r;   Ú	cmd_swiperü   Š  s  € ô0 +¨2Ó.€IÙØˆ>˜R˜^¨r¨~ÜÐ`ÓaÐaØ/8À5Ø/7À%ñ"Iˆä'¨°Ó8ˆØÑÚ?HÊ%ÒQVÐW‰Gð ò CLÊUÒT\Ð]ˆGÜ�v wÕ/Øà	€z�R�Z 2 :ÜÐZÓ[Ð[Ø�‚|ÜÐQÓRÐRä Ó#€IØ R¨r¸ÈÐ\aÑb€FÜ# G¨VÓ4€FØÑÚ9BÂBÊÊBÒPUÐV‰ð ò =FÂrÊ2ÊrÒS[Ð\ˆÜ�6 7Ö+r=   Údragzdrag coordinateszdrag durationÚsxÚSXÚsyÚSYÚexÚEXÚeyÚEYc                 ób   — t        d||||| dœ«      }t        |d|›d|›d|›d|›d| ›d�¬«       y)	zDrag coordinates.rý   )rþ   r   r  r  ræ   zd.drag(rx   rê   r—   r�   Nr‚   )ræ   rþ   r   r  r  rp   s         r;   Úcmd_dragr  ¾  s?   € ô( $ FØØØØØñ-ó €Fô ‘6ÊBÒPRÒTVÒXZÒ\dÐ#eÖfr=   Úexistszcheck selector existsg        zwait timeoutc                 óœ  — t        d
i |¤Ž}| |_        t        |«      \  }}t        |«       t	        ||«      }| |d<   t        d|«      }| rt        ||«      ›d| ›d�}ndt        ||«      z  }t        |t        «      r|j                  d«      nd}t        |t        «      r|j                  d«      n|}	t        |	||r
d|i¬	«       yd¬	«       y)zCheck if selector exists.r\   Úselector_existsz.exists(timeout=r—   z	%s.existsri   Nrp   rk   rß   )r   r\   r   r   r   rO   r   rm   r8   rn   r   )
r\   rÜ   rà   rá   râ   rN   rp   rl   ri   r  s
             r;   Ú
cmd_existsr  Þ  sÌ   € ô Ñ$˜VÑ$€DØ€D„Lä /°Ó 5Ñ€HˆoÜ�hÔÜ% h°Ó@€GØ €GˆIÑÜ#Ð$5°wÓ?€FÙÜ-AÀ(ÈOÕ-\Ò^eÐf‰àÔ 4°X¸Ó OÑOˆÜ3=¸fÄdÔ3K�F—J‘J˜Ô/ÐQU€MÜ%/°¼Ô%=ˆV�Z‰Z˜Ô!À6€FÜ�6 7Ù=J˜/¨=Ð9öVØPTöVr=   z!wait selector appear or disappearz--gonezwait until goneÚgonec                 óÎ  — t        d
i |¤Ž}| |_        ||_        t        |«      \  }}t	        |«       t        ||«      }|j                  | |dœ«       t        d|«      }|rt        ||«      ›d| ›d�}nt        ||«      ›d| ›d�}t        |t        «      r|j                  d«      nd}	t        |t        «      r|j                  d«      n|}
t        |
||	r
d|	i¬	«       yd¬	«       y)z)Wait for selector to appear or disappear.)r\   r  Úselector_waitz.wait_gone(timeout=r—   z.wait(timeout=ri   Nrp   rk   rß   )r   r\   r  r   r   r   rI   rO   r   rm   r8   rn   r   )r\   r  rÜ   rà   rá   râ   rN   rp   rl   ri   Úwait_results              r;   Úcmd_waitr  þ  sÙ   € ô" Ñ$˜VÑ$€DØ€D„LØ€D„Iä /°Ó 5Ñ€HˆoÜ�hÔÜ% h°Ó@€GØ‡N�N˜w°Ñ5Ô6Ü# O°WÓ=€FÙÜ0DÀXÈÕ0_ÒahÐi‰ä+?ÀÈ/Õ+ZÒ\cÐdˆÜ3=¸fÄdÔ3K�F—J‘J˜Ô/ÐQU€MÜ*4°V¼TÔ*B�&—*‘*˜XÔ&È€KÜ�;¨Ù=J˜/¨=Ð9öVØPTöVr=   Úscrollzscroll selectorz--directionÚvertÚhorizzscroll axis)r*   r-   r(   z--action)ÚforwardÚbackwardÚtoEndÚtoBeginningr  zscroll actionz--max-swipesz
max swipesz	--to-textzscroll until text is visiblerú   ÚactionÚ
max_swipesÚto_textc                 óŠ  — t        di |¤Ž}| |_        ||_        ||_        ||_        t        |«      \  }}t        |«       t        ||«      }|j                  | |||dœ«       t        d|«      }	|rt        ||«      ›d| ›d|›d�}
n0|�t        ||«      ›d| ›d|›d|›d�}
nt        ||«      ›d| ›d|›d	�}
t        |	|
¬
«       y)zScroll selector.)rú   r  r  r  Úselector_scrollz.scroll.z	.to(text=r—   Nú.z(max_swipes=z()r�   rß   )r   rú   r  r  r  r   r   r   rI   rO   r   r   )rú   r  r  r  rÜ   rà   rá   râ   rN   rp   rl   s              r;   Ú
cmd_scrollr  !  sÖ   € ô. Ñ$˜VÑ$€DØ€D„NØ€D„KØ €D„OØ€D„Lä /°Ó 5Ñ€HˆoÜ�hÔÜ% h°Ó@€GØ‡N�NØØØ Øñ	ô ô $Ð$5°wÓ?€FÙä  ¨?Õ;ºYÊðQ‰à	Ð	ä  ¨?Õ;ºYÊÒPZð\‰ô ! ¨?Õ;ºYÊðPˆä�6 7Ö+r=   r@   )r5   N)WÚ
__future__r   r   ÚloggingÚtypesr   Útypingr   r   r   r	   rA   Úuiautomator2r
   Ú uiautomator2.agent_cli.click_extr   Úuiautomator2.agent_cli.clientr   r   r   Úuiautomator2.agent_cli.optionsr   r   r   r   r   r   r   r   r   r   Úuiautomator2.agent_cli.outputr   r   r   r   r   r   Úuiautomator2.agent_cli.serverr   Ú	getLoggerÚ__name__r:   ÚgroupÚoptionÚstrrË   Úpass_contextÚContextÚboolr<   rD   rO   r”   rT   rZ   r^   rb   Úargumentrq   r~   r„   rˆ   r‹   r˜   r¢   rª   r¯   rµ   r¹   r¼   r¿   rÂ   rÇ   rÍ   rÔ   r×   Úfloatrå   rë   rî   rü   r  r  r  ÚChoicer  rß   r=   r;   ú<module>r4     s³  ð÷ 7ã Ý !ß -Ó -ã å .Ý =ß PÑ P÷÷ ÷ ÷÷ å 4à	ˆ×	Ñ	˜8Ó	$€ð
 €‡�Ø	ØØ ØØ)¨D°(Ð+;Ð<ôð €‡�ˆd�I t°*Ô=Ø€‡�ˆd�J S°(ÐAWÔXØ€‡�ˆo {¸FÐIcÔdØ€‡�ˆo C°ÀÐMgÔhØ€‡�ˆo C°¸vÐLpÔqØ×Ñð+Ø	�‰ð+àð+ð �S‰Mð+ð ð	+ð
 ð+ð ð+ð 
ò+ó ó ró ió eó Yó >óð+ð*<�Só <ð
 (,ò	+Øð	+à�T˜#˜s˜(‘^Ñ$ð	+ð 	ó	+ð ‡�Ø	Ø	)Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆn d°4Ô8ØØðGØðGà	òGó ó ó 9óðGð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 ØðmØ	ómó ó óðmð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 Øð,Ø	ó,ó ó óð,ð ‡�Ø	Ø	#Ø)¨D°(Ð+;Ð<ð ó ð
 Øð
Ø	ó
ó ó óð
ð ‡�Ø	Ø	!Ø)¨D°(Ð+;Ð<ð ó ð
 €‡��
 UÐ4DÈjÔYØØðØðà	òó ó ó Zóðð4 ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆn dÐ1KÔLØ€‡�ˆm T°Ð:SÔTØ€‡�ˆj˜$¨Ð3HÔIØ€‡�ˆg˜tÐ*QÔRØØð#Øð#à˜‰}ð#ð �S‰Mð#ð 
ð	#ð
 
ò#ó ó ó Só Jó Uó Móð#ðJ ‡�Ø	Ø	&Ø)¨D°(Ð+;Ð<ð ó ð
 Øð6Ø	ó6ó ó óð6ð ‡�Ø	Ø	"Ø)¨D°(Ð+;Ð<ð ó ð
 Øð4Ø	ó4ó ó óð4ð ‡�Ø	Ø	"Ø)¨D°(Ð+;Ð<ð ó ð
 Øð6Ø	ó6ó ó óð6ð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆk 2¨CÐ6RÔSØ€‡��˜R¨$¸Ô>ØØð(Øð(à	ˆs�Cˆx‰ð(ð 
ò(ó ó ó ?ó Tóð(ð* ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆl DÐ/LÔMØ€‡�ˆh Ð+CÔDØ€‡�ˆh Ð+FÔGØ€‡��	 9Ô-ØØðIØ�s‰mðIà
ðIð ðIð ð	Ið
 
òIó ó ó .ó Hó Eó NóðIð. ‡�Ø	Ø	"Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆj˜)¨RÐ6`ÔaØØð;Øð;à	ò;ó ó ó bóð;ð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆg�v tÐ2MÔNØ€‡��	 E°4ÀÔKØØð,Ø
ð,à�c‰]ð,ð 
ò,ó ó ó Ló Oóð,ð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡��˜uÔ%ØØðSØ	ðSà	òSó ó ó &óðSð ‡�Ø	Ø	 Ø)¨D°(Ð+;Ð<ð ó ð
 €‡��	 9Ô-ØØð[Øð[à	ò[ó ó ó .óð[ð ‡�Ø	Ø	!Ø)¨D°(Ð+;Ð<ð ó ð
 €‡��	 9Ô-ØØð@Øð@à	ò@ó ó ó .óð@ð ‡�Ø	Ø	"Ø)¨D°(Ð+;Ð<ð ó ð
 Øð<Ø	ó<ó ó óð<ð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 Øð>Ø	ó>ó ó óð>ð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡��˜uÔ%ØØð;Ø	ð;à	ò;ó ó ó &óð;ð ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡��˜uÔ%ØØð,Ø	ð,à	ò,ó ó ó &óð,ð ‡�Ø	Ø	'Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆl DÐ/KÔLØ€‡�� Ô'ØØðPØðPà
ðPð 
òPó ó ó (ó MóðPð ‡�Ø	Ø	#Ø)¨D°(Ð+;Ð<ð ó ð
 Øð5Ø	ó5ó ó óð5ð ‡�Ø	Ø	(Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆk 3¨UÐ9PÔQØ€‡��˜e¨T¸3Ô?Ø€‡��˜e¨T¸3Ô?ØØØð,Øð,à��}ð,ð ��}ð,ð ð	,ð
 
ò,ó ó ó ó @ó @ó Róð,ðB ‡�Ø	Ø	#Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆl C¨eÐ:NÔOØ€‡��˜%¨Ô-Ø€‡��˜%¨Ô-ØØð]Øð]àð]ð ð]ð 
ò	]ó ó ó .ó .ó Póð]ð ‡�Ø	Ø	-Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆl C¨eÐ:OÔPØ€‡�ˆk 3¨UÐ9PÔQØ€‡��˜e¨T¸3Ô?Ø€‡��˜e¨T¸3Ô?ØØØð%,Øð%,àð%,ð ��}ð%,ð ��}ð	%,ð
 ð%,ð 
ò%,ó ó ó ó @ó @ó Ró Qóð%,ðN ‡�Ø	Ø	)Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆl C¨eÐ:JÔKØ€‡�ˆi ¨CÐ6MÔNØ€‡�ˆi ¨5Ð7WÔXØ€‡��˜dÔ#Ø€‡��˜u¨d¸ÈÔMØ€‡��˜u¨d¸ÈÔMØ€‡��˜u¨d¸ÈÔMØØð$,Øð$,à�C‰=ð$,ð ð$,ð 	ð	$,ð
 	�‰ð$,ð 	�‰ð$,ð 	�‰ð$,ð 
ò$,ó ó ó Nó Nó Nó $ó Yó Oó Lóð$,ðL ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆl C¨e¸/ÔJØ€‡��˜5¨$Ô/Ø€‡��˜5¨$Ô/Ø€‡��˜5¨$Ô/Ø€‡��˜5¨$Ô/ØØðgØðgàðgð 	ðgð 	ð	gð
 	ðgð 
ògó ó ó 0ó 0ó 0ó 0ó Kóðgð( ‡�Ø	Ø	 Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆk 3¨U¸ÔHØØØðVØðVàðVð 
òVó ó ó ó IóðVð. ‡�Ø	Ø	,Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆk 3¨U¸ÔHØ€‡�ˆh Ð+<Ô=ØØØðVØðVà
ðVð ðVð 
ò	Vó ó ó ó >ó IóðVð2 ‡�Ø	Ø	Ø)¨D°(Ð+;Ð<ð ó ð
 €‡�ˆm , %§,¡,°¸Ð/@Ó"AÈ6Ø ô"à€‡�ˆj˜|˜uŸ|™|Ò,[Ó\Ø oô7à€‡�‰n d°¹<ÔHØ€‡�‰k 4Ñ.LÔMØØØñ",Øñ",àñ",ð ˜‘ñ",ð �c‰]ð	",ð
 ð",ð 
ó",ó ó ó ó Nó Ió7ó"óñ",r=   