diff --git a/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java b/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java
index 9994dbed0..c49d2bdd6 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java
@@ -172,7 +172,7 @@ public class HelpFragment extends LoggingFragment {
}
return SupportEmailUtil.generateSupportEmailBody(requireContext(),
- getString(R.string.HelpFragment__signal_android_support_request),
+ R.string.HelpFragment__signal_android_support_request,
problem.getText().toString() + "\n\n",
suffix.toString());
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java
index 424cc9776..401f0da81 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java
@@ -198,7 +198,7 @@ public class PinRestoreEntryFragment extends LoggingFragment {
}))
.setNeutralButton(R.string.PinRestoreEntryFragment_contact_support, (dialog, which) -> {
String body = SupportEmailUtil.generateSupportEmailBody(requireContext(),
- getString(R.string.PinRestoreEntryFragment_signal_registration_need_help_with_pin),
+ R.string.PinRestoreEntryFragment_signal_registration_need_help_with_pin,
null,
null);
CommunicationActions.openEmail(requireContext(),
diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterCodeFragment.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterCodeFragment.java
index f4ee4c427..73edfce0c 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterCodeFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterCodeFragment.java
@@ -335,7 +335,7 @@ public final class EnterCodeFragment extends BaseRegistrationFragment
private void sendEmailToSupport() {
String body = SupportEmailUtil.generateSupportEmailBody(requireContext(),
- getString(R.string.RegistrationActivity_code_support_subject),
+ R.string.RegistrationActivity_code_support_subject,
null,
null);
CommunicationActions.openEmail(requireContext(),
diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SupportEmailUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/SupportEmailUtil.java
index abc7e3172..bb94e384e 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/util/SupportEmailUtil.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/util/SupportEmailUtil.java
@@ -1,11 +1,14 @@
package org.thoughtcrime.securesms.util;
import android.content.Context;
+import android.content.res.Resources;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import org.signal.core.util.EnglishResourceUtil;
import org.thoughtcrime.securesms.BuildConfig;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
@@ -24,7 +27,7 @@ public final class SupportEmailUtil {
* Generates a support email body with system info near the top.
*/
public static @NonNull String generateSupportEmailBody(@NonNull Context context,
- @NonNull String subject,
+ @StringRes int subject,
@Nullable String prefix,
@Nullable String suffix)
{
@@ -33,10 +36,12 @@ public final class SupportEmailUtil {
return String.format("%s\n%s\n%s", prefix, buildSystemInfo(context, subject), suffix);
}
- private static @NonNull String buildSystemInfo(@NonNull Context context, @NonNull String subject) {
+ private static @NonNull String buildSystemInfo(@NonNull Context context, @StringRes int subject) {
+ Resources englishResources = EnglishResourceUtil.getEnglishResources(context);
+
return "--- " + context.getString(R.string.HelpFragment__support_info) + " ---" +
"\n" +
- context.getString(R.string.SupportEmailUtil_subject) + " " + subject +
+ context.getString(R.string.SupportEmailUtil_filter) + " " + englishResources.getString(subject) +
"\n" +
context.getString(R.string.SupportEmailUtil_device_info) + " " + getDeviceInfo() +
"\n" +
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a727d72e2..500122658 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1641,7 +1641,7 @@
support@signal.org
- Subject:
+ Filter:
Signal Android Support Request
Device info:
Android version:
diff --git a/core-util/src/main/java/org/signal/core/util/EnglishResourceUtil.java b/core-util/src/main/java/org/signal/core/util/EnglishResourceUtil.java
new file mode 100644
index 000000000..7829beefb
--- /dev/null
+++ b/core-util/src/main/java/org/signal/core/util/EnglishResourceUtil.java
@@ -0,0 +1,29 @@
+package org.signal.core.util;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+
+import java.util.Locale;
+
+/**
+ * Gives access to English strings.
+ */
+public final class EnglishResourceUtil {
+
+ private EnglishResourceUtil() {
+ }
+
+ public static Resources getEnglishResources(@NonNull Context context) {
+ Configuration configurationLocal = context.getResources().getConfiguration();
+
+ Configuration configurationEn = new Configuration(configurationLocal);
+ configurationEn.setLocale(Locale.ENGLISH);
+
+ return context.createConfigurationContext(configurationEn)
+ .getResources();
+ }
+}
diff --git a/core-util/src/main/java/org/signal/core/util/TranslationDetection.java b/core-util/src/main/java/org/signal/core/util/TranslationDetection.java
index 709e6a73f..1d3920283 100644
--- a/core-util/src/main/java/org/signal/core/util/TranslationDetection.java
+++ b/core-util/src/main/java/org/signal/core/util/TranslationDetection.java
@@ -24,11 +24,7 @@ public final class TranslationDetection {
public TranslationDetection(@NonNull Context context) {
this.resourcesLocal = context.getResources();
this.configurationLocal = resourcesLocal.getConfiguration();
-
- Configuration configurationEn = new Configuration(configurationLocal);
- configurationEn.setLocale(Locale.ENGLISH);
-
- this.resourcesEn = context.createConfigurationContext(configurationEn).getResources();
+ this.resourcesEn = EnglishResourceUtil.getEnglishResources(context);
}
/**