Упростить код условия

Есть код, который в зависимости от значения или заставляет мигать иконку, или скрывает её. Помогите упростить и более правильнее и лаконичнее переписать его

if (_belt_left) {
    if (belt_left.getVisibility() == View.VISIBLE) {
        belt_left.setVisibility(View.INVISIBLE);
    } else {
        belt_left.setVisibility(View.VISIBLE);
    }
} else {
    if (belt_left.getVisibility() == View.VISIBLE || belt_left.getVisibility() == View.INVISIBLE) {
        belt_left.setVisibility(View.GONE);
    }
}

Ответы (3 шт):

Автор решения: Arty Morris

Нашёл вариант более ёмкий

if (_belt_left) {
    belt_left.setVisibility(belt_left.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE);
} else {
    if (belt_left.getVisibility() == View.VISIBLE || belt_left.getVisibility() == View.INVISIBLE) {
        belt_left.setVisibility(View.GONE);
    }
}
→ Ссылка
Автор решения: Anton Shchyrov

Я бы написал так

if (_belt_left) {
    if (belt_left.getVisibility() == View.VISIBLE) {
        belt_left.setVisibility(View.INVISIBLE);
    } else {
        belt_left.setVisibility(View.VISIBLE);
    }
} else {
    belt_left.setVisibility(View.GONE);
}

void setVisibility(View view) {
  if (view != this.view) {
    ........
  }
}
→ Ссылка
Автор решения: Эникейщик

Если всего три состояния, то

belt_left.getVisibility() == View.VISIBLE || belt_left.getVisibility() == View.INVISIBLE

равнозначно

belt_left.getVisibility() != View.GONE
→ Ссылка