We want to use offline storage (SQLite) for autosaved drafts as it will
allow the locally saved draft to be accessible when offline. This means
we refactor ConfigurationDatabase.
We still want to use the same encoding methods, as it provides a simple
way to put in data without having to worry about making some complex
schema.
Closes#9743
Co-authored-by: ivk <ivk@tutao.de>
We want to avoid that an autosave is created while the user is saving.
It is not quite enough to check that the mail is sending before doing an
autosave, since you can also send while doing an autosave. As such, we
should additionally clear the autosave once the mail has been sent.
We also want to avoid saving if the mail has not actually been changed.
Closes#9735
Every five seconds while the user is typing, save a local copy of the
draft to ConfigurationDatabase.
If the draft has not been touched for five minutes, it gets uploaded to
the server.
If the user restarts the client with an autosaved draft, it will open
automatically. Only one draft can be autosaved at a time.
Additionally, if an entity update for a draft is received while the user
has that draft open for editing, saving will prompt a confirmation
dialog to overwrite the draft on the server, as this draft data may be
outdated.
Next, if the user attempts to open a new draft while there is an
autosaved draft, display a confirmation dialog to the user to delete
it.
And lastly, if the user has two separate drafts open on different
windows, we handle this by preventing saving over them.
Closes#4419
When answering to a calendar event or sending a mail we show a popup
where the user can select which key to recover
Co-authored-by: mab <mab@tutao.de>
tuta#2239
For recipients that have been displayed as verified in the mail editor
and lose the status before sending, the verification shield icon will
be replaced by a failure icon.
Co-authored-by: mab <mab@tutao.de>
The reason for this refactor is to make it possible to put "data-testid"
attributes on HTML tags. Those attributes can be used with UI test
frameworks to make automated testing independent of the translation
language or text.
The idea is to get rid of the lazy<string> types and instead use a new type
called Translation wherever possible. Translation replaces the old
TranslationText and contains both translation key and translation text.
The type MaybeTranslation is a legacy type left to make the transition feasible.
It can be replaced with either TranslationKey or Translation in the future.
Co-authored-by: map <mpfau@users.noreply.github.com>
In order to allow importing of mails we replace legacy MailFolders
(non-static mail listIds) with new MailSets (static mail listIds).
From now on, mails have static mail listIds and static mail elementIds.
To move mails between new MailSets we introduce MailSetEntries
("entries" property on a MailSet), which are index entries sorted by
the received date of the referenced mails (customId). This commit adds
support for new MailSets, while still supporting legacy MailFolders
(mail lists) to support migrating gradually.
* TutanotaModelV74 adds:
* MailSet support
* and defaultAlarmList on GroupSettings
* SystemModelV107 adds model changes for counter (unread mails) updates
* Adapt mail list to show MailSet and legacy mails
The list model is now largely unaware about listIds since it can
display mails from multiple MailBags. MailBags are static mailLists
from which a mail is only removed from when the mail is permanently
deleted.
* Adapt offline storage for mail sets
Offline storage gained the ability to provide cached entities
from a list of ids.
This commit moves some functions that are used in both App and Worker.
Also renames CommonMailUtils to SharedMailUtils.ts because there share
functionalities between both apps and creates a new file CommonMailUtils
to store functions that are common between app and worker.
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
This commit fixes the Build scripts and missing imports
from rebase. Fixes tests after apps split, and This commit fixes the
Android project changing the gradle task used to build the Android app.
Also fixes some import errors caused by the rebase.
This commit fixes the Android project changing the gradle task
used to build the Android app.
Also fixes some import errors caused by the rebase.
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>