Glide скачивает только одно изображение из списка
Есть задача скачать несколько изображений по url, хранящимся в json. Для получения json с сайта использую volley, для скачивания изображений и сохранения в файл использую glide. Проблема в том, что glide сохраняет только последнее изображение из списка.
public class MainActivity extends AppCompatActivity {
private static final String URL_DATA = "https://sokrsokr.net/wp-json/wp/v2/posts?&orderby=date&page=1&per_page=10";
String image_url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loadUrlData();
}
private void loadUrlData() {
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.requestWindowFeature(Window.FEATURE_RIGHT_ICON);
progressDialog.setFeatureDrawableResource(Window.FEATURE_RIGHT_ICON, R.drawable.logo);
progressDialog.setMessage("Загружается...");
progressDialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.GET,
URL_DATA, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
image_url = jsonObject.getString("jetpack_featured_media_url");
Glide.with(getApplicationContext()).asBitmap().load(image_url).listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
}).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
image_url = image_url.split("\\?")[0];
final String name = image_url.substring(image_url.lastIndexOf('/') + 1);
final String image_file = String.valueOf(getExternalFilesDir(null)) + File.separator + name;
File file = new File(image_file);
FileOutputStream out;
try {
out = new FileOutputStream(file);
resource.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
};
} catch (JSONException e) {
Log.e("MYTAG", "Ошибка: " + e.getMessage());
}
}
}, new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
final Toast tag = Toast.makeText(getBaseContext(), "Отсутствует интернет-соединение", Toast.LENGTH_SHORT);
tag.show();
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
tag.show();
}
public void onFinish() {
tag.show();
}
}.start();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
stringRequest.setRetryPolicy(new DefaultRetryPolicy(60 * 1000, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(stringRequest);
}
}
Я также пытался использовать Picasso, но при этом не скачалось ни одно изображение вообще.