diff options
author | tom79 <tschneider.ac@gmail.com> | 2019-03-24 19:53:55 +0100 |
---|---|---|
committer | tom79 <tschneider.ac@gmail.com> | 2019-03-24 19:53:55 +0100 |
commit | c1c78cc51c2d5a4b82cd1dfae168f71e66ece738 (patch) | |
tree | 58c7a76b32867c861399fcf1b20289896081dd23 | |
parent | 2b53659c39a355135c0ab3e4c591360a02299d50 (diff) | |
parent | f46f49f661e639fcdc44562d109575ec1c5763be (diff) |
Merge branch 'develop'
6 files changed, 37 insertions, 24 deletions
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..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); } 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" /> </LinearLayout> + + <include + android:layout_width="match_parent" + android:layout_height="wrap_content" + layout="@layout/layout_poll" /> <LinearLayout android:id="@+id/status_action_container" android:visibility="gone" |