diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 9f4ce4aa63..a17fddca7d 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1505,7 +1505,7 @@ class Core { Helper.writeText(file, body); String text = HtmlHelper.getFullText(body); message.preview = HtmlHelper.getPreview(text); - message.language = HtmlHelper.getLanguage(context, text); + message.language = HtmlHelper.getLanguage(context, message.subject, text); db.message().setMessageContent(message.id, true, message.language, @@ -2217,7 +2217,7 @@ class Core { Helper.writeText(file, body); String text = HtmlHelper.getFullText(body); message.preview = HtmlHelper.getPreview(text); - message.language = HtmlHelper.getLanguage(context, text); + message.language = HtmlHelper.getLanguage(context, message.subject, text); db.message().setMessageContent(message.id, true, message.language, @@ -3021,7 +3021,7 @@ class Core { Helper.writeText(file, body); String text = HtmlHelper.getFullText(body); message.preview = HtmlHelper.getPreview(text); - message.language = HtmlHelper.getLanguage(context, text); + message.language = HtmlHelper.getLanguage(context, message.subject, text); db.message().setMessageContent(message.id, true, message.language, @@ -3460,7 +3460,7 @@ class Core { Helper.writeText(file, body); String text = HtmlHelper.getFullText(body); message.preview = HtmlHelper.getPreview(text); - message.language = HtmlHelper.getLanguage(context, text); + message.language = HtmlHelper.getLanguage(context, message.subject, text); db.message().setMessageContent(message.id, true, message.language, diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index 6fe1049bc6..cf88143091 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -613,7 +613,7 @@ public class EntityRule { Helper.writeText(file, body); String text = HtmlHelper.getFullText(body); reply.preview = HtmlHelper.getPreview(text); - reply.language = HtmlHelper.getLanguage(context, text); + reply.language = HtmlHelper.getLanguage(context, reply.subject, text); db.message().setMessageContent(reply.id, true, reply.language, diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 77d9d88c62..139bd90ef1 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -3928,7 +3928,7 @@ public class FragmentCompose extends FragmentBase { String text = HtmlHelper.getFullText(html); data.draft.preview = HtmlHelper.getPreview(text); - data.draft.language = HtmlHelper.getLanguage(context, text); + data.draft.language = HtmlHelper.getLanguage(context, data.draft.subject, text); db.message().setMessageContent(data.draft.id, true, data.draft.language, @@ -4084,7 +4084,7 @@ public class FragmentCompose extends FragmentBase { String text = HtmlHelper.getFullText(html); data.draft.preview = HtmlHelper.getPreview(text); - data.draft.language = HtmlHelper.getLanguage(context, text); + data.draft.language = HtmlHelper.getLanguage(context, data.draft.subject, text); db.message().setMessageContent(data.draft.id, true, data.draft.language, @@ -4603,7 +4603,7 @@ public class FragmentCompose extends FragmentBase { String full = HtmlHelper.getFullText(body); draft.preview = HtmlHelper.getPreview(full); - draft.language = HtmlHelper.getLanguage(context, full); + draft.language = HtmlHelper.getLanguage(context, draft.subject, full); db.message().setMessageContent(draft.id, true, draft.language, diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index e4180e5003..ff8d3dfbcc 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -1708,14 +1708,22 @@ public class HtmlHelper { Log.d(document.head().html()); } - static String getLanguage(Context context, String text) { + static String getLanguage(Context context, String subject, String text) { try { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean language_detection = prefs.getBoolean("language_detection", false); if (!language_detection) return null; - Locale locale = TextHelper.detectLanguage(context, text); + StringBuilder sb = new StringBuilder(); + if (!TextUtils.isEmpty(subject)) + sb.append(subject).append('\n'); + if (!TextUtils.isEmpty(text)) + sb.append(text); + if (sb.length() == 0) + return null; + + Locale locale = TextHelper.detectLanguage(context, sb.toString()); return (locale == null ? null : locale.getLanguage()); } catch (Throwable ex) { Log.e(ex); diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index 1d1078ed4d..9851a69d0e 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -539,7 +539,7 @@ public class ServiceSend extends ServiceBase implements SharedPreferences.OnShar body = body.replace("
" + body.replaceAll("\\r?\\n", "
") + "