From ca1a73961e6f9d6444a081d438f6689d6841343c Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Thu, 4 Sep 2025 15:38:51 +0530 Subject: [PATCH 01/18] Make content warning text selectable --- app/src/main/res/layouts/mastodon/layout/drawer_status.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml index 86997f1c..c6545df2 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml @@ -257,6 +257,7 @@ android:layout_marginStart="48dp" android:layout_marginTop="6dp" android:layout_marginEnd="6dp" + android:textIsSelectable="true" tools:text="Warning: Lorem Ipsum below" /> Date: Sat, 6 Sep 2025 07:02:04 +0200 Subject: [PATCH 02/18] Translated using Weblate (French) Currently translated at 96.6% (1218 of 1260 strings) Translated using Weblate (Spanish) Currently translated at 94.9% (1196 of 1260 strings) Co-authored-by: Dream X Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/es/ Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/fr/ Translation: Fedilab/Strings --- app/src/main/res/values-es/strings.xml | 4 ++-- app/src/main/res/values-fr/strings.xml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 08af0388..9ecee81b 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -21,7 +21,7 @@ Etiquetas Guardar Instancia - Instancia: mastodon.social + P.ej.: mastodon.social Ahora funciona con la cuenta %1$s Agregar una cuenta El contenido del mensaje ha sido copiado al portapapeles @@ -1012,7 +1012,7 @@ Imagen de tarjeta Impulsos Cuando respondas las menciones serán añadidas al principio del mensaje - Mostrar contenido > + ]]> Mostrar auto respuestas Mostrar auto impulsos Mostrar mis mensajes diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1d3afdf5..dd8b42c9 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -21,7 +21,7 @@ Étiquettes Sauvegarder Instance - Instance : mastodon.social + Ex. : mastodon.social Utilisation du compte %1$s Ajouter un compte Le contenu du message a été copié dans le presse-papier @@ -127,7 +127,7 @@ Une erreur s’est produite lors de la sélection du média ! Supprimer le média ? Votre message est vide ! - Le message a été envoyé ! + Le message a été envoyé ! Contenu sensible ? Aucun brouillon ! Choisissez un compte @@ -626,7 +626,7 @@ Autres actions Types de notifications à afficher Confirmer les désabonnements - Le message a été envoyé ! + Le message a été envoyé ! Type de sondage : Durée du sondage : Nombre de comptes par chargement From a46914ef5eb5d6fb5232ce11f6926cf31921d8da Mon Sep 17 00:00:00 2001 From: Dream X Date: Sat, 6 Sep 2025 07:02:07 +0200 Subject: [PATCH 03/18] Translated using Weblate (Spanish) Currently translated at 10.0% (4 of 40 strings) Co-authored-by: Dream X Translate-URL: https://hosted.weblate.org/projects/fedilab/description/es/ Translation: Fedilab/description --- src/fdroid/fastlane/metadata/android/es/short_description.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fdroid/fastlane/metadata/android/es/short_description.txt b/src/fdroid/fastlane/metadata/android/es/short_description.txt index 22a81d07..7e5f78e5 100644 --- a/src/fdroid/fastlane/metadata/android/es/short_description.txt +++ b/src/fdroid/fastlane/metadata/android/es/short_description.txt @@ -1 +1 @@ -Fedilab: cliente de Android para acceder al Fediverso (microblogging, compartición de fotos y alojamiento de vídeo). +Fedilab es un cliente multifuncional de Android para acceder al Fediverso distribuido, que consiste en microblogueo, compartición de fotos y alojamiento de vídeos. From 60a2b39486d3d301c67c26d9f69975a125bac42b Mon Sep 17 00:00:00 2001 From: Milhax Date: Sat, 6 Sep 2025 07:02:10 +0200 Subject: [PATCH 04/18] Translated using Weblate (French) Currently translated at 10.0% (4 of 40 strings) Co-authored-by: Milhax Translate-URL: https://hosted.weblate.org/projects/fedilab/description/fr/ Translation: Fedilab/description --- .../metadata/android/fr/changelogs/500.txt | 14 ++++++++++++++ .../metadata/android/fr/changelogs/501.txt | 8 ++++++++ .../metadata/android/fr/changelogs/502.txt | 8 ++++++++ 3 files changed, 30 insertions(+) create mode 100644 src/fdroid/fastlane/metadata/android/fr/changelogs/500.txt create mode 100644 src/fdroid/fastlane/metadata/android/fr/changelogs/501.txt create mode 100644 src/fdroid/fastlane/metadata/android/fr/changelogs/502.txt diff --git a/src/fdroid/fastlane/metadata/android/fr/changelogs/500.txt b/src/fdroid/fastlane/metadata/android/fr/changelogs/500.txt new file mode 100644 index 00000000..a0c34072 --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/fr/changelogs/500.txt @@ -0,0 +1,14 @@ +Ajouté : +- Trois nouvelles icônes d'application (Pride, Rose, et Pirate) +- Conservation des positions dans les conversations distantes + +Réparé : +- Markdown: arrêt du parsing des tags et support du text barré +- Le curseur est plus visible lors de l'ecriture +- Les limites de caractères des instances modifiées ignorées +- Les tabs dans les profils +- Les tags n'étaient pas clickables dans certaines langues +- Bug avec les comptes ayant énormément de followers +- Crash avec plusieurs gifs dans le même message +- Comptage du maximum de caracteres +- Quelques crashs diff --git a/src/fdroid/fastlane/metadata/android/fr/changelogs/501.txt b/src/fdroid/fastlane/metadata/android/fr/changelogs/501.txt new file mode 100644 index 00000000..f3a2159d --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/fr/changelogs/501.txt @@ -0,0 +1,8 @@ +Ajouts : +- Support d'Android 14 +- Séparation automatiques des longs messages dans les threads (par défaut : DEMANDER) +- Les liens et medias sonts clickables lors de l'écriture + +Réparé : +- Évite l'erreur 429 avec NTFY +- Plusieurs crash sont réparés diff --git a/src/fdroid/fastlane/metadata/android/fr/changelogs/502.txt b/src/fdroid/fastlane/metadata/android/fr/changelogs/502.txt new file mode 100644 index 00000000..f3a2159d --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/fr/changelogs/502.txt @@ -0,0 +1,8 @@ +Ajouts : +- Support d'Android 14 +- Séparation automatiques des longs messages dans les threads (par défaut : DEMANDER) +- Les liens et medias sonts clickables lors de l'écriture + +Réparé : +- Évite l'erreur 429 avec NTFY +- Plusieurs crash sont réparés From 3d83d3fa312bee912ae9c7a2c7d3d5ad14bc7428 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Sun, 7 Sep 2025 00:05:43 +0530 Subject: [PATCH 05/18] Add quote-or-boost icon and quote policy icons --- .../mastodon/ui/drawer/ComposeAdapter.java | 12 +++++----- .../mastodon/ui/drawer/StatusAdapter.java | 9 ++++++-- .../mastodon/drawable/ic_quote_or_boost.xml | 13 +++++++++++ .../drawable/ic_quote_or_boost_active.xml | 13 +++++++++++ .../drawable/ic_quote_policy_followers.xml | 22 +++++++++++++++++++ .../drawable/ic_quote_policy_nobody.xml | 13 +++++++++++ .../drawable/ic_quote_policy_public.xml | 13 +++++++++++ .../mastodon/layout/activity_edit_profile.xml | 6 ++--- .../mastodon/layout/drawer_status_compose.xml | 8 +++---- 9 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost.xml create mode 100644 app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost_active.xml create mode 100644 app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_followers.xml create mode 100644 app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_nobody.xml create mode 100644 app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_public.xml 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 3017c6b6..ff1731a9 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 @@ -1673,15 +1673,15 @@ public class ComposeAdapter extends RecyclerView.Adapter { - holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_compose_visibility_public); + holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_public); statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.PUBLIC.name(); } case "followers" -> { - holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_people_alt_24); + holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_followers); statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.FOLLOWERS.name(); } case "nobody" -> { - holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_block_24); + holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_nobody); statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.NOBODY.name(); } } @@ -1730,17 +1730,17 @@ public class ComposeAdapter extends RecyclerView.Adapter { holder.binding.quoteApprovalPolicyPanel.setVisibility(View.GONE); - holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_block_24); + holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_nobody); statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.NOBODY.name(); }); holder.binding.buttonQuoteApprovalPolicyFollowersOnly.setOnClickListener(v -> { holder.binding.quoteApprovalPolicyPanel.setVisibility(View.GONE); - holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_people_alt_24); + holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_followers); statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.FOLLOWERS.name(); }); holder.binding.buttonQuoteApprovalPolicyAnyone.setOnClickListener(v -> { holder.binding.quoteApprovalPolicyPanel.setVisibility(View.GONE); - holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_compose_visibility_public); + holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_public); statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.PUBLIC.name(); }); 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 e45bab6c..e42c4cc0 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 @@ -969,8 +969,13 @@ public class StatusAdapter extends RecyclerView.Adapter holder.binding.actionButtonFavorite.setInactiveImage(R.drawable.ic_round_star_border_24); holder.binding.actionButtonBookmark.setActiveImage(R.drawable.ic_round_bookmark_24); holder.binding.actionButtonBookmark.setInactiveImage(R.drawable.ic_round_bookmark_border_24); - holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_round_repeat_active_24); - holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_round_repeat_24); + if (displayQuote) { + holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_quote_or_boost_active); + holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_quote_or_boost); + } else { + holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_round_repeat_active_24); + holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_round_repeat_24); + } holder.binding.actionButtonFavorite.setActiveImageTint(R.color.marked_icon); holder.binding.actionButtonBoost.setActiveImageTint(R.color.boost_icon); holder.binding.actionButtonBookmark.setActiveImageTint(R.color.marked_icon); diff --git a/app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost.xml b/app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost.xml new file mode 100644 index 00000000..0659305a --- /dev/null +++ b/app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost_active.xml b/app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost_active.xml new file mode 100644 index 00000000..07539d8d --- /dev/null +++ b/app/src/main/res/drawables/mastodon/drawable/ic_quote_or_boost_active.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_followers.xml b/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_followers.xml new file mode 100644 index 00000000..530a95c8 --- /dev/null +++ b/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_followers.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_nobody.xml b/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_nobody.xml new file mode 100644 index 00000000..62d82dfd --- /dev/null +++ b/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_nobody.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_public.xml b/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_public.xml new file mode 100644 index 00000000..31cea45e --- /dev/null +++ b/app/src/main/res/drawables/mastodon/drawable/ic_quote_policy_public.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/layouts/mastodon/layout/activity_edit_profile.xml b/app/src/main/res/layouts/mastodon/layout/activity_edit_profile.xml index 3fa841c2..1a52d0bf 100644 --- a/app/src/main/res/layouts/mastodon/layout/activity_edit_profile.xml +++ b/app/src/main/res/layouts/mastodon/layout/activity_edit_profile.xml @@ -395,7 +395,7 @@ android:layout_height="wrap_content" android:text="@string/no_one" android:textAlignment="textStart" - app:icon="@drawable/ic_baseline_block_24" /> + app:icon="@drawable/ic_quote_policy_nobody" /> + app:icon="@drawable/ic_quote_policy_followers" /> + app:icon="@drawable/ic_quote_policy_public" /> diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml b/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml index 2f58cab9..55bd35ba 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_status_compose.xml @@ -239,7 +239,7 @@ android:contentDescription="@string/change_visibility" android:insetLeft="0dp" android:insetRight="0dp" - app:icon="@drawable/ic_baseline_people_alt_24" /> + app:icon="@drawable/ic_quote_policy_followers" /> @@ -475,7 +475,7 @@ android:minHeight="36dp" android:text="@string/no_one" android:textAlignment="textStart" - app:icon="@drawable/ic_baseline_block_24" /> + app:icon="@drawable/ic_quote_policy_nobody" /> + app:icon="@drawable/ic_quote_policy_followers" /> + app:icon="@drawable/ic_quote_policy_public" /> From 18e666649e368753701f553ab9c14db08b53ed96 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Tue, 9 Sep 2025 14:11:40 +0530 Subject: [PATCH 06/18] Disable HTML parsing in display names (fix #1291) --- .../android/mastodon/client/entities/api/Account.java | 2 +- .../fedilab/android/mastodon/helper/SpannableHelper.java | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java index c93d3927..c1296dc8 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java +++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java @@ -95,7 +95,7 @@ public class Account implements Serializable { if (display_name == null || display_name.isEmpty()) { display_name = username; } - return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference, null, true, false); + return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference, null, false, false); } public synchronized Spannable getSpanDisplayNameEmoji(Activity activity, WeakReference viewWeakReference) { diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java index 172b847c..3a5a41ec 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java @@ -1011,14 +1011,11 @@ public class SpannableHelper { public static Spannable convertEmoji(Activity activity, String text, Account account, WeakReference viewWeakReference) { - SpannableString initialContent; if (text == null) { return null; } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) - initialContent = new SpannableString(Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY)); - else - initialContent = new SpannableString(Html.fromHtml(text)); + + SpannableString initialContent = new SpannableString(text); SpannableStringBuilder content = new SpannableStringBuilder(initialContent); List emojiList = account.emojis; From 80d7443edd8e46db37abe181cb2fe17598e45c81 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Tue, 9 Sep 2025 22:48:47 +0530 Subject: [PATCH 07/18] Improve translate button preference (fix #667) --- .../app/fedilab/android/BaseMainActivity.java | 13 +++++++++++++ .../mastodon/ui/drawer/StatusAdapter.java | 11 +++++++---- .../settings/FragmentTimelinesSettings.java | 16 ++++++++-------- app/src/main/res/values/strings.xml | 12 ++++++++++++ app/src/main/res/xml/pref_timelines.xml | 13 +++++++------ 5 files changed, 47 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 690a3059..e70df640 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -1132,6 +1132,19 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } String software = sharedpreferences.getString(PREF_USER_SOFTWARE, null); + if (sharedpreferences.getString(getString(R.string.SET_TRANSLATE_BUTTON) + currentUserID + currentInstance, null) == null) { + boolean oldTranslateButtonPrefValue = + sharedpreferences.getBoolean(getString(R.string.SET_DISPLAY_TRANSLATE) + currentUserID + currentInstance, false); + String[] translateButtonEntryValues = getResources().getStringArray(R.array.set_translate_button_entry_values); + String newTranslateButtonValue; + if (oldTranslateButtonPrefValue) + newTranslateButtonValue = translateButtonEntryValues[1]; + else + newTranslateButtonValue = translateButtonEntryValues[2]; + sharedpreferences.edit() + .putString(getString(R.string.SET_TRANSLATE_BUTTON) + currentUserID + currentInstance, newTranslateButtonValue) + .apply(); + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { ActivityResultLauncher permissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> { 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 e42c4cc0..30ab9ba1 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 @@ -579,7 +579,8 @@ public class StatusAdapter extends RecyclerView.Adapter boolean fullAttachement = sharedpreferences.getBoolean(context.getString(R.string.SET_FULL_PREVIEW), false); boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false); boolean displayBookmark = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_BOOKMARK) + MainActivity.currentUserID + MainActivity.currentInstance, true); - boolean displayTranslate = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_TRANSLATE) + MainActivity.currentUserID + MainActivity.currentInstance, false); + String translateButton = sharedpreferences.getString(context.getString(R.string.SET_TRANSLATE_BUTTON) + MainActivity.currentUserID + MainActivity.currentInstance, "auto"); + String[] translateButtonEntryValues = context.getResources().getStringArray(R.array.set_translate_button_entry_values); boolean displayCounters = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_COUNTER_FAV_BOOST), false); boolean removeLeftMargin = sharedpreferences.getBoolean(context.getString(R.string.SET_REMOVE_LEFT_MARGIN), false); boolean extraFeatures = sharedpreferences.getBoolean(context.getString(R.string.SET_EXTAND_EXTRA_FEATURES) + MainActivity.currentUserID + MainActivity.currentInstance, false); @@ -1076,13 +1077,15 @@ public class StatusAdapter extends RecyclerView.Adapter } else { holder.binding.actionButtonBookmark.setVisibility(View.GONE); } - if (displayTranslate) { - if (statusToDeal.language != null && statusToDeal.language.trim().length() > 0 && statusToDeal.language.equalsIgnoreCase(MyTransL.getLocale())) { + if (translateButton.equals(translateButtonEntryValues[0])) { // Show + holder.binding.actionButtonTranslate.setVisibility(View.VISIBLE); + } else if (translateButton.equals(translateButtonEntryValues[1])) { // Auto + if (statusToDeal.language != null && !statusToDeal.language.trim().isEmpty() && statusToDeal.language.equalsIgnoreCase(MyTransL.getLocale())) { holder.binding.actionButtonTranslate.setVisibility(View.GONE); } else { holder.binding.actionButtonTranslate.setVisibility(View.VISIBLE); } - } else { + } else if (translateButton.equals(translateButtonEntryValues[2])) { // Hide holder.binding.actionButtonTranslate.setVisibility(View.GONE); } //--- ACTIONS --- diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java index 33445a32..0edc65a8 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentTimelinesSettings.java @@ -88,10 +88,10 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen boolean checked = sharedpreferences.getBoolean(getString(R.string.SET_DISPLAY_BOOKMARK) + MainActivity.currentUserID + MainActivity.currentInstance, true); SET_DISPLAY_BOOKMARK.setChecked(checked); } - SwitchPreferenceCompat SET_DISPLAY_TRANSLATE = findPreference(getString(R.string.SET_DISPLAY_TRANSLATE)); - if (SET_DISPLAY_TRANSLATE != null) { - boolean checked = sharedpreferences.getBoolean(getString(R.string.SET_DISPLAY_TRANSLATE) + MainActivity.currentUserID + MainActivity.currentInstance, false); - SET_DISPLAY_TRANSLATE.setChecked(checked); + ListPreference SET_TRANSLATE_BUTTON = findPreference(getString(R.string.SET_TRANSLATE_BUTTON)); + if (SET_TRANSLATE_BUTTON != null) { + String value = sharedpreferences.getString(getString(R.string.SET_TRANSLATE_BUTTON) + MainActivity.currentUserID + MainActivity.currentInstance, null); + SET_TRANSLATE_BUTTON.setValue(value); } SwitchPreferenceCompat SET_DISPLAY_QUOTE = findPreference(getString(R.string.SET_DISPLAY_QUOTE)); @@ -125,10 +125,10 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen editor.putBoolean(getString(R.string.SET_DISPLAY_BOOKMARK) + MainActivity.currentUserID + MainActivity.currentInstance, SET_DISPLAY_BOOKMARK.isChecked()); } } - if (key.compareToIgnoreCase(getString(R.string.SET_DISPLAY_TRANSLATE)) == 0) { - SwitchPreferenceCompat SET_DISPLAY_TRANSLATE = findPreference(getString(R.string.SET_DISPLAY_TRANSLATE)); - if (SET_DISPLAY_TRANSLATE != null) { - editor.putBoolean(getString(R.string.SET_DISPLAY_TRANSLATE) + MainActivity.currentUserID + MainActivity.currentInstance, SET_DISPLAY_TRANSLATE.isChecked()); + if (key.compareToIgnoreCase(getString(R.string.SET_TRANSLATE_BUTTON)) == 0) { + ListPreference SET_TRANSLATE_BUTTON = findPreference(getString(R.string.SET_TRANSLATE_BUTTON)); + if (SET_TRANSLATE_BUTTON != null) { + editor.putString(getString(R.string.SET_TRANSLATE_BUTTON) + MainActivity.currentUserID + MainActivity.currentInstance, SET_TRANSLATE_BUTTON.getValue()); } } if (key.compareToIgnoreCase(getString(R.string.SET_DISPLAY_QUOTE)) == 0) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 09547944..74666160 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -772,6 +772,16 @@ No accounts found for this list! Scheduled + + Show + Auto (depending on post language) + Hide + + + show + auto + hide + Ask @@ -1262,6 +1272,7 @@ SET_DISPLAY_REACTIONS SET_DISPLAY_TRANSLATE + SET_TRANSLATE_BUTTON SET_POST_FORMAT SET_COMPOSE_LOCAL_ONLY @@ -1370,6 +1381,7 @@ Poll duration: Always display bookmark button Always display translate button + Translate button Display Bottom menu Top bar menu diff --git a/app/src/main/res/xml/pref_timelines.xml b/app/src/main/res/xml/pref_timelines.xml index cd3e4e10..161cba22 100644 --- a/app/src/main/res/xml/pref_timelines.xml +++ b/app/src/main/res/xml/pref_timelines.xml @@ -142,12 +142,13 @@ app:key="@string/SET_PIXELFED_PRESENTATION" app:singleLineTitle="false" app:title="@string/set_pixelfed_presentation" /> - + Date: Wed, 10 Sep 2025 08:03:32 +0200 Subject: [PATCH 08/18] Translated using Weblate (Galician) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 99.7% (1259 of 1262 strings) Co-authored-by: josé m Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/gl/ Translation: Fedilab/Strings --- app/src/main/res/values-gl/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 57b7ac29..45aba6d9 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -1125,4 +1125,5 @@ Quen pode citar Ninguén Calquera + Botón para traducir From 695fd7b3742cb538b029e333d6e50348a611c4ac Mon Sep 17 00:00:00 2001 From: Liner Seven Date: Wed, 10 Sep 2025 08:03:35 +0200 Subject: [PATCH 09/18] Translated using Weblate (Japanese) Currently translated at 100.0% (1262 of 1262 strings) Co-authored-by: Liner Seven Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/ja/ Translation: Fedilab/Strings --- app/src/main/res/values-ja/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index b502e6ab..e6bac335 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1130,4 +1130,5 @@ 見積可能者 誰も 誰か + 翻訳ボタン From 274d3f523df2910a53b80cf301bc94fde2f70a91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=93=D0=BE=D1=80?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D1=96=D1=87?= Date: Wed, 10 Sep 2025 08:03:37 +0200 Subject: [PATCH 10/18] Translated using Weblate (Ukrainian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (1262 of 1262 strings) Co-authored-by: Максим Горпиніч Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/uk/ Translation: Fedilab/Strings --- app/src/main/res/values-uk/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 51d80073..7b7544a0 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -1138,4 +1138,5 @@ Ніхто Будь-хто Вибір за замовчуванням для тих, хто може котирувати + Кнопка перекладу From 3c5605d8413479eb101cc878e29bffd1a19cbd46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=8E=8B=E5=8F=AB=E6=88=91=E6=9D=A5=E5=B7=A1?= =?UTF-8?q?=E5=B1=B1?= Date: Wed, 10 Sep 2025 08:03:39 +0200 Subject: [PATCH 11/18] Translated using Weblate (Chinese (Simplified Han script)) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 99.8% (1260 of 1262 strings) Co-authored-by: 大王叫我来巡山 Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/zh_Hans/ Translation: Fedilab/Strings --- app/src/main/res/values-zh-rCN/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 192cbc12..1bf8093f 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1128,4 +1128,5 @@ 无人 任何人 谁可以引用的默认选择 + 翻译按钮 From bba98eeaafc62da7d014a485f9c588644a7f77e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Wed, 10 Sep 2025 08:03:41 +0200 Subject: [PATCH 12/18] Translated using Weblate (Estonian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 30.7% (388 of 1262 strings) Co-authored-by: Priit Jõerüüt Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/et/ Translation: Fedilab/Strings --- app/src/main/res/values-et/strings.xml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index c6d80245..266a5574 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -21,7 +21,7 @@ Sildid Salvesta Teenuse server - Koduserver: mastodon.social + Näiteks: mastodon.social Vastused Kasutajanimi Kavandid @@ -155,4 +155,28 @@ Sõnum eemaldati sinu järjehoidjate seast! Sõnumite arv ühel laadimiskorral Otsesõnum + Peida meedium + Näita meediumi + Vali kasutajakonto + Vali mõned kasutajakontod + Kas kustutad kavandi? + Kirjelda seda nägemispuudega inimeste jaoks + Kirjeldust pole saadaval! + mainis sind + andis sinu olekule hoogu + lisas sinu oleku lemmikuks + hakkas sind jälgima + küsis, kas ta võib sind jälgida + Kas kustutad kõik teavitused? + Kõik teavitused on kustutatud! + Jälgijad + Kliendi tunnust pole võimalik tuvastada! + See kasutajakonto on blokeeritud! + See kasutajakonto enam pole blokeeritud! + See kasutajakonto on summutatud! + See kasutajakonto enam pole summutatud! + See kasutajakonto on nüüd jälgimisel! + See kasutajakonto enam pole jälgimisel! + Vaat, kus lops! Tekkis üks viga! + Internetiühendus puudub! From d0b5a9ae3390490c7abca66aa376c37bc9a563df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Wed, 10 Sep 2025 09:02:14 +0200 Subject: [PATCH 13/18] Translated using Weblate (Estonian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 7.5% (3 of 40 strings) Co-authored-by: Priit Jõerüüt Translate-URL: https://hosted.weblate.org/projects/fedilab/description/et/ Translation: Fedilab/description --- .../metadata/android/et/full_description.txt | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/fdroid/fastlane/metadata/android/et/full_description.txt diff --git a/src/fdroid/fastlane/metadata/android/et/full_description.txt b/src/fdroid/fastlane/metadata/android/et/full_description.txt new file mode 100644 index 00000000..ab55f0c2 --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/et/full_description.txt @@ -0,0 +1,23 @@ +Rakendus toetab järgmisi võrgustikke: +- Mastodon, Peertube, Pixelfed, Misskey, GNU Social, Pleroma, Friendica + +Rakenduse mõned olulised funktsionaalsused: +- Jutulõngade koostamine +- Mitme kasutajakonto tugi +- Sõnumite saatmise ajastamine nutiseadme poolel +- Kaugserverite jälgimine ja nendega suhestumine +- Kasutajakontode ülesed tegevused pika vajutusega +- Tõlkimise võimalus +- Mitu valikut andmete automaatseks uuenduseks + - Tõuketeavitused UnifiedPushi abil (sealhulgas FDroidi versioonis ka ntfy) + - Ühenduse säilitamine reaalajas teavituste jaoks + - Viivitusega teavitused (ühenduse loomine iga 30 sekundi järel) +- Youtube'i ja Twitteri linkide asendamine vastavalt Invidiouse ja Nitteri serveri linkidega +- Kujunduste kohandamine, import, eksport ja kirjeldamine +- Rakenduse andmebaasi eksport ja import +- Emojide valija ja kohandatud emojid +- Mitu erinevat käivitusikooni +- Mastodoni sõnumite detailse filtreerimise võimalused +- mastoarti sildiga kunsti ajajoone kuvamine +- Mastodoni sõnumite eksport +- Jagatavate võrguaadresside muutmine jagamiseks teiste seadmetega From 3751a9c8c789c1c65e77c822b2d95be3e53b4d1c Mon Sep 17 00:00:00 2001 From: Joan Pujolar Date: Thu, 11 Sep 2025 06:02:01 +0200 Subject: [PATCH 14/18] Translated using Weblate (Catalan) Currently translated at 100.0% (1262 of 1262 strings) Co-authored-by: Joan Pujolar Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/ca/ Translation: Fedilab/Strings --- app/src/main/res/values-ca/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 960b77f7..2a511430 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -1129,4 +1129,5 @@ Qui pot citar Ningú Tothom + Botó de traducció From 7f57b0ad3602facf25553f0bf82a470a2f34cfe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Jel=C3=ADnek?= Date: Thu, 11 Sep 2025 21:20:02 +0200 Subject: [PATCH 15/18] Translated using Weblate (Czech) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (1262 of 1262 strings) Co-authored-by: Lukáš Jelínek Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/cs/ Translation: Fedilab/Strings --- app/src/main/res/values-cs/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index b15c83d1..19a979ad 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -21,7 +21,7 @@ Tagy Uložit Instance - Instance: mastodon.social + Např.: mastodon.social Nyní používáte účet %1$s Přidat účet Obsah zprávy byl zkopírován do schránky @@ -1149,4 +1149,6 @@ Při odpovídání na boost bude v odpovědi zmíněna osoba, která boostovala původní zprávu Zvýraznit spodní hashtagy …a dalších %d + Výchozí výběr pro toho, kdo může citovat + Tlačítko překladu From f270ff808561028fcf43a48d5fd493e267d1577c Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Thu, 18 Sep 2025 11:52:43 +0530 Subject: [PATCH 16/18] Add accessibility actions to move timelines up/down in Manage timelines page --- .../mastodon/ui/drawer/ReorderBottomMenuAdapter.java | 12 +++++++++++- .../mastodon/ui/drawer/ReorderTabAdapter.java | 11 +++++++++++ app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java index 5c1278c6..5f7e54b2 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java @@ -21,6 +21,7 @@ import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.ViewGroup; +import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; import org.jetbrains.annotations.NotNull; @@ -126,7 +127,16 @@ public class ReorderBottomMenuAdapter extends RecyclerView.Adapter { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition > 0) onItemMove(bindingAdapterPosition, bindingAdapterPosition - 1); + return true; + }); + ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_down), (view, arguments) -> { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition < bottomMenu.bottom_menu.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1); + return true; + }); } @Override diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java index 51bee2e1..e6f99cfc 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java @@ -23,6 +23,7 @@ import android.view.View; import android.view.ViewGroup; import androidx.appcompat.app.AlertDialog; +import androidx.core.view.ViewCompat; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelStoreOwner; import androidx.recyclerview.widget.RecyclerView; @@ -191,6 +192,16 @@ public class ReorderTabAdapter extends RecyclerView.Adapter { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition > 0) onItemMove(bindingAdapterPosition, bindingAdapterPosition - 1); + return true; + }); + ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_down), (view, arguments) -> { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition < pinned.pinnedTimelines.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1); + return true; + }); PinnedTimeline item = pinned.pinnedTimelines.get(position); if (item.type == Timeline.TimeLineEnum.TAG || item.type == Timeline.TimeLineEnum.REMOTE || item.type == Timeline.TimeLineEnum.LIST) { holder.binding.delete.setVisibility(View.VISIBLE); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 74666160..ef07ef29 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -483,6 +483,8 @@ List permanently deleted Followed instance removed Pinned tag removed + Move timeline up + Move timeline down Undo Main timelines can only be hidden! Always mark media as sensitive From 15cc116fe1cfd0dc8d15d98104408016e2a126db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=93=D0=BE=D1=80?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D1=96=D1=87?= Date: Thu, 18 Sep 2025 22:02:08 +0200 Subject: [PATCH 17/18] Translated using Weblate (Ukrainian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (1264 of 1264 strings) Co-authored-by: Максим Горпиніч Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/uk/ Translation: Fedilab/Strings --- app/src/main/res/values-uk/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 7b7544a0..0cd4bcd2 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -1139,4 +1139,6 @@ Будь-хто Вибір за замовчуванням для тих, хто може котирувати Кнопка перекладу + Перемістити часову шкалу вгору + Перемістити часову шкалу вниз From c61ea8fd5836f82270cb32f726263c5d10f9242b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=8E=8B=E5=8F=AB=E6=88=91=E6=9D=A5=E5=B7=A1?= =?UTF-8?q?=E5=B1=B1?= Date: Thu, 18 Sep 2025 22:02:11 +0200 Subject: [PATCH 18/18] Translated using Weblate (Chinese (Simplified Han script)) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 99.8% (1262 of 1264 strings) Co-authored-by: 大王叫我来巡山 Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/zh_Hans/ Translation: Fedilab/Strings --- app/src/main/res/values-zh-rCN/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 1bf8093f..7686fbab 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1129,4 +1129,6 @@ 任何人 谁可以引用的默认选择 翻译按钮 + 上移时间轴 + 下移时间轴