diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java index 62c145566..dd0457718 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java @@ -1099,7 +1099,6 @@ public class API { * @param max_id String id max * @return APIResponse */ - @SuppressWarnings("SameParameterValue") private APIResponse getArtTimeline(boolean local, String tag, String max_id){ if( tag == null) tag = "mastoart"; @@ -1112,19 +1111,13 @@ public class API { if( apiResponse.getStatuses() != null && apiResponse.getStatuses().size() > 0){ for( Status status: apiResponse.getStatuses()){ if( status.getMedia_attachments() != null ) { - if (status.getMedia_attachments().size() > 1) { - String statusSerialized = Helper.statusToStringStorage(status); - for (Attachment attachment : status.getMedia_attachments()) { - ArrayList attachments = new ArrayList<>(); - attachments.add(attachment); - Status newStatus = Helper.restoreStatusFromString(statusSerialized); - if (newStatus == null) - break; - newStatus.setMedia_attachments(attachments); - apiResponseReply.getStatuses().add(newStatus); - } - } else if (status.getMedia_attachments().size() == 1) { - apiResponseReply.getStatuses().add(status); + String statusSerialized = Helper.statusToStringStorage(status); + for (Attachment attachment : status.getMedia_attachments()) { + Status newStatus = Helper.restoreStatusFromString(statusSerialized); + if (newStatus == null) + break; + newStatus.setArt_attachment(attachment); + apiResponseReply.getStatuses().add(newStatus); } } } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java index 8c822eab4..61b9abb27 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java @@ -96,6 +96,7 @@ public class Status implements Parcelable{ private boolean attachmentShown = false; private boolean spoilerShown = false; private ArrayList media_attachments; + private Attachment art_attachment; private List mentions; private List emojis; private List tags; @@ -1190,4 +1191,12 @@ public class Status implements Parcelable{ public void setFavAnimated(boolean favAnimated) { isFavAnimated = favAnimated; } + + public Attachment getArt_attachment() { + return art_attachment; + } + + public void setArt_attachment(Attachment art_attachment) { + this.art_attachment = art_attachment; + } } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java index f86d50f2e..c8c4d6a2c 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java @@ -462,10 +462,10 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct Status.transform(context, status); if( !status.isEmojiFound()) Status.makeEmojis(context, this, status); - - Glide.with(context) - .load(status.getMedia_attachments().get(0).getPreview_url()) - .into(holder.art_media); + if( status.getArt_attachment() != null) + Glide.with(context) + .load(status.getArt_attachment().getPreview_url()) + .into(holder.art_media); if( status.getAccount() != null && status.getAccount().getAvatar() != null) Glide.with(context) .load(status.getAccount().getAvatar())