def METHOD_NAME(self, status, main, skip_first_screenshot=True):
    """
    Args:
        status (str):
        main (ModuleBase):
        skip_first_screenshot (bool):
    Returns:
        bool:
    """
    self.get_data(status)
    counter = 0
    changed = False
    warning_show_timer = Timer(5, count=10).start()
    click_timer = Timer(1, count=3)
    while 1:
        if skip_first_screenshot:
            skip_first_screenshot = False
        else:
            main.device.screenshot()
        # Detect
        current = self.get(main=main)
        logger.attr(self.name, current)
        # Handle additional popups
        if self.handle_additional(main=main):
            continue
        # End
        if current == status:
            return changed
        # Warning
        if current == 'unknown':
            if warning_show_timer.reached():
                logger.warning(f'Unknown {self.name} switch')
                warning_show_timer.reset()
                if counter >= 1:
                    logger.warning(f'{self.name} switch {status} asset has evaluated to unknown too many times, '
                                   f'asset should be re-verified')
                    return False
                counter += 1
            continue
        # Click
        if click_timer.reached():
            click_status = status if self.is_choice else current
            main.device.click(self.get_data(click_status)['click_button'])
            click_timer.reset()
            changed = True
    return changed