Loading app/src/main/java/app/fedilab/android/mastodon/helper/PronounsHelper.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package app.fedilab.android.mastodon.helper; /* Copyright 2024 Thomas Schneider * * This file is a part of Fedilab * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation; either version 3 of the * License, or (at your option) any later version. * * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import java.util.ArrayList; import java.util.List; public class PronounsHelper { public static List<String> pronouns = new ArrayList<>() { { add("pronoun"); add("pronouns"); add("pronoms"); add("pronom"); add("pronombres"); add("לשון פנייה"); add("כינויי גוף"); add("pronomen"); add("pronomina"); add("称谓"); add("pronomes"); add("pronome"); add("pronomi"); add("pronomoj"); add("zaimki"); add("voornaamwoorden"); add("riochdairean"); add("כינויי גוף"); add("personlig pronomen"); } }; } app/src/main/java/app/fedilab/android/mastodon/ui/drawer/AccountsSearchAdapter.java +12 −4 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ package app.fedilab.android.mastodon.ui.drawer; * see <http://www.gnu.org/licenses>. */ import android.content.Context; import android.content.SharedPreferences; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading @@ -23,16 +24,19 @@ 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; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.PronounsHelper; public class AccountsSearchAdapter extends ArrayAdapter<Account> implements Filterable { Loading Loading @@ -119,12 +123,16 @@ public class AccountsSearchAdapter extends ArrayAdapter<Account> implements Filt holder.binding.accountDn.setText(account.display_name); holder.binding.accountDn.setVisibility(View.VISIBLE); account.pronouns = null; 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 (field.name.trim().equalsIgnoreCase("pronouns")) { if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { account.pronouns = Helper.parseHtml(field.value); break; } } } if (account.pronouns != null) { holder.binding.pronouns.setText(account.pronouns); holder.binding.pronouns.setVisibility(View.VISIBLE); Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +9 −5 Original line number Diff line number Diff line Loading @@ -128,6 +128,7 @@ import app.fedilab.android.mastodon.helper.ComposeHelper; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.LongClickLinkMovementMethod; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.PronounsHelper; import app.fedilab.android.mastodon.helper.ThemeHelper; import app.fedilab.android.mastodon.imageeditor.EditImageActivity; import app.fedilab.android.mastodon.viewmodel.mastodon.AccountsVM; Loading Loading @@ -1426,15 +1427,18 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder Status statusFromUser = statusList.get(position - 1); Account accountFromUser = statusFromUser.account; statusFromUser.pronouns = null; 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 (field.name.toLowerCase().startsWith("pronoun")) { if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { statusList.get(position).pronouns = Helper.parseHtml(field.value); break; } } } } } ComposeViewHolder holder = (ComposeViewHolder) viewHolder; boolean extraFeatures = sharedpreferences.getBoolean(context.getString(R.string.SET_EXTAND_EXTRA_FEATURES) + MainActivity.currentUserID + MainActivity.currentInstance, false); boolean mathsComposer = sharedpreferences.getBoolean(context.getString(R.string.SET_MATHS_COMPOSER), true); Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +13 −8 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.LongClickLinkMovementMethod; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.MediaHelper; import app.fedilab.android.mastodon.helper.PronounsHelper; import app.fedilab.android.mastodon.helper.SpannableHelper; import app.fedilab.android.mastodon.helper.ThemeHelper; import app.fedilab.android.mastodon.helper.TimelineHelper; Loading Loading @@ -481,9 +482,11 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> } String loadMediaType = sharedpreferences.getString(context.getString(R.string.SET_LOAD_MEDIA_TYPE), "ALWAYS"); 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 (field.name.toLowerCase().startsWith("pronoun")) { if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { statusToDeal.pronouns = Helper.parseHtml(field.value); break; } Loading @@ -492,6 +495,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> statusToDeal.pronouns = "none"; } } } if (statusToDeal.pronouns != null && !statusToDeal.pronouns.equalsIgnoreCase("none")) { holder.binding.pronouns.setVisibility(View.VISIBLE); holder.binding.pronouns.setText(statusToDeal.pronouns); Loading app/src/main/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,7 @@ <string name="other">Other</string> <string name="eg_sensitive_content">Eg.: Sensitive Content</string> <string name="Pronouns">Pronouns</string> <string name="pronouns_support">Pronouns support</string> <string name="add_status">Add status</string> <string name="remove_status">Remove status</string> Loading Loading @@ -1197,6 +1198,7 @@ <string name="SET_MARKDOWN_SUPPORT" translatable="false">SET_MARKDOWN_SUPPORT</string> <string name="SET_TRUNCATE_LINKS" translatable="false">SET_TRUNCATE_LINKS</string> <string name="SET_UNDERLINE_CLICKABLE" translatable="false">SET_UNDERLINE_CLICKABLE</string> <string name="SET_PRONOUNS_SUPPORT" translatable="false">SET_PRONOUNS_SUPPORT</string> <string name="SET_TRUNCATE_LINKS_MAX" translatable="false">SET_TRUNCATE_LINKS_MAX</string> <string name="SET_HIDE_SINGLE_MEDIA_WITH_CARD" translatable="false">SET_HIDE_SINGLE_MEDIA_WITH_CARD</string> Loading Loading
app/src/main/java/app/fedilab/android/mastodon/helper/PronounsHelper.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package app.fedilab.android.mastodon.helper; /* Copyright 2024 Thomas Schneider * * This file is a part of Fedilab * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation; either version 3 of the * License, or (at your option) any later version. * * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import java.util.ArrayList; import java.util.List; public class PronounsHelper { public static List<String> pronouns = new ArrayList<>() { { add("pronoun"); add("pronouns"); add("pronoms"); add("pronom"); add("pronombres"); add("לשון פנייה"); add("כינויי גוף"); add("pronomen"); add("pronomina"); add("称谓"); add("pronomes"); add("pronome"); add("pronomi"); add("pronomoj"); add("zaimki"); add("voornaamwoorden"); add("riochdairean"); add("כינויי גוף"); add("personlig pronomen"); } }; }
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/AccountsSearchAdapter.java +12 −4 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ package app.fedilab.android.mastodon.ui.drawer; * see <http://www.gnu.org/licenses>. */ import android.content.Context; import android.content.SharedPreferences; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading @@ -23,16 +24,19 @@ 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; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.PronounsHelper; public class AccountsSearchAdapter extends ArrayAdapter<Account> implements Filterable { Loading Loading @@ -119,12 +123,16 @@ public class AccountsSearchAdapter extends ArrayAdapter<Account> implements Filt holder.binding.accountDn.setText(account.display_name); holder.binding.accountDn.setVisibility(View.VISIBLE); account.pronouns = null; 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 (field.name.trim().equalsIgnoreCase("pronouns")) { if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { account.pronouns = Helper.parseHtml(field.value); break; } } } if (account.pronouns != null) { holder.binding.pronouns.setText(account.pronouns); holder.binding.pronouns.setVisibility(View.VISIBLE); Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +9 −5 Original line number Diff line number Diff line Loading @@ -128,6 +128,7 @@ import app.fedilab.android.mastodon.helper.ComposeHelper; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.LongClickLinkMovementMethod; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.PronounsHelper; import app.fedilab.android.mastodon.helper.ThemeHelper; import app.fedilab.android.mastodon.imageeditor.EditImageActivity; import app.fedilab.android.mastodon.viewmodel.mastodon.AccountsVM; Loading Loading @@ -1426,15 +1427,18 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder Status statusFromUser = statusList.get(position - 1); Account accountFromUser = statusFromUser.account; statusFromUser.pronouns = null; 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 (field.name.toLowerCase().startsWith("pronoun")) { if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { statusList.get(position).pronouns = Helper.parseHtml(field.value); break; } } } } } ComposeViewHolder holder = (ComposeViewHolder) viewHolder; boolean extraFeatures = sharedpreferences.getBoolean(context.getString(R.string.SET_EXTAND_EXTRA_FEATURES) + MainActivity.currentUserID + MainActivity.currentInstance, false); boolean mathsComposer = sharedpreferences.getBoolean(context.getString(R.string.SET_MATHS_COMPOSER), true); Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +13 −8 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.LongClickLinkMovementMethod; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.MediaHelper; import app.fedilab.android.mastodon.helper.PronounsHelper; import app.fedilab.android.mastodon.helper.SpannableHelper; import app.fedilab.android.mastodon.helper.ThemeHelper; import app.fedilab.android.mastodon.helper.TimelineHelper; Loading Loading @@ -481,9 +482,11 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> } String loadMediaType = sharedpreferences.getString(context.getString(R.string.SET_LOAD_MEDIA_TYPE), "ALWAYS"); 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 (field.name.toLowerCase().startsWith("pronoun")) { if (PronounsHelper.pronouns.contains(field.name.toLowerCase().trim())) { statusToDeal.pronouns = Helper.parseHtml(field.value); break; } Loading @@ -492,6 +495,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> statusToDeal.pronouns = "none"; } } } if (statusToDeal.pronouns != null && !statusToDeal.pronouns.equalsIgnoreCase("none")) { holder.binding.pronouns.setVisibility(View.VISIBLE); holder.binding.pronouns.setText(statusToDeal.pronouns); Loading
app/src/main/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,7 @@ <string name="other">Other</string> <string name="eg_sensitive_content">Eg.: Sensitive Content</string> <string name="Pronouns">Pronouns</string> <string name="pronouns_support">Pronouns support</string> <string name="add_status">Add status</string> <string name="remove_status">Remove status</string> Loading Loading @@ -1197,6 +1198,7 @@ <string name="SET_MARKDOWN_SUPPORT" translatable="false">SET_MARKDOWN_SUPPORT</string> <string name="SET_TRUNCATE_LINKS" translatable="false">SET_TRUNCATE_LINKS</string> <string name="SET_UNDERLINE_CLICKABLE" translatable="false">SET_UNDERLINE_CLICKABLE</string> <string name="SET_PRONOUNS_SUPPORT" translatable="false">SET_PRONOUNS_SUPPORT</string> <string name="SET_TRUNCATE_LINKS_MAX" translatable="false">SET_TRUNCATE_LINKS_MAX</string> <string name="SET_HIDE_SINGLE_MEDIA_WITH_CARD" translatable="false">SET_HIDE_SINGLE_MEDIA_WITH_CARD</string> Loading