Функция, которая возвращает видимость

Я писал функцию, которая возвращает видимость, но я правильно понимаю:

Должен быть одним из: View.VISIBLE, View.INVISIBLE, View.GONE меньше …

Для этого кода:

private int getVisibilityForGlobalAndLocal(final boolean global, final boolean local) { if (global) { return View.GONE; } return local ? View.VISIBLE : View.INVISIBLE; } 

При использовании:

  view.setVisibility(getVisibilityForGlobalAndLocal(true,false)); 

К сожалению, аннотация @Visibility скрыта в представлении:

 /** @hide */ @IntDef({VISIBLE, INVISIBLE, GONE}) @Retention(RetentionPolicy.SOURCE) public @interface Visibility {} 

Теперь я могу просто скопировать эту часть (работы), но это плохо. Есть ли более элегантное решение, которое я здесь отсутствует? Должен ли я записывать это как ошибку?

Было бы неплохо иметь возможность использовать аннотацию @Visibility, но похоже, что мы не можем на данный момент.

Тем временем вы можете добавить аннотацию @SuppressWarnings («ResourceType») выше метода, в котором вы вызываете setVisibility для подавления ошибки lint

 @SuppressWarnings("ResourceType") public void myMethod() { view.setVisibility(getVisibilityForGlobalAndLocal(true,false)); }