Report new on compose is an experiment

pull/206/head
M66B 3 years ago
parent 928a9ed188
commit 9d21d210ed

@ -7,11 +7,13 @@
### Next version ### Next version
* Added support for latin and roman numbered lists (view only) * Added support for latin and roman numbered lists (view only)
* Report new messages in same thread when composing a new message * Report new messages when composing a message [1]
* Use account categories for identities * Use account categories for identities
* Small improvements and minor bug fixes * Small improvements and minor bug fixes
* Updated translations * Updated translations
[1] This is an experiment which needs to be enabled in the miscellaneous settings.
### 1.1763 ### 1.1763
* Small improvements and minor bug fixes * Small improvements and minor bug fixes

@ -3303,14 +3303,6 @@ Reformatting and displaying such messages will take too long. You can try to use
🌎 [Google Translate](https://translate.google.com/translate?sl=en&&u=https://github.com/M66B/FairEmail/blob/master/FAQ.md%23user-content-faq125) 🌎 [Google Translate](https://translate.google.com/translate?sl=en&&u=https://github.com/M66B/FairEmail/blob/master/FAQ.md%23user-content-faq125)
*Message classification (version 1.1438+)*
Please see [this FAQ](#user-content-faq163) for details.
Since this is an experimental feature, my advice is to start with just one folder.
<br />
*Send hard bounce (version 1.1477+)* *Send hard bounce (version 1.1477+)*
Send a [Delivery Status Notification](https://tools.ietf.org/html/rfc3464) (=hard bounce) via the reply/answer menu. Send a [Delivery Status Notification](https://tools.ietf.org/html/rfc3464) (=hard bounce) via the reply/answer menu.
@ -3322,9 +3314,14 @@ For some background, see for [this Wikipedia article](https://en.wikipedia.org/w
<br /> <br />
*Translate button (version 1.1600+)* *Report new messages when composing a message*
A bottom notification will be shown if a new message arrives in the same conversation thread as a new message is being composed for.
There will be a *show* button to show the conversation and from there you can tap on the draft message to continue editting.
The notification can be swiped away.
Please see [this FAQ](#user-content-faq167) about how to configure DeepL. This requires grouping of messages into conversations to be enabled.
<br /> <br />

@ -7,11 +7,13 @@
### Next version ### Next version
* Added support for latin and roman numbered lists (view only) * Added support for latin and roman numbered lists (view only)
* Report new messages in same thread when composing a new message * Report new messages when composing a message [1]
* Use account categories for identities * Use account categories for identities
* Small improvements and minor bug fixes * Small improvements and minor bug fixes
* Updated translations * Updated translations
[1] This is an experiment which needs to be enabled in the miscellaneous settings.
### 1.1763 ### 1.1763
* Small improvements and minor bug fixes * Small improvements and minor bug fixes

@ -281,6 +281,9 @@ public interface DaoMessage {
" JOIN folder_view AS folder ON folder.id = message.folder" + " JOIN folder_view AS folder ON folder.id = message.folder" +
" WHERE message.account = :account" + " WHERE message.account = :account" +
" AND message.thread = :thread" + " AND message.thread = :thread" +
" AND folder.type <> '" + EntityFolder.DRAFTS + "'" +
" AND folder.type <> '" + EntityFolder.OUTBOX + "'" +
" AND folder.type <> '" + EntityFolder.SENT + "'" +
" AND folder.type <> '" + EntityFolder.ARCHIVE + "'" + " AND folder.type <> '" + EntityFolder.ARCHIVE + "'" +
" AND NOT ui_seen" + " AND NOT ui_seen" +
" AND NOT ui_hide") " AND NOT ui_hide")

@ -5198,51 +5198,54 @@ public class FragmentCompose extends FragmentBase {
} }
}); });
db.message().liveUnreadThread(data.draft.account, data.draft.thread).observe(getViewLifecycleOwner(), new Observer<List<EntityMessage>>() { boolean experiments = prefs.getBoolean("experiments", false);
private int lastDiff = 0; boolean threading = prefs.getBoolean("threading", true);
private List<EntityMessage> base = null; if (experiments && threading)
db.message().liveUnreadThread(data.draft.account, data.draft.thread).observe(getViewLifecycleOwner(), new Observer<List<EntityMessage>>() {
private int lastDiff = 0;
private List<EntityMessage> base = null;
@Override @Override
public void onChanged(List<EntityMessage> messages) { public void onChanged(List<EntityMessage> messages) {
if (messages == null) if (messages == null)
return; return;
if (base == null) { if (base == null) {
base = messages; base = messages;
return; return;
} }
int diff = (messages.size() - base.size()); int diff = (messages.size() - base.size());
if (diff > lastDiff) { if (diff > lastDiff) {
lastDiff = diff; lastDiff = diff;
String msg = getResources().getQuantityString( String msg = getResources().getQuantityString(
R.plurals.title_notification_unseen, diff, diff); R.plurals.title_notification_unseen, diff, diff);
Snackbar snackbar = Snackbar.make(view, msg, Snackbar.LENGTH_INDEFINITE) Snackbar snackbar = Snackbar.make(view, msg, Snackbar.LENGTH_INDEFINITE)
.setGestureInsetBottomIgnored(true); .setGestureInsetBottomIgnored(true);
snackbar.setAction(R.string.title_show, new View.OnClickListener() { snackbar.setAction(R.string.title_show, new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
EntityMessage message = messages.get(0); EntityMessage message = messages.get(0);
boolean notify_remove = prefs.getBoolean("notify_remove", true); boolean notify_remove = prefs.getBoolean("notify_remove", true);
Intent thread = new Intent(v.getContext(), ActivityView.class); Intent thread = new Intent(v.getContext(), ActivityView.class);
thread.setAction("thread:" + message.id); thread.setAction("thread:" + message.id);
thread.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); thread.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
thread.putExtra("account", message.account); thread.putExtra("account", message.account);
thread.putExtra("folder", message.folder); thread.putExtra("folder", message.folder);
thread.putExtra("thread", message.thread); thread.putExtra("thread", message.thread);
thread.putExtra("filter_archive", true); thread.putExtra("filter_archive", true);
thread.putExtra("ignore", notify_remove); thread.putExtra("ignore", notify_remove);
v.getContext().startActivity(thread); v.getContext().startActivity(thread);
getActivity().finish(); getActivity().finish();
} }
}); });
snackbar.show(); snackbar.show();
}
} }
} });
});
} }
@Override @Override

@ -7,11 +7,13 @@
### Next version ### Next version
* Added support for latin and roman numbered lists (view only) * Added support for latin and roman numbered lists (view only)
* Report new messages in same thread when composing a new message * Report new messages when composing a message [1]
* Use account categories for identities * Use account categories for identities
* Small improvements and minor bug fixes * Small improvements and minor bug fixes
* Updated translations * Updated translations
[1] This is an experiment which needs to be enabled in the miscellaneous settings.
### 1.1763 ### 1.1763
* Small improvements and minor bug fixes * Small improvements and minor bug fixes

Loading…
Cancel
Save