Вы должны добавить пользовательский обратный вызов для обработки этого случая. вы не можете ничего вернуть внутри onResponse () и ononFailure ()
public interface CustomCallback {
void onSucess(Result<LoggedInUser> value);
void onFailure();
}
Обновите ваш метод следующим образом:
public void login(String username, String password,CustomCallback customCallback) {
try {
mAPIService = ApiUtils.getAPIService();
mAPIService.login(username, password, "password").enqueue(new Callback<Post>() {
@Override
public void onResponse(Call<Post> call, Response<Post> response) {
if(response.isSuccessful()) {
LoggedInUser loggedInUser;
loggedInUser = new LoggedInUser(response.body().getUserName(),response.body().getUserName(), response.body().getAccess_token());
customCallback.onSucess(new Result.Success<>(loggedInUser));
}
}
@Override
public void onFailure(Call<Post> call, Throwable t) {
Log.e(TAG, "Unable to submit post to API.");
customCallback.onFailure();
}
});
} catch (Exception e) {
e.printStactTrace();
}
}
Вы должны вызвать свой API, как показано ниже:
login("user name","passwor",new CustomCallback(){
@Override
public void onSucess(Result<LoggedInUser> value){
//do your success code here
}
@Override
public void onFailure(){
}
});