def METHOD_NAME(self):
    all_outputs = self._get_active_outputs()
    selected_screen_disconnected = self.screen is not None and self.screen not in all_outputs
    if selected_screen_disconnected and self.hide_if_disconnected:
        self.displayed = ""
        full_text = ""
    else:
        if not self.scrolling:
            self.displayed = self._get_current_rotation_icon(all_outputs)
        if self.screen or len(all_outputs) == 1:
            screen = self.screen or all_outputs[0]
        else:
            screen = "ALL"
        full_text = self.py3.safe_format(
            self.format, dict(icon=self.displayed or "?", screen=screen)
        )
    response = {
        "cached_until": self.py3.time_in(self.cache_timeout),
        "full_text": full_text,
    }
    # coloration
    if selected_screen_disconnected and not self.hide_if_disconnected:
        response["color"] = self.py3.COLOR_DEGRADED
    elif self.displayed == self._get_current_rotation_icon(all_outputs):
        response["color"] = self.py3.COLOR_GOOD
    self.scrolling = False
    return response