Commit 23cd690f authored by Thomas's avatar Thomas
Browse files

comment #702 - Support quotes

parent cfcab79c
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
    public static final int TAKE_PHOTO = 5600;
    private final Timer timer = new Timer();
    private List<Status> statusList;
    private Status statusReply, statusMention;
    private Status statusReply, statusMention, statusQuoted;
    private StatusDraft statusDraft;
    private ComposeAdapter composeAdapter;
    private boolean promptSaveDraft;
@@ -465,6 +465,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
        Bundle b = getIntent().getExtras();
        if (b != null) {
            statusReply = (Status) b.getSerializable(Helper.ARG_STATUS_REPLY);
            statusQuoted = (Status) b.getSerializable(Helper.ARG_QUOTED_MESSAGE);
            statusDraft = (StatusDraft) b.getSerializable(Helper.ARG_STATUS_DRAFT);
            scheduledStatus = (ScheduledStatus) b.getSerializable(Helper.ARG_STATUS_SCHEDULED);
            statusReplyId = b.getString(Helper.ARG_STATUS_REPLY_ID);
@@ -557,6 +558,9 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
        List<Status> statusDraftList = new ArrayList<>();
        Status status = new Status();
        status.id = Helper.generateIdString();
        if (statusQuoted != null) {
            status.quote_id = statusQuoted.id;
        }
        statusDraftList.add(status);

        if (statusReplyId != null && statusDraft != null) {//Delete and redraft
@@ -647,6 +651,18 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
            binding.recyclerView.setAdapter(composeAdapter);
            statusesVM.getContext(currentInstance, BaseMainActivity.currentToken, statusReply.id)
                    .observe(ComposeActivity.this, this::initializeContextView);
        } else if (statusQuoted != null) {
            statusList.add(statusQuoted);
            int statusCount = statusList.size();
            statusDraftList.get(0).quote_id = statusQuoted.id;
            //StatusDraftList at this point should only have one element
            statusList.addAll(statusDraftList);
            composeAdapter = new ComposeAdapter(statusList, statusCount, account, accountMention, visibility, editMessageId);
            composeAdapter.manageDrafts = this;
            composeAdapter.promptDraftListener = this;
            LinearLayoutManager mLayoutManager = new LinearLayoutManager(ComposeActivity.this);
            binding.recyclerView.setLayoutManager(mLayoutManager);
            binding.recyclerView.setAdapter(composeAdapter);
        } else {
            //Compose without replying
            statusList.addAll(statusDraftList);
+2 −1
Original line number Diff line number Diff line
@@ -59,7 +59,8 @@ public interface MastodonStatusesService {
            @Field("sensitive") Boolean sensitive,
            @Field("spoiler_text") String spoiler_text,
            @Field("visibility") String visibility,
            @Field("language") String language
            @Field("language") String language,
            @Field("quote_id") String quote_id
    );

    @GET("statuses/{id}/source")
+4 −0
Original line number Diff line number Diff line
@@ -48,6 +48,8 @@ public class Status implements Serializable, Cloneable {
    public String spoiler_text;
    @SerializedName("text")
    public String text;
    @SerializedName("quote_id")
    public String quote_id;
    @SerializedName("visibility")
    public String visibility;
    @SerializedName("language")
@@ -76,6 +78,8 @@ public class Status implements Serializable, Cloneable {
    public String content;
    @SerializedName("reblog")
    public Status reblog;
    @SerializedName("quote")
    public Status quote;
    @SerializedName("application")
    public App application;
    @SerializedName("account")
+1 −0
Original line number Diff line number Diff line
@@ -226,6 +226,7 @@ public class Helper {
    public static final String ARG_STATUS_DRAFT_ID = "ARG_STATUS_DRAFT_ID";
    public static final String ARG_STATUS_REPLY = "ARG_STATUS_REPLY";
    public static final String ARG_MENTION_BOOSTER = "ARG_MENTION_BOOSTER";
    public static final String ARG_QUOTED_MESSAGE = "ARG_QUOTED_MESSAGE";
    public static final String ARG_STATUS_REPLY_ID = "ARG_STATUS_REPLY_ID";
    public static final String ARG_ACCOUNT = "ARG_ACCOUNT";
    public static final String ARG_ACCOUNT_ID = "ARG_ACCOUNT_ID";
+1 −1
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ public class ComposeWorker extends Worker {
                if (dataPost.scheduledDate == null) {
                    if (dataPost.statusEditId == null) {
                        statusCall = mastodonStatusesService.createStatus(null, dataPost.token, statuses.get(i).text, attachmentIds, poll_options, poll_expire_in,
                                poll_multiple, poll_hide_totals, in_reply_to_status, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), language);
                                poll_multiple, poll_hide_totals, in_reply_to_status, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), language, statuses.get(i).quote_id);
                    } else { //Status is edited
                        statusCall = mastodonStatusesService.updateStatus(null, dataPost.token, dataPost.statusEditId, statuses.get(i).text, attachmentIds, poll_options, poll_expire_in,
                                poll_multiple, poll_hide_totals, in_reply_to_status, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), language);
Loading