mirror of https://github.com/M66B/FairEmail.git
Recognize language of subject
This commit is contained in:
parent
7d017095cc
commit
497c6bc221
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -539,7 +539,7 @@ public class ServiceSend extends ServiceBase implements SharedPreferences.OnShar
|
|||
body = body.replace("<div x-plain=\"true\">", "<div>");
|
||||
|
||||
String text = HtmlHelper.getFullText(body);
|
||||
String language = HtmlHelper.getLanguage(this, text);
|
||||
String language = HtmlHelper.getLanguage(this, message.subject, text);
|
||||
String preview = HtmlHelper.getPreview(text);
|
||||
|
||||
try {
|
||||
|
|
|
@ -283,37 +283,38 @@ public class ServiceUI extends IntentService {
|
|||
boolean prefix_once = prefs.getBoolean("prefix_once", true);
|
||||
boolean plain_only = prefs.getBoolean("plain_only", false);
|
||||
|
||||
DB db = DB.getInstance(this);
|
||||
|
||||
EntityMessage ref = db.message().getMessage(id);
|
||||
if (ref == null)
|
||||
throw new IllegalArgumentException("message not found");
|
||||
|
||||
EntityIdentity identity = db.identity().getIdentity(ref.identity);
|
||||
if (identity == null)
|
||||
throw new IllegalArgumentException("identity not found");
|
||||
|
||||
EntityFolder outbox = db.folder().getOutbox();
|
||||
if (outbox == null)
|
||||
throw new IllegalArgumentException("outbox not found");
|
||||
|
||||
String subject = (ref.subject == null ? "" : ref.subject);
|
||||
if (prefix_once) {
|
||||
String re = getString(R.string.title_subject_reply, "");
|
||||
subject = subject.replaceAll("(?i)" + Pattern.quote(re.trim()), "").trim();
|
||||
}
|
||||
|
||||
Bundle results = RemoteInput.getResultsFromIntent(intent);
|
||||
String body = results.getString("text");
|
||||
if (body != null)
|
||||
body = "<p>" + body.replaceAll("\\r?\\n", "<br>") + "</p>";
|
||||
|
||||
String text = HtmlHelper.getFullText(body);
|
||||
String language = HtmlHelper.getLanguage(this, text);
|
||||
String language = HtmlHelper.getLanguage(this, ref.subject, text);
|
||||
String preview = HtmlHelper.getPreview(text);
|
||||
|
||||
DB db = DB.getInstance(this);
|
||||
try {
|
||||
db.beginTransaction();
|
||||
|
||||
EntityMessage ref = db.message().getMessage(id);
|
||||
if (ref == null)
|
||||
throw new IllegalArgumentException("message not found");
|
||||
|
||||
EntityIdentity identity = db.identity().getIdentity(ref.identity);
|
||||
if (identity == null)
|
||||
throw new IllegalArgumentException("identity not found");
|
||||
|
||||
EntityFolder outbox = db.folder().getOutbox();
|
||||
if (outbox == null)
|
||||
throw new IllegalArgumentException("outbox not found");
|
||||
|
||||
String subject = (ref.subject == null ? "" : ref.subject);
|
||||
if (prefix_once) {
|
||||
String re = getString(R.string.title_subject_reply, "");
|
||||
subject = subject.replaceAll("(?i)" + Pattern.quote(re.trim()), "").trim();
|
||||
}
|
||||
|
||||
EntityMessage reply = new EntityMessage();
|
||||
reply.account = identity.account;
|
||||
reply.folder = outbox.id;
|
||||
|
|
Loading…
Reference in New Issue