def METHOD_NAME(self, **kwargs):
    """
    Args:
        **kwargs: Key: setting, value: required option or a list of them
            `sort=['rarity', 'level'], ...` or `sort='rarity'`,
            or `sort=None` means don't change this setting
    Returns:
        bool: If success the set
    """
    status = self._product_setting_status(**kwargs)
    logger.info(f'Setting {self.name} options, {dict_to_kv(kwargs)}')
    skip_first_screenshot = True
    retry = Timer(1, count=2)
    timeout = Timer(10, count=20).start()
    while 1:
        if skip_first_screenshot:
            skip_first_screenshot = False
        else:
            self.main.device.screenshot()
        if timeout.reached():
            logger.warning(f'Set {self.name} options timeout, assuming current options are correct.')
            return False
        self.show_active_buttons()
        clicks = self.get_buttons_to_click(status)
        if clicks:
            if retry.reached():
                for button in clicks:
                    self.main.device.click(button)
                retry.reset()
        else:
            return True