summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2019-03-24 19:53:55 +0100
committertom79 <tschneider.ac@gmail.com>2019-03-24 19:53:55 +0100
commitc1c78cc51c2d5a4b82cd1dfae168f71e66ece738 (patch)
tree58c7a76b32867c861399fcf1b20289896081dd23
parent2b53659c39a355135c0ab3e4c591360a02299d50 (diff)
parentf46f49f661e639fcdc44562d109575ec1c5763be (diff)
Merge branch 'develop'
-rw-r--r--app/build.gradle4
-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
-rw-r--r--app/src/main/res/layout/drawer_notification.xml5
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"