Loading app/src/main/java/app/fedilab/android/mastodon/activities/EditProfileActivity.java +24 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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++) { Loading Loading @@ -421,6 +444,7 @@ public class EditProfileActivity extends BaseBarActivity { binding.locked.isChecked(), getPrivacy(), binding.sensitive.isChecked(), getQuotePolicy(), null, getFields(), getFeaturedHashtags() Loading app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Source.java +4 −0 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -40,5 +42,7 @@ public class Source implements Serializable { public boolean sensitive; @SerializedName("language") public String language; @SerializedName("quote_policy") public String quotePolicy; } } app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AccountsVM.java +3 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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); Loading Loading
app/src/main/java/app/fedilab/android/mastodon/activities/EditProfileActivity.java +24 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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++) { Loading Loading @@ -421,6 +444,7 @@ public class EditProfileActivity extends BaseBarActivity { binding.locked.isChecked(), getPrivacy(), binding.sensitive.isChecked(), getQuotePolicy(), null, getFields(), getFeaturedHashtags() Loading
app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Source.java +4 −0 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -40,5 +42,7 @@ public class Source implements Serializable { public boolean sensitive; @SerializedName("language") public String language; @SerializedName("quote_policy") public String quotePolicy; } }
app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AccountsVM.java +3 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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); Loading