Commit 05342b11 authored by 0xd9a's avatar 0xd9a
Browse files

Codes for default quote policy in EditProfileActivity

parent a5fc5369
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -197,6 +197,18 @@ public class EditProfileActivity extends BaseBarActivity {
            binding.visibilityGroup.setVisibility(View.GONE);
        }

        String quotePolicy = Helper.getCurrentAccount(EditProfileActivity.this).mastodon_account.source.quotePolicy;
        if (quotePolicy != null) {
            switch (quotePolicy) {
                case "nobody" -> binding.quoteApprovalPolicyNoOne.setChecked(true);
                case "followers" -> binding.quoteApprovalPolicyFollowersOnly.setChecked(true);
                case "public" -> binding.quoteApprovalPolicyAnyone.setChecked(true);
            }
        } else {
            binding.quoteApprovalPolicyLabel.setVisibility(View.GONE);
            binding.quoteApprovalPolicyGroup.setVisibility(View.GONE);
        }

        binding.bot.setChecked(Helper.getCurrentAccount(EditProfileActivity.this).mastodon_account.bot);
        binding.discoverable.setChecked(Helper.getCurrentAccount(EditProfileActivity.this).mastodon_account.discoverable);

@@ -386,6 +398,17 @@ public class EditProfileActivity extends BaseBarActivity {
        return null;
    }

    private String getQuotePolicy() {
        if (binding.quoteApprovalPolicyNoOne.isChecked()) {
            return "nobody";
        } else if (binding.quoteApprovalPolicyFollowersOnly.isChecked()) {
            return "followers";
        } else if (binding.quoteApprovalPolicyAnyone.isChecked()) {
            return "public";
        }
        return null;
    }

    LinkedHashMap<Integer, Field.FieldParams> getFields() {
        LinkedHashMap<Integer, Field.FieldParams> fields = new LinkedHashMap<>();
        for (int i = 0; i < binding.fieldsContainer.getChildCount(); i++) {
@@ -421,6 +444,7 @@ public class EditProfileActivity extends BaseBarActivity {
                            binding.locked.isChecked(),
                            getPrivacy(),
                            binding.sensitive.isChecked(),
                            getQuotePolicy(),
                            null,
                            getFields(),
                            getFeaturedHashtags()
+4 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ public class Source implements Serializable {
    public String privacy;
    @SerializedName("sensitive")
    public boolean sensitive;
    @SerializedName("quote_policy")
    public String quotePolicy;
    @SerializedName("language")
    public String language;
    @SerializedName("note")
@@ -40,5 +42,7 @@ public class Source implements Serializable {
        public boolean sensitive;
        @SerializedName("language")
        public String language;
        @SerializedName("quote_policy")
        public String quotePolicy;
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -251,6 +251,7 @@ public class AccountsVM extends AndroidViewModel {
     * @param locked       Whether manual approval of follow requests is required.
     * @param privacy      Default post privacy for authored statuses.
     * @param sensitive    Whether to mark authored statuses as sensitive by default.
     * @param quotePolicy  Default value for who can quote statuses
     * @param language     Default language to use for authored statuses. (ISO 6391)
     * @param fields       Profile metadata name (By default, max 4 fields and 255 characters per property/value)
     * @param featuredHashtags Featured hashtags that will be displayed on the profile
@@ -264,6 +265,7 @@ public class AccountsVM extends AndroidViewModel {
                                               Boolean locked,
                                               String privacy,
                                               Boolean sensitive,
                                               String quotePolicy,
                                               String language,
                                               LinkedHashMap<Integer, Field.FieldParams> fields,
                                               List<String> featuredHashtags
@@ -286,6 +288,7 @@ public class AccountsVM extends AndroidViewModel {
            accountParams.source.privacy = privacy;
            accountParams.source.language = language;
            accountParams.source.sensitive = sensitive;
            accountParams.source.quotePolicy = quotePolicy;
            accountParams.fields = fields;
            Call<Account> accountCall = mastodonAccountsService.update_credentials(token, accountParams);
            // Call<Account> accountCall = mastodonAccountsService.update_credentials(token, discoverable, bot, displayName, note, locked, privacy, sensitive, language, fields);