Commit a9c2cd13 authored by Thomas's avatar Thomas
Browse files

- Fix crashes in thread view and when scheduling a poll

parent 77d8d375
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ import app.fedilab.android.mastodon.client.entities.api.Context;
import app.fedilab.android.mastodon.client.entities.api.EmojiInstance;
import app.fedilab.android.mastodon.client.entities.api.Instance;
import app.fedilab.android.mastodon.client.entities.api.Mention;
import app.fedilab.android.mastodon.client.entities.api.Poll;
import app.fedilab.android.mastodon.client.entities.api.ScheduledStatus;
import app.fedilab.android.mastodon.client.entities.api.Status;
import app.fedilab.android.mastodon.client.entities.app.BaseAccount;
@@ -565,7 +566,17 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
                    status.id = Helper.generateIdString();
                    status.text = scheduledStatus.params.text;
                    status.in_reply_to_id = scheduledStatus.params.in_reply_to_id;
                    status.poll = scheduledStatus.params.poll;
                    if (scheduledStatus.params.poll != null) {
                        status.poll = new Poll();
                        status.poll.multiple = scheduledStatus.params.poll.multiple;
                        status.poll.expire_in = scheduledStatus.params.poll.expires_in;
                        status.poll.options = new ArrayList<>();
                        for (String option : scheduledStatus.params.poll.options) {
                            Poll.PollItem pollItem = new Poll.PollItem();
                            pollItem.title = option;
                            status.poll.options.add(pollItem);
                        }
                    }
                    if (scheduledStatus.media_attachments != null && !scheduledStatus.media_attachments.isEmpty()) {
                        status.media_attachments = scheduledStatus.media_attachments;
                    }
+12 −1
Original line number Diff line number Diff line
@@ -31,6 +31,17 @@ public class ScheduledStatus implements Serializable {
    public List<Attachment> media_attachments;


    public static class ScheduledPoll implements Serializable {
        @SerializedName("options")
        public List<String> options;
        @SerializedName("expires_in")
        public int expires_in;
        @SerializedName("multiple")
        public boolean multiple;
        @SerializedName("hide_totals")
        public boolean hide_totals;
    }

    public static class Params implements Serializable {
        @SerializedName("text")
        public String text;
@@ -47,7 +58,7 @@ public class ScheduledStatus implements Serializable {
        @SerializedName("scheduled_at")
        public Date scheduled_at;
        @SerializedName("poll")
        public Poll poll;
        public ScheduledPoll poll;
        @SerializedName("idempotency")
        public String idempotency;
        @SerializedName("in_reply_to_id")
+4 −1
Original line number Diff line number Diff line
@@ -157,10 +157,13 @@ public class FragmentMastodonContext extends Fragment {
     * @return position or -1 if not found
     */
    private int getPosition(Status status) {
        if (status == null || status.id == null) {
            return -1;
        }
        int position = 0;
        boolean found = false;
        for (Status _status : statuses) {
            if (_status.id.compareTo(status.id) == 0) {
            if (status.id.equals(_status.id)) {
                found = true;
                break;
            }