From 6b06422fa18f2474def29437864fa57e2b63ff3c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 23:12:45 +0000 Subject: [PATCH] Use internationalized string for accessibility link label - Added accessibility_link_action string resource - Updated LinkAccessibilityDelegate to accept Context and use resource - Updated ConversationItem to pass context to delegate Co-authored-by: adbenitez <24558636+adbenitez@users.noreply.github.com> --- .../org/thoughtcrime/securesms/ConversationItem.java | 2 +- .../securesms/util/LinkAccessibilityDelegate.java | 11 ++++++++++- src/main/res/values/strings.xml | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationItem.java b/src/main/java/org/thoughtcrime/securesms/ConversationItem.java index 7e6ef2f69..a228ad1db 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationItem.java @@ -432,7 +432,7 @@ public class ConversationItem extends BaseConversationItem // Set accessibility delegate for TalkBack to expose links as custom actions if (Util.isTouchExplorationEnabled(context) && batchSelected.isEmpty()) { - bodyText.setAccessibilityDelegate(new LinkAccessibilityDelegate()); + bodyText.setAccessibilityDelegate(new LinkAccessibilityDelegate(context)); } else { bodyText.setAccessibilityDelegate(null); } diff --git a/src/main/java/org/thoughtcrime/securesms/util/LinkAccessibilityDelegate.java b/src/main/java/org/thoughtcrime/securesms/util/LinkAccessibilityDelegate.java index 8844bceea..2a6d135a3 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/LinkAccessibilityDelegate.java +++ b/src/main/java/org/thoughtcrime/securesms/util/LinkAccessibilityDelegate.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.util; +import android.content.Context; import android.os.Bundle; import android.text.Spanned; import android.view.View; @@ -8,6 +9,8 @@ import android.widget.TextView; import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; +import org.thoughtcrime.securesms.R; + import java.util.HashMap; import java.util.Map; @@ -22,6 +25,12 @@ public class LinkAccessibilityDelegate extends View.AccessibilityDelegate { // Map to store span references for each action ID private final Map actionSpanMap = new HashMap<>(); + + private final Context context; + + public LinkAccessibilityDelegate(Context context) { + this.context = context; + } @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { @@ -52,7 +61,7 @@ public class LinkAccessibilityDelegate extends View.AccessibilityDelegate { if (start >= 0 && end > start && end <= spanned.length()) { String linkText = spanned.subSequence(start, end).toString(); - String label = "Open link: " + linkText; + String label = context.getString(R.string.accessibility_link_action, linkText); // Create a unique action ID for each link final int actionId = LINK_ACTION_BASE_ID + i; diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index c12efdcab..6570db937 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -1179,6 +1179,9 @@ Tap here to receive messages while Delta Chat is in the background. You already allowed Delta Chat to receive messages in the background.\n\nIf messages still do not arrive in background, please also check your system settings. + + Open link: %1$s + What\'s new?\n\n💯 End-to-end encryption is reliable and forever now. Padlocks 🔒 are gone!\n\n✉️ Classic email without end-to-end encryption is marked with a letter symbol\n\n😻 New enhanced profile screen for all your contacts\n\n🔲 New button for quick access to apps used in a chat\n\n❤️ Please donate to help us remain independent and continue to bring improvements: %1$s