Previously suspension handling was not working because SDK was
expecting the headers to be lowercased. This was not the case
for Swift impl of RestClient.
Additionally, fix logging errors from notification extension by
setting correct privacy modifier when interpolating.
Close#9740
Co-authored-by: hrb-hub <hrb-hub@users.noreply.github.com>
Previously, events were grouped by calendar and sorted
by time within each group by the SDK.
This commit changes this behavior in a way that events
are no longer grouped by calendar. Instead, all events
are merged into a single list and sorted together by start time.
- Remove legacy plan selector
- Add new business plan selector
- Update personal plan selector for discounts, promotions, referrals
- Show discount percentage on iOS for introductory offer
- Update personal plan selector to use new colors
- Refactor / reorganize util classes
- Refactor plan selector elements into reusable components
- Fix paywall behaviour of the email import
Co-authored-by: toj <toj@tutao.de>
Co-authored-by: yoy <yoy@tutao.de>
Co-authored-by: arm <arm@tutao.de>
When adding a guest to an event that already had guests, creating the calendar
invitation draft on mobile could throw an exception.
The issue occurred because each draft email attached an .ics file by creating
a temp file, uploading it, and then deleting it. Multiple drafts ran in
parallel, causing two drafts to attempt deleting the same file — the second one
always failing.
This commit fixes the problem by deferring file deletion until after the promise
completes and ensuring these operations run sequentially (invite, cancellation
and update of an event).
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
Some providers require that we provide a valid User-Agent to
be able to fetch ics content. This commit injects the current
User-Agent from the WebView in the fetch request to solve this
problem.
This commit enhances the iOS widget to support displaying events
across multiple days. It updates the layout to align with the
latest Figma design and adds logic to correctly render all-day
events across different dates.
Co-authored-by: and <and@tutao.de>
This commit fixes the SDK call to load a range of events on
iOS Widget;
Increases the remote fetch frequency to 1 hour instead of 1 day;
Limit to 8 events in memory to avoid OOM problems.
Co-authored-by: and <and@tutao.de>
This commit modifies the list-unsubscribe flow for unsubscription from
newsletters, with the following scenarios:
- Link with POST: The mail has a link and a List-Unsubscribe-Post header
to allow one-click unsubscribe. In that case, we send the POST request
from the client for the Desktop, iOS, and Android app. For the web app,
we send the link to the server and do a ListUnsubscribeService request.
- Link with GET: The mail has a link but does not allow one-click
unsubscribe. In this case, we show a dialog which has the option to open
the link in the browser.
- Link with mailto: The mail does not have a http link in the
list-unsubscribe header, but it has a mailto link for unsubscription.
In this case, we show a dialog which has the option to open a new mail
dialog which uses the mailto link.
Co-authored-by: das <das@tutao.de>
Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
Co-authored-by: sug <sug@tutao.de>
Co-authored-by: kib <104761667+kibibytium@users.noreply.github.com>
The app is internally using `WKWebView` to render web content. When
accessing the camera, this leads to two permission prompts:
1. The prompt triggered by the "outer" app requesting camera access
2. The prompt triggered by the "inner" web view requesting it as well
This commit always grants camera permissions for the second case. The
user's privacy is still respected via the first case.
tuta#2384
Co-authored-by: mab <mab@tutao.de>
Co-authored-by: vaf <vaf@tutao.de>
We go via the SDK instead of calling the crypto-primitives crate
directly because we could not make uniffi and wasm-bindgen play nice
together.
tuta#2219
implement PublicKeySignatueFacade to encode public encryption keys and sign them
sign public encryption keys where it is needed (e.g. key rotation, identity key pair creation)
add ecc keys to current rsa key pairs when creating identity key pairs
refactor GroupManagementFacade, extract loading keys via admin group key, extract creation of identity key pairs
tuta#2083
This reverts commit 8c3bb93113.
We previously had to use separate AdHoc entitlements because the default
mail-client entitlement couldn't be included due to the AdHoc
provisioning profile not allowing it, causing the build to fail.
After we contacted Apple, they made it so our AdHoc profiles now allow
the mail-client entitlement, making this change unnecessary.