diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Peertube.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Peertube.java index f7c7d374d..069524e7d 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Peertube.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Peertube.java @@ -54,6 +54,7 @@ public class Peertube { private String myRating = "none"; private boolean isUpdate = false; // I allow to set it to true when dealing with API updates private String headerType = null;//For overview timeline + private String headerTypeValue = null;//For overview timeline private JSONObject cache; public Peertube() { @@ -330,4 +331,12 @@ public class Peertube { public void setHeaderType(String headerType) { this.headerType = headerType; } + + public String getHeaderTypeValue() { + return headerTypeValue; + } + + public void setHeaderTypeValue(String headerTypeValue) { + this.headerTypeValue = headerTypeValue; + } } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/PeertubeAPI.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/PeertubeAPI.java index d1498a4b2..81e02dca2 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/PeertubeAPI.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/PeertubeAPI.java @@ -745,42 +745,50 @@ public class PeertubeAPI { List peertubes1 = parsePeertube(values); if( peertubes1 != null && peertubes1.size() > 0) { peertubes1.get(0).setHeaderType("categories"); + peertubes1.get(0).setHeaderTypeValue(videoA.getJSONObject(0).getJSONObject("category").getString("label")); peertubes.addAll(peertubes1); } values = videoA.getJSONObject(1).getJSONArray("videos"); List peertubes2 = parsePeertube(values); if( peertubes2 != null && peertubes2.size() > 0) { peertubes2.get(0).setHeaderType("categories"); + peertubes2.get(0).setHeaderTypeValue(videoA.getJSONObject(1).getJSONObject("category").getString("label")); peertubes.addAll(peertubes2); } + videoA = new JSONObject(response).getJSONArray("tags"); + values = videoA.getJSONObject(0).getJSONArray("videos"); + List peertubes5 = parsePeertube(values); + if( peertubes5 != null && peertubes5.size() > 0) { + peertubes5.get(0).setHeaderType("tag"); + peertubes5.get(0).setHeaderTypeValue(videoA.getJSONObject(0).getString("tag")); + peertubes.addAll(peertubes5); + } + values = videoA.getJSONObject(1).getJSONArray("videos"); + List peertubes6 = parsePeertube(values); + if( peertubes6 != null && peertubes6.size() > 0) { + peertubes6.get(0).setHeaderType("tag"); + peertubes6.get(0).setHeaderTypeValue(videoA.getJSONObject(1).getString("tag")); + peertubes.addAll(peertubes6); + } + videoA = new JSONObject(response).getJSONArray("channels"); values = videoA.getJSONObject(0).getJSONArray("videos"); List peertubes3 = parsePeertube(values); if( peertubes3 != null && peertubes3.size() > 0) { peertubes3.get(0).setHeaderType("channels"); + peertubes3.get(0).setHeaderTypeValue(videoA.getJSONObject(0).getJSONObject("channel").getString("displayName")); peertubes.addAll(peertubes3); } values = videoA.getJSONObject(1).getJSONArray("videos"); List peertubes4 = parsePeertube(values); if( peertubes4 != null && peertubes4.size() > 0) { peertubes4.get(0).setHeaderType("channels"); + peertubes4.get(0).setHeaderTypeValue(videoA.getJSONObject(1).getJSONObject("channel").getString("displayName")); peertubes.addAll(peertubes4); } - videoA = new JSONObject(response).getJSONArray("tags"); - values = videoA.getJSONObject(0).getJSONArray("videos"); - List peertubes5 = parsePeertube(values); - if( peertubes5 != null && peertubes5.size() > 0) { - peertubes5.get(0).setHeaderType(videoA.getJSONObject(0).getString("tag")); - peertubes.addAll(peertubes5); - } - values = videoA.getJSONObject(1).getJSONArray("videos"); - List peertubes6 = parsePeertube(values); - if( peertubes6 != null && peertubes6.size() > 0) { - peertubes6.get(0).setHeaderType(videoA.getJSONObject(1).getString("tag")); - peertubes.addAll(peertubes6); - } + } } catch (HttpsConnection.HttpsConnectionException e) { diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/PeertubeAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/PeertubeAdapter.java index 2ff62f73d..0ccfd6da2 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/PeertubeAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/PeertubeAdapter.java @@ -31,7 +31,6 @@ import android.widget.TextView; import com.bumptech.glide.Glide; import java.util.List; -import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -122,24 +121,14 @@ public class PeertubeAdapter extends RecyclerView.Adapter implements OnListActio Helper.loadGiF(context, account.getAvatar(), holder.peertube_profile); - if( peertube.getHeaderType() != null ) { + if( peertube.getHeaderType() != null && peertube.getHeaderTypeValue() != null) { String type = peertube.getHeaderType(); switch (type){ - case "categories": - Map.Entry categoryM = peertube.getCategory().entrySet().iterator().next(); - String categoryMValue = categoryM.getValue(); - holder.header_title.setText(categoryMValue); - break; - case "channels": - String sentence; - if( peertube.getChannel().getUsername().split("-").length < 4) - sentence = peertube.getChannel().getUsername(); - else - sentence = context.getString(R.string.default_channel_of, peertube.getAccount().getUsername()); - holder.header_title.setText(sentence); + case "tags": + holder.header_title.setText(String.format("#%s", peertube.getHeaderType())); break; default: - holder.header_title.setText(String.format("#%s", peertube.getHeaderType())); + holder.header_title.setText(peertube.getHeaderTypeValue()); break; } holder.header_title.setVisibility(View.VISIBLE);