Модификация call.enqueue не дает никакого ответа (успех / сбой) в методе Fragement и onNavigationItemSelected для BottomNavigationView
В методе userProfileDetails я вызвал Retrofit client. При выполнении кода ответ API застревает в методе call.enqueue, а метод onResponse или onFailure не вызывается в методе onNavigationItemSelected
Тот же метод прекрасно работает на методе Create для соответствующей Activity. Та же проблема происходит в классе UserProfileFragment.
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment = null;
switch (item.getItemId()){
case R.id.menu_landingorder:
fragment = new OrderFragment();
break;
case R.id.menu_reccuringcart:
fragment = new RecurringCartFragment();
break;
case R.id.menu_landingprofile:
userProfile =userProfileDetails();
fragment = new UserProfileFragment();
Bundle b = new Bundle();
b.putSerializable(StringConstants.USERPROFILE, userProfile);
fragment.setArguments(b);
break;
}
if(fragment!=null){
displayFragment(fragment);
}
return false;
}
private UserProfile userProfileDetails() {
Call<UserProfile> call = RetrofitClient.getInstance().getApi().getUserDetails("Bearer "+ user.get(SessionManager.KEY_SESSION_TOKEN));
Log.i("user :: " , "Bearer "+ user.get(SessionManager.KEY_SESSION_TOKEN));
call.enqueue(new Callback<UserProfile>(){
@Override
public void onResponse(Call<UserProfile> call, Response<UserProfile> response) {
if(response.isSuccessful()){
userProfile = response.body();
Log.i("Response SuccessFul :: ", userProfile.getPhoneNo());
}else {
userProfile = response.body();
Log.i("Response Failure :: ", userProfile.getPhoneNo());
try {
Log.e("Coming Inside", String.valueOf(response.code()) + " Err Body " + response.errorBody());
Log.i("user :: ", userProfile.getPhoneNo());
} catch (Exception e) {
Log.e("Error Inside", String.valueOf(response.code()) + " Err Body " + response.errorBody());
}
}
}
@Override
public void onFailure(Call<UserProfile> call, Throwable t) {
Log.e("Issues ", t.getMessage() );
}
});
return userProfile;
}
private void displayFragment(Fragment fragment){
getSupportFragmentManager().beginTransaction()
.replace(R.id.landingrelativeLayout, fragment)
.commit();
Toast.makeText(LandingActivity.this, "Display Fragment Home", Toast.LENGTH_LONG).show();
}