From 26d51caaf8488128c3a3a63be42a5a2e03c6f6f9 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 23 Feb 2024 10:29:36 +0100 Subject: [PATCH] Allow to disable pronouns support - Default enabled --- .../ui/drawer/AccountsSearchAdapter.java | 15 ++++++++++---- .../mastodon/ui/drawer/ComposeAdapter.java | 13 +++++++----- .../mastodon/ui/drawer/StatusAdapter.java | 20 +++++++++++-------- app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/pref_timelines.xml | 7 +++++++ 5 files changed, 40 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/AccountsSearchAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/AccountsSearchAdapter.java index a5a72862e..40449cdf6 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/AccountsSearchAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/AccountsSearchAdapter.java @@ -15,6 +15,7 @@ package app.fedilab.android.mastodon.ui.drawer; * see . */ import android.content.Context; +import android.content.SharedPreferences; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -23,11 +24,13 @@ import android.widget.Filter; import android.widget.Filterable; import androidx.annotation.NonNull; +import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; +import app.fedilab.android.R; import app.fedilab.android.databinding.DrawerAccountSearchBinding; import app.fedilab.android.mastodon.client.entities.api.Account; import app.fedilab.android.mastodon.client.entities.api.Field; @@ -120,10 +123,14 @@ public class AccountsSearchAdapter extends ArrayAdapter implements Filt holder.binding.accountDn.setText(account.display_name); holder.binding.accountDn.setVisibility(View.VISIBLE); account.pronouns = null; - for (Field field : account.fields) { - if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { - account.pronouns = Helper.parseHtml(field.value); - break; + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean pronounsSupport = sharedpreferences.getBoolean(getContext().getString(R.string.SET_PRONOUNS_SUPPORT), true); + if(pronounsSupport) { + for (Field field : account.fields) { + if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { + account.pronouns = Helper.parseHtml(field.value); + break; + } } } if (account.pronouns != null) { diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java index 09bab05ac..220db6802 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java @@ -1427,11 +1427,14 @@ public class ComposeAdapter extends RecyclerView.Adapter 0) { - for (Field field : accountFromUser.fields) { - if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { - statusList.get(position).pronouns = Helper.parseHtml(field.value); - break; + boolean pronounsSupport = sharedpreferences.getBoolean(context.getString(R.string.SET_PRONOUNS_SUPPORT), true); + if(pronounsSupport) { + if (accountFromUser.fields != null && accountFromUser.fields.size() > 0) { + for (Field field : accountFromUser.fields) { + if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { + statusList.get(position).pronouns = Helper.parseHtml(field.value); + break; + } } } } diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java index 188378f0d..596d25fa4 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java @@ -482,17 +482,21 @@ public class StatusAdapter extends RecyclerView.Adapter } String loadMediaType = sharedpreferences.getString(context.getString(R.string.SET_LOAD_MEDIA_TYPE), "ALWAYS"); - if (statusToDeal.pronouns == null && statusToDeal.account.fields != null && statusToDeal.account.fields.size() > 0) { - for (Field field : statusToDeal.account.fields) { - if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { - statusToDeal.pronouns = Helper.parseHtml(field.value); - break; + boolean pronounsSupport = sharedpreferences.getBoolean(context.getString(R.string.SET_PRONOUNS_SUPPORT), true); + if(pronounsSupport) { + if (statusToDeal.pronouns == null && statusToDeal.account.fields != null && statusToDeal.account.fields.size() > 0) { + for (Field field : statusToDeal.account.fields) { + if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { + statusToDeal.pronouns = Helper.parseHtml(field.value); + break; + } + } + if (statusToDeal.pronouns == null) { + statusToDeal.pronouns = "none"; } } - if (statusToDeal.pronouns == null) { - statusToDeal.pronouns = "none"; - } } + if (statusToDeal.pronouns != null && !statusToDeal.pronouns.equalsIgnoreCase("none")) { holder.binding.pronouns.setVisibility(View.VISIBLE); holder.binding.pronouns.setText(statusToDeal.pronouns); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7a0c32a81..22177660b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -639,6 +639,7 @@ Other Eg.: Sensitive Content Pronouns + Pronouns support Add status Remove status @@ -1197,6 +1198,7 @@ SET_MARKDOWN_SUPPORT SET_TRUNCATE_LINKS SET_UNDERLINE_CLICKABLE + SET_PRONOUNS_SUPPORT SET_TRUNCATE_LINKS_MAX SET_HIDE_SINGLE_MEDIA_WITH_CARD diff --git a/app/src/main/res/xml/pref_timelines.xml b/app/src/main/res/xml/pref_timelines.xml index 90ad7ca0c..4f47cb44e 100644 --- a/app/src/main/res/xml/pref_timelines.xml +++ b/app/src/main/res/xml/pref_timelines.xml @@ -79,6 +79,13 @@ app:singleLineTitle="false" app:title="@string/underline_links" /> + +