Codes for default quote policy in EditProfileActivity

This commit is contained in:
0xd9a 2025-08-29 19:03:37 +05:30
parent a5fc536902
commit 05342b113a
3 changed files with 31 additions and 0 deletions

View file

@ -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()

View file

@ -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;
}
}

View file

@ -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);