Пример #1
0
    def __init__(self):
        '''
        init function.

        @see: L{Base <Base>}
        '''
        self.mode_name = "phone"
        Base.__init__(self, self.mode_name)
        self.settings = Settings()
        self.debug_print('Base init:%f' % (time.time()))
Пример #2
0
 def __init__(self):
     self.mode_name = "phone"
     Base.__init__(self,self.mode_name)
     self.settings = Settings()
     self.predefined_numbers = PREDEFINED_NUMBERS
     self.debug_print( 'Base init:%f' %(time.time()))
     self.call_delay = CALL_DELAY
     self.call_ini_time = CALL_INI_TIME
     self.call_start_time = CALL_START_TIME  
Пример #3
0
class Phone(Base):

    PREDEFINED_NUMBERS = {
        "0": "zero",
        "1": "one",
        "2": "two",
        "3": "three",
        "4": "four",
        "5": "five",
        "6": "six",
        "7": "seven",
        "8": "eight",
        "9": "nine"
    }
    '''
    Phone is a class for operating Phone application.

    @see: L{Base <Base>}
    '''
    def __init__(self):
        '''
        init function.

        @see: L{Base <Base>}
        '''
        self.mode_name = "phone"
        Base.__init__(self, self.mode_name)
        self.settings = Settings()
        self.debug_print('Base init:%f' % (time.time()))

    def go_home(self):
        for i in range(10):
            flag1 = is_view_enabled_by_text(VIEW_TEXT_VIEW,
                                            'Speed Dial',
                                            isScrollable=0,
                                            searchFlag=TEXT_MATCHES)
            flag2 = is_view_enabled_by_text(VIEW_TEXT_VIEW,
                                            'Recents',
                                            isScrollable=0,
                                            searchFlag=TEXT_MATCHES)
            flag3 = is_view_enabled_by_text(VIEW_TEXT_VIEW,
                                            'Contacts',
                                            isScrollable=0,
                                            searchFlag=TEXT_MATCHES)
            '''try:scroll_to_bottom()
            except:pass'''

            if flag1 & flag2 & flag3 is True: return True
            else: goback()
            sleep(1)

        return False

    # MO by one slot
    # parameter:
    #    phoneNumber: the whole call phone number
    #    smartNumber: part phone number to match contacts
    #    slot: 0--slot1, 1--slot2 2-- default slot can use for emergency call
    # Return:
    #    True: get through.
    #    False: no
    def phone_call(self, phoneNumber, smartNumber, slot, call_duration):
        '''
        MO by one slot

        @type phoneNumber: string
        @param phoneNumber: the whole call phone number.
        @type smartNumber: string
        @param smartNumber: part phone number to match contacts.
        @type slot: number
        @param slot: 0--slot1, 1--slot2 2-- default slot can use for emergency call.
        @return: True: get through; False: no.
        '''
        # dial
        if smartNumber != "":
            self.smart_dial(smartNumber, phoneNumber)
        else:
            self.dial(phoneNumber)

        callmark = ""
        if slot == 0:
            callmark = "callmark1"
        elif slot == 1:
            callmark = "callmark2"
        elif slot != 2:
            return False

        sleep(3)
        if slot == 0:
            if search_text("Call with"):
                take_screenshot()
                click_textview_by_index(1)

#            click_textview_by_text("SUB 01")
# click_in_list_by_index(1)
# ##search_view_by_id("call_action_sub_icon2") and
        elif slot == 1:
            if search_text("Call with"):
                take_screenshot()
                click_textview_by_index(2)
#            click_textview_by_text("SUB 02")
#            click_in_list_by_index(2)
        else:
            sleep(1)
            if slot != 2 and search_view_by_id(callmark):
                click_button_by_id(callmark)
            sleep(1)
            click_button_by_id(callmark)
        if search_text(self.get_value("network_not_available")):
            take_screenshot()
            return False
        # whether get through.
        sleep(call_duration)
        #         func = lambda:((is_view_enabled_by_id(VIEW_IMAGE_VIEW, 'elapsedTime')))
        #         if wait_for_fun(func, True, 10):
        #             elapsedTime = get_view_text_by_id(VIEW_TEXT_VIEW, 'elapsedTime', isScrollable=0)

        if search_view_by_id("incall_end_call"):
            click_button_by_id("incall_end_call")
            return True

        else:
            return False

    # remove guide info when enter phone app for the first time
    def remove_gudie_info(self):
        '''
        remove guide info when enter phone app for the first time

        '''
        if search_view_by_id("clingText") == True:
            click_button_by_text(self.get_value("ok"), 1, 0)

    # data call switch to always ask
    # parameter:
    #    card_id,1-slot1,2-slot2,0-always ask
    def set_data_call(self, card_id):
        '''
        data call switch to always ask

        @type card_id: number
        @param card_id: 1-slot1,2-slot2,0-always ask.
        '''
        sleep(1)
        # remove guide info when enter first time
        self.remove_gudie_info()

        start_activity('com.android.settings', '.Settings')
        self.settings.set_default_voice(card_id)
        goback()

    def call_back_from_history(self):
        '''
        call back from history
        '''
        click_imageview_by_desc('More options')
        click_textview_by_text('Call History')
        click_textview_by_text('All')
        click_textview_by_id('filter_sub_spinner')
        sleep(1)
        click_textview_by_text('ALL SIMS')
        if search_text('10086'):
            click_textview_by_text('10086')
            click_textview_by_text('Call Back')
        elif search_text('12117'):
            click_textview_by_text('12117')
            click_textview_by_text('Call Back')
        else:
            #click_textview_by_index(0)
            click_textview_by_id('name')
            click_textview_by_text('Call Back')
        sleep(float(SC.PRIVATE_PHONE_CALL_TIME))
        func = lambda: (
            (is_view_enabled_by_id(VIEW_IMAGE_VIEW, 'elapsedTime')))
        if wait_for_fun(func, True, 10):
            elapsedTime = get_view_text_by_id(VIEW_TEXT_VIEW,
                                              'elapsedTime',
                                              isScrollable=0)
        if search_view_by_id("floating_end_call_action_button") and (cmp(
                elapsedTime, '00:00')):
            click_button_by_id("floating_end_call_action_button")
            return True
        else:
            return False

    # used for API
    def smart_dial(self, smartNumber, phoneNumber):
        '''
        inner used.
        According to input phone number to match contacts,then dial.

        @type smartNumber: string
        @param smartNumber: part phone number to match contacts.
        @type phoneNumber: string
        @param phoneNumber: the whole call phone number.
        '''
        click_imageview_by_id("deleteButton", 1, 0, 0, LONG_CLICK)
        for i in range(0, len(smartNumber)):
            click_imageview_by_id(str(self.PREDEFINED_NUMBERS[smartNumber[i]]))
        click_view_by_container_id('filterbutton', 'android.widget.TextView',
                                   0)
        sleep(1)
        click_textview_by_text(phoneNumber)
        click_imageview_by_id("dialButton")

    # used for API
    def dial(self, phoneNumber):
        '''
        inner used.
        Firstly, delete existed phone number.
        Then input number and dial

        @type phoneNumber: string
        @param phoneNumber: the whole call phone number.
        '''
        if search_view_by_id("deleteButton"):
            #click_imageview_by_id("deleteButton", 1, 0, 0, LONG_CLICK)
            for i in range(11):
                click_imageview_by_id("deleteButton")
                sleep(1)
        sleep(1)
        call_number_str = [s for s in phoneNumber]
        for phoneNumber in call_number_str:
            if phoneNumber == "1":
                click_imageview_by_id("dialpad_key_voicemail")
            else:
                click_imageview_by_id(str(
                    self.PREDEFINED_NUMBERS[phoneNumber]))
        sleep(2)
        if search_view_by_id("dialButton"):
            click_imageview_by_id("dialButton")
        else:
            click_button_by_id("floating_action_button")

    def input_dial_number(self, phoneNumber):  #c_caijie
        '''
        inner used.
        Firstly, delete existed phone number.
        Then input number 

        @type phoneNumber: string
        @param phoneNumber: the whole call phone number.
        '''
        if search_view_by_id("deleteButton"):
            click_imageview_by_id("deleteButton", 1, 0, 0, LONG_CLICK)
        sleep(10)
        call_number_str = [s for s in phoneNumber]
        for phoneNumber in call_number_str:
            if phoneNumber == "1":
                click_imageview_by_id("dialpad_key_voicemail")
            else:
                click_imageview_by_id(str(
                    self.PREDEFINED_NUMBERS[phoneNumber]))
        sleep(1)

    # used for API
    def speed_dial(self, speed_dail_number, Number):
        '''
        inner used.
        According to input phone number to match contacts,then dial.

        @type smartNumber: string
        @param smartNumber: part phone number to match contacts.
        @type phoneNumber: string
        @param phoneNumber: the whole call phone number.
        '''
        click_imageview_by_id('dialtacts_options_menu_button')
        click_textview_by_text('Settings')
        click_textview_by_text('Call settings')
        click_textview_by_text('Speed dial settings', isScrollable=1)
        sleep(1)
        take_screenshot()
        click_textview_by_text(Number)
        if search_text("Input Number"):
            log_test_framework("weixiang--> :",
                               "number 2 have not been added speed dail")
            entertext_edittext_on_focused(speed_dail_number)
            click_button_by_id('btn_complete')
            if search_text(speed_dail_number):
                log_test_framework("weixiang--> :",
                                   "number 2 added speed dail successfully")
                return True
            else:
                log_test_framework("weixiang--> :",
                                   "number 2  added speed dail failed")
                take_screenshot()
                return False
        elif (not search_text("Key unassigned")) and (search_text("Delete")):
            log_test_framework(
                "weixiang--> :",
                "number 2 added speed dail before, need delete it firstly")
            click_textview_by_text('Delete')
            click_textview_by_text(Number)
            if search_text("Input Number"):
                log_test_framework("weixiang--> :",
                                   "number 2 have not been added speed dail")
                entertext_edittext_on_focused(speed_dail_number)
                click_button_by_id('btn_complete')
                if search_text(speed_dail_number):
                    log_test_framework(
                        "weixiang--> :",
                        "number 2 added speed dail successfully")
                    return True
                else:
                    log_test_framework("weixiang--> :",
                                       "number 2  added speed dail failed")
                    take_screenshot()
                    return False

    # used for API
    def clear_call_log(self):
        '''
        inner used.
        Firstly, delete existed phone number.
        Then input number and dial

        @type phoneNumber: string
        @param phoneNumber: the whole call phone number.
        '''

        sleep(1)
        click_imageview_by_id('dialtacts_options_menu_button')
        sleep(1)
        click_textview_by_text('Call History')
        sleep(1)
        click_textview_by_text('All')
        sleep(1)
        click_textview_by_id('filter_sub_spinner')
        sleep(1)
        click_textview_by_text('ALL SIMS')
        if search_text("Your call log is empty"):
            log_test_framework("weixiang--> :", "No call Log")
            return True
        else:
            send_key(KEY_MENU)
            click_textview_by_text('Clear call log')
            sleep(1)
            click_imageview_by_desc('More options')
            delstr = 'All'
            if search_text(delstr):
                click_textview_by_text(delstr)
                if is_view_enabled_by_id(VIEW_TEXT_VIEW,
                                         'done',
                                         isScrollable=0):
                    click_textview_by_desc('done')
                else:
                    log_test_framework("weixiang--> :", "No call Log")
                    return True
                sleep(2)
                # if wait_for_fun(lambda:search_text('will be deleted'), True, 10):
                if search_text('Sure to delete the call logs ',
                               searchFlag=TEXT_CONTAINS):
                    # click_textview_by_text('OK')
                    click_button_by_text('OK')
                    return True
                else:
                    return False

    def permission_allow(self):  #c_caijie
        if search_text("NEXT", isScrollable=0, searchFlag=TEXT_CONTAINS):
            click_textview_by_text("NEXT", isScrollable=0)
            sleep(4)
        for i in range(8):
            if search_view_by_id('permission_allow_button'):
                click_button_by_id('permission_allow_button', isScrollable=0)
                sleep(5)

    def del_all_calllog(self):  #c_caijie
        click_button_by_id('dialtacts_options_menu_button')
        sleep(3)
        click_textview_by_text('Call History')
        sleep(3)
        click_imageview_by_desc("More options")
        sleep(3)
        click_textview_by_text('Clear call history')
        sleep(3)
        click_checkbox_by_id('select_all_check')
        sleep(3)
        click_textview_by_id('btn_ok')
        sleep(3)
        click_button_by_text('OK')
        sleep(10)
Пример #4
0
############################################
#author:
#    [email protected]
#function:
#    the qrd share lib.
#doc:
#   juts need you to add : import your_model as alias
############################################

# init a instance of the mode
notificationBar = NotificationBar()
camera = Camera()
weibo = Weibo()
renren = Renren()
settings = Settings()
playstore = PlayStore()
launcher = Launcher()
phone = Phone()
browser = Browser()
email = Email()
doubanfm = Doubanfm()
mms = Mms()
gmail = Gmail()
ime = IME()
contact = Contact()
gallery = Gallery()
cmccMTBF = CmccMTBF()
sample = Sample()
incommon = InCommon()
Пример #5
0
class Phone(Base):
     
    def __init__(self):
        self.mode_name = "phone"
        Base.__init__(self,self.mode_name)
        self.settings = Settings()
        self.predefined_numbers = PREDEFINED_NUMBERS
        self.debug_print( 'Base init:%f' %(time.time()))
        self.call_delay = CALL_DELAY
        self.call_ini_time = CALL_INI_TIME
        self.call_start_time = CALL_START_TIME  
       

    def phone_call(self, call_number, slot, call_duration):
        
        numberlist = self.predefined_numbers

        drag_by_param(0,50,100,50,10)
        drag_by_param(0,50,100,50,10)
        #clear existing number
        click_imageview_by_id("deleteButton",clickType=LONG_CLICK)

        call_number_str = [s for s in call_number ]
            
        for callnumber in call_number_str:
            click_imageview_by_id(numberlist[callnumber])
        
        click_imageview_by_id("dialButton")
        self.call_ini_time=time.strftime('%X',time.localtime(time.time()))
        
#        if SC.PUBLIC_DSDS:
#            callmark = ""
#            if slot == 0:
#                callmark = "callmark1"
#            elif slot == 1:
#                callmark = "callmark2"
#            click_button_by_id(callmark)

        #MO
        phoneOn = self.check_phoneON(10)
        
        if phoneOn:
            sleep(call_duration)
            if search_view_by_id("endButton"):
                click_button_by_id("endButton")
                return True
            else:
                return False
#    def call_delay(self):
        
    def phone_call_from_list(self, slot):

        drag_by_param(0,50,100,50,10)
        drag_by_param(0,50,100,50,10)
        drag_by_param(90,50,10,50,10)

        #Choose a number
        click_textview_by_text('10086' or 'test')
        
        #Dial
        click_textview_by_text('Call')
        
        #Choose a slot
        if SC.PUBLIC_DSDS:
            callmark = ""
            if slot == 0:
                callmark = "callmark1"
            elif slot == 1:
                callmark = "callmark2"
            click_button_by_id(callmark)
        
        #MO
        phoneOn = self.check_phoneON(10)
    
        if phoneOn:
            time.sleep(1)
            if search_view_by_id("endButton"):
                click_button_by_id("endButton")
                return True
            else:
                return False

    def phone_call_multiparty(self,call_number1,call_number2,call_slot,call_duration):
        
        numberlist = self.predefined_numbers
        drag_by_param(0,50,100,50,10)
        drag_by_param(0,50,100,50,10)
        
        #clear existing number
        click_imageview_by_id("deleteButton",clickType=LONG_CLICK)

        call_number_str = [s for s in call_number1]
        for callnumber in call_number_str:
            click_imageview_by_id(numberlist[callnumber])
        click_imageview_by_id("dialButton")
        if SC.PUBLIC_DSDS:
            callmark = ""
            if call_slot == 0:
                callmark = "callmark1"
            elif call_slot == 1:
                callmark = "callmark2"
            click_button_by_id(callmark)
        sleep(5)
        click_imageview_by_id("addButton")
#        click_imageview_by_index(3)
        call_number_str = [s for s in call_number2]
        for callnumber in call_number_str:
            click_imageview_by_id(numberlist[callnumber])
        click_imageview_by_id("dialButton")
        sleep(5)
        click_imageview_by_id("mergeButton")
            
        phoneOn = False
        phoneOn = self.check_phoneON(30)

        if phoneOn:
            sleep(call_duration)
            if search_view_by_id("endButton"):
                click_button_by_id("endButton")
                return True
            else:
                return False
                save_fail_log()

    def check_phoneON(self, starttime):

#        if search_text(self.get_value("network_not_available")):
#            return False
        if search_view_by_id("message"):
            return False
        #whether get through.
        phoneOn = False
        t = 0
        while search_view_by_id("endButton") and t < starttime:
            if search_text("0:"):
                self.call_start_time=time.strftime('%X',time.localtime(time.time()))
                phoneOn = True
                sleep(3)
                break
            sleep(1)
            t = t+1
        time_start_strlis=self.call_ini_time.split(':')
        time_end_strlis=self.call_start_time.split(':')
        sec=int(time_end_strlis[2])+int(time_end_strlis[1])*60+int(time_end_strlis[0])*60*60-int(time_start_strlis[2])-int(time_start_strlis[1])*60-int(time_start_strlis[0])*60*60
        self.call_delay = sec
        if phoneOn == False:
            return False
        else:
            return True

    #remove guide info when enter phone app for the first time
    def remove_gudie_info(self):
        
        if search_view_by_id("clingText") == True:
            click_button_by_text(self.get_value("ok"),1,0)

    #data call switch to always ask
    #parameter:
    #    card_id,1-slot1,2-slot2,0-always ask
    
    def set_data_call(self, card_id):
        
        sleep(1)
        #remove guide info when enter first time
        self.remove_gudie_info()

        start_activity('com.android.settings','.Settings')
        self.settings.set_default_voice(card_id)
        goback()

    #used for API
    def smart_dial(self, smartNumber, phoneNumber):
        
        click_imageview_by_id("deleteButton",1,0,0,LONG_CLICK)
        for i in range(0, len(smartNumber)):
            click_imageview_by_id(str(PREDEFINED_NUMBERS[smartNumber[i]]))
        click_view_by_container_id('filterbutton', 'android.widget.TextView', 0)
        sleep(1)
        click_textview_by_text(phoneNumber)
        click_imageview_by_id("dialButton")
    
    def dial(self, call_number, slot, call_duration):
        
        numberlist = self.predefined_numbers

        drag_by_param(0,50,100,50,10)
        drag_by_param(0,50,100,50,10)

        #clear existing number
        click_imageview_by_id("deleteButton",clickType=LONG_CLICK)

        call_number_str = [s for s in call_number ]
            
        for callnumber in call_number_str:
            click_imageview_by_id(numberlist[callnumber])
        
        click_imageview_by_id("dialButton")
        
        #MO
        phoneOn = False
        phoneOn = self.check_phoneON(30)
        return phoneOn

    def call_waiting_on(self,slot):
        if SC.PUBLIC_DSDS:
            click_textview_by_text(self.get_value("select_subscription"))
            if slot == 0:
                click_textview_by_text(self.get_value("sim1"))
            else:
                click_textview_by_text(self.get_value("sim2"))
            click_textview_by_text(self.get_value("GSM_call_settings"))
            click_textview_by_text(self.get_value("additional_settings"))
            sleep(15)
            flag = is_checkbox_checked_by_index(0)
            if flag == False:
                click_textview_by_text(self.get_value("call_waiting"))
                sleep(15)
        else:
            click_textview_by_text(self.get_value("additional_settings"))
            sleep(15)
            flag = is_checkbox_checked_by_index(0)
            if flag == False:
                click_textview_by_text(self.get_value("call_waiting"))
                sleep(15)
            
            
            
    def call_waiting_off(self,slot):
        if SC.PUBLIC_DSDS:
            click_textview_by_text(self.get_value("select_subscription"))
            if slot == 0:
                click_textview_by_text(self.get_value("sim1"))
            else:
                click_textview_by_text(self.get_value("sim2"))
            click_textview_by_text(self.get_value("GSM_call_settings"))
            click_textview_by_text(self.get_value("additional_settings"))
            sleep(15)
            flag = is_checkbox_checked_by_index(0)
            if flag == True:
                click_textview_by_text(self.get_value("call_waiting"))
                sleep(15)
        else:
            click_textview_by_text(self.get_value("additional_settings"))
            sleep(15)
            flag = is_checkbox_checked_by_index(0)
            if flag == True:
                click_textview_by_text(self.get_value("call_waiting"))
                sleep(15)

    def call_forwarding_on(self,forward_num,type,slot):
        if SC.PUBLIC_DSDS:
            click_textview_by_text(self.get_value("select_subscription"))
            if slot == 0:
                click_textview_by_text(self.get_value("sim1"))
            else:
                click_textview_by_text(self.get_value("sim2"))
            click_textview_by_text(self.get_value("GSM_call_settings"))
            click_textview_by_text(self.get_value("call_forwarding"))
            sleep(15)
            '''
            type 0: always forward
            type 1-3: other forward type
            '''
            if type == 0:
                if not search_text(self.get_value("forward_all_calls_status"),0,0):
                    click_textview_by_text(self.get_value("always_forward"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
            elif type == 1:
                if not search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_busy"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==2:
                if not search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unanswered"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==3:
                if not search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unreachable"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
        else:
            click_textview_by_text(self.get_value("call_forwarding"))
            sleep(15)
            '''
            type 0: always forward
            type 1-3: other forward type
            '''
            if type == 0:
                if not search_text(self.get_value("forward_all_calls_status"),0,0):
                    click_textview_by_text(self.get_value("always_forward"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
            elif type == 1:
                if not search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_busy"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==2:
                if not search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unanswered"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==3:
                if not search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unreachable"))
                    entertext_edittext_by_id('edit',forward_num)
                    click_button_by_id('button3')
                    sleep(15)
                
    def call_forwarding_off(self,type,slot):
        if SC.PUBLIC_DSDS:
            click_textview_by_text(self.get_value("select_subscription"))
            if slot == 0:
                click_textview_by_text(self.get_value("sim1"))
            else:
                click_textview_by_text(self.get_value("sim2"))
            click_textview_by_text(self.get_value("GSM_call_settings"))
            click_textview_by_text(self.get_value("call_forwarding"))
            sleep(15)
            '''
            type 0: always forward
            '''
            if type == 0:
                if search_text(self.get_value("forward_all_calls_status"),0,0):
                    click_textview_by_text(self.get_value("always_forward"))
                    click_button_by_id('button3')
                    sleep(15)
            elif type == 1:
                if search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_busy"))
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==2:
                if search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unanswered"))
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==3:
                if search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unreachable"))
                    click_button_by_id('button3')
                    sleep(15)
        else:
            click_textview_by_text(self.get_value("call_forwarding"))
            sleep(15)
            '''
            type 0: always forward
            '''
            if type == 0:
                if search_text(self.get_value("forward_all_calls_status"),0,0):
                    click_textview_by_text(self.get_value("always_forward"))
                    click_button_by_id('button3')
                    sleep(15)
            elif type == 1:
                if search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_busy"))
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==2:
                if search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unanswered"))
                    click_button_by_id('button3')
                    sleep(15)
            elif type ==3:
                if search_text(self.get_value("forward_other_status"),0,0):
                    click_textview_by_text(self.get_value("forward_when_unreachable"))
                    click_button_by_id('button3')
                    sleep(15)   
    def mtcall(self,call_number_slot1,call_repeat_times_slot1,call_duration,waittime,intervaltime):
        
        click_textview_by_text("MT Call")
        click_textview_by_text("Add")
        entertext_edittext_by_index(0,call_number_slot1)
        click_textview_by_text("Ok")
        entertext_edittext_by_index(1,call_repeat_times_slot1)
        entertext_edittext_by_index(2,call_duration)
        entertext_edittext_by_index(3,waittime)
        entertext_edittext_by_index(4,intervaltime)
        goback()
        click_textview_by_text("Send")
        sleep(15)
        
    def check_call_status(self):
        
        if search_text(self.get_value("return")):
        #click_button_by_text("Return to call in progress")
            click_textview_by_text(self.get_value("return"))
            if search_view_by_id("endButton"):
                click_button_by_id("endButton")
                return True
            else:
                return False
        else:
            return False
        
    def clear_call_log(self):
        
        drag_by_param(0,50,100,50,10)
        drag_by_param(0,50,100,50,10)
        drag_by_param(90,50,10,50,10)
        
        if not search_text(self.get_value("call_log_is_empty")):
            send_key(KEY_MENU)
            clear_call_log = self.get_value("clear_call_log")
            if wait_for_fun(lambda:search_text(clear_call_log), True, 3):
                click_textview_by_text(clear_call_log)
                click_checkbox_by_id('select_all_check')
                click_button_by_text(self.get_value('ok'))
                click_button_by_text(self.get_value('ok'))
                wait_for_fun(lambda:search_text(self.get_value("call_log_is_empty")), True, 10)
                return
            else:
                return
        else:
            return
    def call_autoanswer_enable(self):
        if not is_checkbox_checked_by_index(0):
            click_checkbox_by_id("checkbox")
        
    def call_autoanswer_disable(self):
        if is_checkbox_checked_by_index(0):
            click_checkbox_by_id("checkbox")