Я получаю нулевое значение при попытке загрузить изображение с помощью Retrofit. На самом деле это происходит только Xioami A2 Lite. Я не понимаю, в чем здесь проблема.
Вот мой код
public void setFinalResponseMutableLiveData(final Context context, Uri fileuri, final PhotoView photoView, final String title) {
photoView.onPhotoLoading();
if (NetworkHelper.hasNetworAccess(context)){
// create upload service client
File file=new File(FileUtils.getPath(context,fileuri));
RequestBody requestFile =
RequestBody.create(
MediaType.parse(context.getContentResolver().getType(fileuri)),
file
);
// MultipartBody.Part is used to send also the actual file name
MultipartBody.Part body =
MultipartBody.Part.createFormData("file", file.getName(), requestFile);
// add another part within the multipart request
String descriptionString = title;
RequestBody description =
RequestBody.create(
okhttp3.MultipartBody.FORM, descriptionString);
RetrofitClient.getInstance().getApi().getImageResponse(description,body).enqueue(new Callback<PhotoUploadResponse>() {
@Override
public void onResponse(Call<PhotoUploadResponse> call, Response<PhotoUploadResponse> response) {
photoView.onPhotoLoaded();
if (response.isSuccessful()){
finalResponseMutableLiveData.setValue(response.body());
}
else {
new CustomMessage((Activity)context,response.message());
}
}
@Override
public void onFailure(Call<PhotoUploadResponse> call, Throwable t) {
photoView.onPhotoLoaded();
new CustomMessage((Activity)context,t.getMessage());
Log.d("CURRENT", "onFailure: "+t.getMessage());
}
});
}
else {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
photoView.onPhotoLoaded();
photoView.onInternetError();
}
},100);
}
}