summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/fr/gouv
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/fr/gouv')
-rw-r--r--app/src/main/java/fr/gouv/etalab/mastodon/client/API.java46
-rw-r--r--app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java2
-rw-r--r--app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java2
-rw-r--r--app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java2
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);
}