diff --git a/app/build.gradle b/app/build.gradle index 41401dafe..538d5ff12 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "fr.gouv.etalab.mastodon" minSdkVersion 16 targetSdkVersion 28 - versionCode 248 - versionName "1.77.0" + versionCode 249 + versionName "1.77.1" multiDexEnabled true } dexOptions { 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..4e6e3af32 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 = 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,28 @@ 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")); + 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 = 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/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 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); } diff --git a/app/src/main/res/layout/drawer_notification.xml b/app/src/main/res/layout/drawer_notification.xml index ac1fcfe5e..56a697e50 100644 --- a/app/src/main/res/layout/drawer_notification.xml +++ b/app/src/main/res/layout/drawer_notification.xml @@ -280,6 +280,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" /> + +