diff options
Diffstat (limited to 'app/src/main/java/fr/gouv/etalab/mastodon')
4 files changed, 30 insertions, 22 deletions
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 1536b4057..d842e3277 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 @@ -3648,26 +3648,6 @@ public class API { attachments.add(attachment); } } - if( resobj.has("poll") && !resobj.isNull("poll")){ - Poll poll = new Poll(); - poll.setId(resobj.getJSONObject("poll").getString("id")); - poll.setExpires_at(Helper.mstStringToDate(context, resobj.getJSONObject("poll").getString("expires_at"))); - poll.setExpired(resobj.getJSONObject("poll").getBoolean("expired")); - poll.setMultiple(resobj.getJSONObject("poll").getBoolean("multiple")); - poll.setVotes_count(resobj.getJSONObject("poll").getInt("votes_count")); - poll.setVoted(resobj.getJSONObject("poll").getBoolean("voted")); - JSONArray options = resobj.getJSONObject("poll").getJSONArray("options"); - List<PollOptions> pollOptions = new ArrayList<>(); - for(int i = 0; i < options.length() ; i++){ - JSONObject option = options.getJSONObject(i); - PollOptions pollOption = new PollOptions(); - pollOption.setTitle(option.getString("title")); - pollOption.setVotes_count(option.getInt("votes_count")); - pollOptions.add(pollOption); - } - poll.setOptionsList(pollOptions); - status.setPoll(poll); - } try { status.setCard(parseCardResponse(resobj.getJSONObject("card"))); @@ -3761,6 +3741,32 @@ public class API { try{ status.setReblog(parseStatuses(context, resobj.getJSONObject("reblog"))); }catch (Exception ignored){} + + if( resobj.has("poll") && !resobj.isNull("poll")){ + Poll poll = new Poll(); + poll.setId(resobj.getJSONObject("poll").getString("id")); + try { + poll.setExpires_at(Helper.mstStringToDate(context, resobj.getJSONObject("poll").getString("expires_at"))); + }catch (Exception e){ + poll.setExpires_at(new Date()); + } + poll.setExpired(resobj.getJSONObject("poll").getBoolean("expired")); + poll.setMultiple(resobj.getJSONObject("poll").getBoolean("multiple")); + poll.setVotes_count(resobj.getJSONObject("poll").getInt("votes_count")); + poll.setVoted(resobj.getJSONObject("poll").getBoolean("voted")); + JSONArray options = resobj.getJSONObject("poll").getJSONArray("options"); + List<PollOptions> pollOptions = new ArrayList<>(); + for(int i = 0; i < options.length() ; i++){ + JSONObject option = options.getJSONObject(i); + PollOptions pollOption = new PollOptions(); + pollOption.setTitle(option.getString("title")); + pollOption.setVotes_count(option.getInt("votes_count")); + pollOptions.add(pollOption); + } + poll.setOptionsList(pollOptions); + status.setPoll(poll); + } + } catch (JSONException ignored) {} catch (ParseException e) { e.printStackTrace(); } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java index 0f7ee5c90..8ac4acd65 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java @@ -485,7 +485,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On holder.status_show_more.setVisibility(View.GONE); }else { if (status.getReblog() == null) { - if (status.getMedia_attachments().size() < 1) { + if (status.getMedia_attachments() == null || status.getMedia_attachments().size() < 1) { holder.status_document_container.setVisibility(View.GONE); holder.status_show_more.setVisibility(View.GONE); } else { 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 af7e0341c..9c70f131a 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 @@ -557,7 +557,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.multiple_choice.setVisibility(View.GONE); holder.single_choice.setVisibility(View.GONE); holder.submit_vote.setVisibility(View.GONE); - if( status.getPoll() != null){ + if( status.getPoll() != null && status.getPoll().getOptionsList() != null ){ Poll poll = status.getPoll(); int choiceCount = status.getPoll().getOptionsList().size(); if( poll.isVoted()){ diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java index 507425347..1ed494625 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java @@ -1515,6 +1515,8 @@ public class Helper { public static SpannableString makeMentionsClick(final Context context, List<Mention> mentions){ String cw_mention = ""; + if( mentions == null) + return new SpannableString(cw_mention); for(Mention mention:mentions){ cw_mention = String.format("@%s %s",mention.getUsername(),cw_mention); } |