Ë
    ¾�j±  ã                   ó  — d Z ddlZddlZddlZddlZddlZddlm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  ej4                  e«      Ze G d
„ d«      «       ZdZdZ G d„ de«      Z y)z3Created on Wed May 22 2024 16:23:56 by codeskyblue
é    N)Ú	dataclass)ÚPath)ÚDictÚListÚOptionalÚUnion)Úretry)ÚAbstractShell)ÚAdbBroadcastErrorÚDeviceErrorÚInputIMEError)Ú
deprecatedÚwith_package_resourcec                   ó.   — e Zd ZU ee   ed<   ee   ed<   y)ÚBroadcastResultÚcodeÚdataN)Ú__name__Ú
__module__Ú__qualname__r   ÚintÚ__annotations__Ústr© ó    úT/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/uiautomator2/_input.pyr   r      s   … à
�3‰-ÓØ
�3‰-Ôr   r   éÿÿÿÿc                   óF  — e Zd Zedefd„«       Zddefd„Zdefd„Zd„ Z	i fdede
eef   defd	„Z eed
dd¬«      i fdede
eef   fd„«       Zdefd„Zddeeef   fd„Zd„ Zdefd„Zd dedefd„Zdee   fd„Zd„ Z ed¬«      ddefd„«       Z ed¬«      d d„«       Zy)!ÚInputMethodMixInÚreturnc                  ó   — y)Nz#com.github.uiautomator/.AdbKeyboardr   ©Úselfs    r   Ú__ime_idzInputMethodMixIn.__ime_id-   s   € à4r   Úenablec                 óî  — |s| j                  dd| j                  g«       y| j                  «       | j                  k(  ry| j                  | j                  «       vr| j	                  «        | j                  | j                  «       v sJ ‚| j                  dd| j                  g«       | j                  dd| j                  g«       | j                  dddd	| j                  g«       | j                  «        y)
z Enable of Disable InputIME ÚimeÚdisableNr%   ÚsetÚsettingsÚputÚsecureÚdefault_input_method)ÚshellÚ_InputMethodMixIn__ime_idÚcurrent_imeÚ_InputMethodMixIn__get_ime_listÚ
_setup_imeÚ_wait_ime_ready©r#   r%   s     r   Úset_input_imezInputMethodMixIn.set_input_ime1   sÇ   € áØ�J‰J˜˜y¨$¯-©-Ð8Ô9ØØ×ÑÓ §¡Ò.Øà�=‰= × 3Ñ 3Ó 5Ñ5Ø�O‰OÔØ�}‰} × 3Ñ 3Ó 5Ñ5Ð5Ð5à�
‰
�E˜8 T§]¡]Ð3Ô4Ø�
‰
�E˜5 $§-¡-Ð0Ô1Ø�
‰
�J  xÐ1GÈÏÉÐWÔXØ×ÑÕr   c                 ó:   — | j                   | j                  «       v S ©N)r/   r1   r"   s    r   Úis_input_ime_installedz'InputMethodMixIn.is_input_ime_installedB   s   € Ø�}‰} × 3Ñ 3Ó 5Ð5Ð5r   c                 óT  — t         j                  d«       t        d«      5 }	 | j                  j	                  t        |«      dd¬«       d d d «       t        d«      D ]5  }| j                  | j                  «       v r y t        j                  d«       Œ7 t        d	«      ‚# t        j                  $ rh}| j                  j                  | j                  j                  d«      d   «       | j                  j	                  t        |«      dd¬«       Y d }~ŒÌd }~ww xY w# 1 sw Y   ŒÕxY w)
Nzinstalling AdbKeyboard imezassets/app-uiautomator.apkT)ÚnolaunchÚ	uninstallú/r   é
   g333333Ó?zinstall AdbKeyboard ime failed)ÚloggerÚdebugr   Ú
adb_deviceÚinstallr   ÚadbutilsÚAdbErrorr;   r/   ÚsplitÚranger1   ÚtimeÚsleepr   )r#   Úime_apk_pathÚeÚ_s       r   r2   zInputMethodMixIn._setup_imeE   s   € Ü�‰Ð1Ô2Ü"Ð#?Ó@ð 	ZÀLðZØ—‘×'Ñ'¬¨LÓ(9ÀDÐTXÐ'ÔY÷	Zô �r“ò 	ˆAØ�}‰} × 3Ñ 3Ó 5Ñ5ÙÜ�J‰J�r�Nð	ô Ð<Ó=Ð=øô ×$Ñ$ò ZØ—‘×)Ñ)¨$¯-©-×*=Ñ*=¸cÓ*BÀ1Ñ*EÔFØ—‘×'Ñ'¬¨LÓ(9ÀDÐTXÐ'×YÑYûðZú÷	Zð 	Zús/   ¡D£'B Â DÂ3ADÄDÄDÄDÄD'ÚactionÚextrasc                 óÎ  — ddd|g}|j                  «       D ]G  \  }}t        |t        «      r|j                  d|t	        |«      g«       Œ4|j                  d||g«       ŒI | j                  |«      j                  }t        j                  d|«      }t        j                  d|«      }|rt        |j                  d«      «      nd }	|r|j                  d«      nd }
t        |	|
«      S )	NÚamÚ	broadcastú-az--eiz--eszresult=(-?\d+)zdata="([^"]+)"é   )ÚitemsÚ
isinstancer   Úextendr   r.   ÚoutputÚreÚsearchÚgroupr   )r#   rK   rL   ÚargsÚkÚvrU   Úm_resultÚm_dataÚresultr   s              r   Ú
_broadcastzInputMethodMixIn._broadcastU   sÉ   € à�k 4¨Ð0ˆØ—L‘L“Nò 	,‰DˆAˆqÜ˜!œSÔ!Ø—‘˜V Q¬¨A«Ð/Õ0à—‘˜V Q¨˜NÕ+ð		,ð —‘˜DÓ!×(Ñ(ˆÜ—9‘9Ð.°Ó7ˆÜ—‘Ð,¨fÓ5ˆÙ+3”�X—^‘^ AÓ&Ô'¸ˆÙ"(ˆv�|‰|˜AŒ¨dˆÜ˜v tÓ,Ð,r   é   rQ   g      à?)ÚtriesÚdelayÚjitterc                 ó„   — | j                  ||«      }|j                  t        k7  rt        d|› d|j                  › �«      ‚y )Nz
broadcast z	 failed: )r_   r   ÚBORADCAST_RESULT_OKr   r   )r#   rK   rL   r^   s       r   Ú_must_broadcastz InputMethodMixIn._must_broadcaste   s@   € à—‘ ¨Ó0ˆØ�;‰;Ô-Ò-Ü# j°°¸	À&Ç+Á+ÀÐ$OÓPÐPð .r   Útextc                 ó^  — 	 | j                  «        |j                  d«      }t        j                  |«      j	                  «       }d}| j                  |d|i«       | j                  d«       y# t        $ r5 t        j                  dt        «        | d¬«      j                  |«      cY S w xY w)Nzutf-8ÚADB_KEYBOARD_INPUT_TEXTrg   ÚADB_KEYBOARD_HIDETz?set FastInputIME failed. use "d(focused=True).set_text instead")Úfocused)r5   ÚencodeÚbase64Ú	b64encodeÚdecoderf   r   ÚwarningsÚwarnÚWarningÚset_text)r#   rg   ÚbtextÚ
base64textÚcmds        r   Ú	send_keyszInputMethodMixIn.send_keysk   sŸ   € ð	5Ø×ÑÔ Ø—K‘K Ó(ˆEÜ×)Ñ)¨%Ó0×7Ñ7Ó9ˆJØ+ˆCØ× Ñ   v¨zÐ&:Ô;à× Ñ Ð!4Ô5ØøÜ ò 	5Ü�M‰MØSÜôñ  Ô%×.Ñ.¨tÓ4Ò4ð		5ús   ‚A+A. Á.;B,Â+B,Nr   c                 óÞ   — | j                  d«       dddddddœ}t        |t        «      r|j                  ||«      }|r| j	                  d	d
t        |«      i«       y| j	                  d«       y)a%  
        Simulate input method edito code

        Args:
            code (str or int): input method editor code

        Examples:
            send_action("search"), send_action(3)

        Refs:
            https://developer.android.com/reference/android/view/inputmethod/EditorInfo
        Té   r`   é   é   é   é   )ÚgorW   ÚsendÚnextÚdoneÚpreviousÚADB_KEYBOARD_EDITOR_CODEr   ÚADB_KEYBOARD_SMART_ENTERN)r5   rS   r   Úgetrf   )r#   r   Ú_InputMethodMixIn__aliass      r   Úsend_actionzInputMethodMixIn.send_action{   ss   € ð 	×Ñ˜4Ô àØØØØØñ
ˆô �dœCÔ Ø—;‘;˜t TÓ*ˆDÙØ× Ñ Ð!;¸fÄcÈ$ÃiÐ=PÕQà× Ñ Ð!;Õ<r   c                 óH   — | j                  d«       | j                  d«       y )NTÚADB_KEYBOARD_CLEAR_TEXT©r5   rf   r"   s    r   Ú
clear_textzInputMethodMixIn.clear_text˜   s   € Ø×Ñ˜4Ô Ø×ÑÐ6Õ7r   c                 óX   — | j                  g d¢«      j                  j                  «       S )z’ Current input method
        Returns:
            ime_method

        Example output:
            "com.github.uiautomator/.FastInputIME"
        )r*   r…   r,   r-   )r.   rU   Ústripr"   s    r   r0   zInputMethodMixIn.current_imeœ   s#   € ð �z‰zÒOÓP×WÑW×]Ñ]Ó_Ð_r   Útimeoutc                 óö   — t        j                   «       |z   }t        j                   «       |k  rK| j                  «       | j                  k(  ryt        j                  d«       t        j                   «       |k  rŒKy)z  Wait for input method is ready Tgš™™™™™¹?F)rF   r0   r/   rG   )r#   rŽ   Údeadlines      r   r3   z InputMethodMixIn._wait_ime_ready¬   sX   € ä—9‘9“; Ñ(ˆÜ�i‰i‹k˜HÒ$Ø×ÑÓ! T§]¡]Ò2ØÜ�J‰J�sŒOô �i‰i‹k˜HÓ$ð r   c                 ó|   — | j                  g d¢«      }|j                  j                  «       j                  d¬«      S )N)r'   Úlistz-srP   F)Úkeepends)r.   rU   r�   Ú
splitlines)r#   Úrets     r   Ú__get_ime_listzInputMethodMixIn.__get_ime_listµ   s2   € Ø�j‰jÒ4Ó5ˆØ�z‰z×ÑÓ!×,Ñ,°eÐ,Ó<Ð<r   c                 óF   — | j                  «        | j                  d«       y)z Hide keyboard rj   NrŠ   r"   s    r   Úhide_keyboardzInputMethodMixIn.hide_keyboard¹   s   € à×ÑÔØ×ÑÐ0Õ1r   zuse set_input_ime instead)Úreasonc                 ó$   — | j                  |«      S r7   )r5   r4   s     r   Úset_fastinput_imez"InputMethodMixIn.set_fastinput_ime¾   s   € à×!Ñ! &Ó)Ð)r   c                  ó   — y)z9 wait FastInputIME is ready (Depreacated in version 3.1) Nr   )r#   rŽ   s     r   Úwait_fastinput_imez#InputMethodMixIn.wait_fastinput_imeÂ   s   € ð 	r   )Tr7   )g      @)r   r   r   Úpropertyr   r/   Úboolr5   r8   r2   r   r   r_   r	   r   rf   rw   r   r   r‡   r‹   r0   Úfloatr3   r   r1   r˜   r   r›   r�   r   r   r   r   r   $   s6  „ ð ð5˜#ò 5ó ð5ñ Dó ð"6¨ó 6ò>ð  @Bñ - ð -¨d°3¸°8©nð -Àoó -ñ  Ð A¨Q°sÔ;ØDFñ Q cð Q°4¸¸S¸±>ò Qó <ðQð
5˜có 5ñ =  c¨3 h¡ó =ò:8ð`˜Só `ñ  uð °tó ð=  S¡	ó =ò2ñ
 Ð2Ô3ñ*¨ò *ó 4ð*ñ Ð2Ô3òó 4ñr   r   )!Ú__doc__rm   ÚloggingrV   rF   rp   Údataclassesr   Úpathlibr   Útypingr   r   r   r   rB   r	   Úuiautomator2.abstractr
   Úuiautomator2.exceptionsr   r   r   Úuiautomator2.utilsr   r   Ú	getLoggerr   r>   r   re   ÚBROADCAST_RESULT_CANCELEDr   r   r   r   ú<module>r«      s~   ðñó Û Û 	Û Û Ý !Ý ß .Ó .ã Ý å /ß QÑ Qß @à	ˆ×	Ñ	˜8Ó	$€à
÷ð ó ðð
 Ð ØÐ ôa�}õ ar   