Проблема здесь полностью логична. В вашем методе вы не фактически меняете значение переменной вообще - вы просто устанавливаете там слушателей. И только после возврата предыдущего значения вашего логического var. Вы можете создать интерфейс, например,
interface Callback {
void onResult(boolean result)
}
, а затем изменить свой метод isAvailable на
public static void isAvailable(int language, Callback callback)
, и вместо mIsAvailable = aBoolean;
вы вызываете callback.onResult(aBoolean);
Так что вам не нужен логический параметр Вар больше, и вы можете удалить его. Теперь, чтобы получить логическое значение, вы должны передать обратный вызов вашей функции:
isAvailable(1, available -> {
// Use your boolean available as you need here
})