
    ^j%                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ  G d	 d
      Z G d d      Z G d d      Z G d de	ee      Zy)    )UnknownMethodException)Self)extract_const_attributes)logger)CanExecuteCommands)CanExecuteScripts)CanRememberExtensionPresence)MobileCommandc                       e Zd ZdZdZdZdZy)GsmCallActionscallacceptcancelholdN)__name__
__module____qualname__CALLACCEPTCANCELHOLD     [/home/ubuntu/.local/lib/python3.12/site-packages/appium/webdriver/extensions/android/gsm.pyr   r      s    DFFDr   r   c                        e Zd ZdZdZdZdZdZy)GsmSignalStrengthr               N)r   r   r   NONE_OR_UNKNOWNPOORMODERATEGOODGREATr   r   r   r   r   !   s    ODHDEr   r   c                   (    e Zd ZdZdZdZdZdZdZdZ	y)	GsmVoiceStateunregisteredhomeroaming	searchingdeniedoffonN)
r   r   r   UNREGISTEREDHOMEROAMING	SEARCHINGDENIEDOFFONr   r   r   r'   r'   )   s%    !LDGIF
C	Br   r'   c                   H    e Zd ZdededefdZdedefdZdedefdZdd
Z	y	)Gsmphone_numberactionreturnc                    d}t        t              }||j                         vrCt        j                  | dt        |j                                dt        j                   d       ||d}	 | j                  |      j                  ||       | S # t        $ r3 | j                  |      j                  t        j                  |       Y | S w xY w)a  Make GSM call (Emulator only)

        Android only.

        Args:
            phone_number: The phone number to call to.
            action: The call action.
                A member of the const `appium.webdriver.extensions.android.gsm.GsmCallActions`

        Usage:
            self.driver.make_gsm_call('5551234567', GsmCallActions.CALL)

        Returns:
            Union['WebDriver', 'Gsm']: Self instance
        zmobile: gsmCall# is unknown. Consider using one of  constants. (e.g. z.CALL))phoneNumberr9   )r   r   valuesr   warninglistkeysr   assert_extension_existsexecute_scriptr   mark_extension_absenceexecuteCommandMAKE_GSM_CALL)selfr8   r9   ext_name	constantsargss         r   make_gsm_callzGsm.make_gsm_call4   s      %,^<	))++NN(=d9>>CS>T=U V'0019  ,v>	W((2AA(DQ  & 	W''199':O:OQUV	Ws   -!B 8CCstrengthc                    d}t        t              }||j                         vrCt        j                  | dt        |j                                dt        j                   d       	 | j                  |      j                  |d|i       | S # t        $ r6 | j                  |      j                  t        j                  ||d       Y | S w xY w)ay  Set GSM signal strength (Emulator only)

        Android only.

        Args:
            strength: Signal strength.
                A member of the enum :obj:`appium.webdriver.extensions.android.gsm.GsmSignalStrength`

        Usage:
            self.driver.set_gsm_signal(GsmSignalStrength.GOOD)

        Returns:
            Union['WebDriver', 'Gsm']: Self instance
        zmobile: gsmSignalz( is out of range. Consider using one of r=   z.GOOD)rN   )signalStrengthsignalStrengh)r   r   r?   r   r@   rA   rB   r   rC   rD   r   rE   rF   rG   SET_GSM_SIGNAL)rI   rN   rJ   rK   s       r   set_gsm_signalzGsm.set_gsm_signalS   s     ',->?	9++--NN*DT)..JZE[D\ ]*334F<	((2AA(ZYaLbc  & 	''199&&8V^(_ 	s   (#B ;CCstatec                    d}t        t              }||j                         vrCt        j                  | dt        |j                                dt        j                   d       d|i}	 | j                  |      j                  ||       | S # t        $ r3 | j                  |      j                  t        j                  |       Y | S w xY w)ah  Set GSM voice state (Emulator only)

        Android only.

        Args:
            state: State of GSM voice.
                A member of the const `appium.webdriver.extensions.android.gsm.GsmVoiceState`

        Usage:
            self.driver.set_gsm_voice(GsmVoiceState.HOME)

        Returns:
            Union['WebDriver', 'Gsm']: Self instance
        zmobile: gmsVoicer<   r=   z.HOME)rT   )r   r'   r?   r   r@   rA   rB   r   rC   rD   r   rE   rF   rG   SET_GSM_VOICE)rI   rT   rJ   rK   rL   s        r   set_gsm_voicezGsm.set_gsm_voicer   s     &,];		((**NN'<T)..BR=S<T U&//08 	W((2AA(DQ  & 	W''199':O:OQUV	Ws   ,!B 8C
CNc                    | j                   j                  t        j                  dd       | j                   j                  t        j                  dd       | j                   j                  t        j
                  dd       y )NPOSTz*/session/$sessionId/appium/device/gsm_callz,/session/$sessionId/appium/device/gsm_signalz+/session/$sessionId/appium/device/gsm_voice)command_executoradd_commandrG   rH   rR   rV   )rI   s    r   _add_commandszGsm._add_commands   s_    ))'*?*?Iuv))'*@*@&Jxy))'*?*?Ivwr   )r:   N)
r   r   r   strr   rM   intrS   rW   r\   r   r   r   r7   r7   3   sH    # s t >s t >3 4 <xr   r7   N)selenium.common.exceptionsr   typing_extensionsr   appium.common.helperr   appium.common.loggerr   /appium.protocols.webdriver.can_execute_commandsr   .appium.protocols.webdriver.can_execute_scriptsr   :appium.protocols.webdriver.can_remember_extension_presencer	   appium.webdriver.mobilecommandr
   rG   r   r   r'   r7   r   r   r   <module>rg      sT    > " 9 ' N L c C   `x
/1M `xr   