Commit graph

1458 commits

Author SHA1 Message Date
and
23ca8767f2 [SDK] Adapt SDK and widgets to handle new calendar colors
Co-authored-by: bed <bed@tutao.de>
2025-10-10 07:20:34 +02:00
jenkins build server
b2ecf92a77 v310.251008.0 2025-10-08 15:10:33 +02:00
jenkins build server
043f032df2 update translations 2025-10-08 15:08:19 +02:00
jenkins build server
dc7a95166f v310.251002.0 2025-10-02 16:55:53 +02:00
jenkins build server
d80cb804ee update translations 2025-10-02 16:53:24 +02:00
ivk
0237809e66 [android] Fix suspension handling, normalize headers in RestClient
Close #9740

Co-authored-by: hrb-hub <hrb-hub@users.noreply.github.com>
2025-10-02 13:15:50 +02:00
jenkins build server
f8b5750482 v310.250926.0 2025-09-26 17:34:05 +02:00
and
aaf9d58d23 [Android] Fix widget error when device is offline
When the device is offline the widget fails to log in into the sdk and throws a LoginException not handled before during calendar colors update attempt. This was preventing the cache fallback.
2025-09-26 14:33:41 +02:00
toj
6775fd4db3 Rework plan selector
- 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>
2025-09-26 14:15:49 +02:00
yoy
2675f20c74 feat(theme): Update theme colors
- Introduce the new colors for all color themes
- The colors are based on the Material 3 color but customized
2025-09-26 14:15:49 +02:00
jenkins build server
cd70b815c9 v309.250918.1 2025-09-18 16:27:01 +02:00
and
ada082cf8a [Android] Fix noTitle translation 2025-09-18 11:31:47 +02:00
jenkins build server
5d49818736 v309.250918.0 2025-09-18 11:30:04 +02:00
jenkins build server
b729ec4ec6 update translations 2025-09-18 11:27:49 +02:00
and
c10f9d526a Fix adding multiple guests to existing event on mobile
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>
2025-09-17 16:01:02 +02:00
mup
7aca6ac096 Fixes External Calendar synchronization
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.
2025-09-17 16:00:59 +02:00
and
b3505921c1 [Android] Updates Widget preview image
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:09 +02:00
and
de381aab50 [Android] Fetches calendar colors when updating the widget
Also fix tap on event by correctly assigning EventRow clickable modifier

Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:09 +02:00
and
a72a13f1bf [Android] Adjusts short weekday name size at event row and apply grey color to "No Events"
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:09 +02:00
and
077350aeb9 [Android] Fixes All Day Events causing today to render twice
Changes the event iteration filtering out if there is any date before today at midnight;
Also fixes the day/event/card tap that was opening a wrong day depending on users timezone.

Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:09 +02:00
mup
d59149028c [Android] Extract components and adapt to new design
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
Co-authored-by: bed <bed@tutao.de>
2025-09-17 15:18:09 +02:00
mup
a63e5eb1c1 [Android] Extracts a Dimensions object
This commit introduces the Dimensions object,
a place to concentrate all constants related to
spacing, sizing, etc.
2025-09-17 15:18:09 +02:00
mup
6074c169d9 Fix missing translation 2025-09-17 15:18:09 +02:00
mup
295bd67373 [Android] Fixes empty list check
Co-authored-by: and <and@tutao.de>
2025-09-17 15:18:09 +02:00
mup
2586d19946 [Android] Fix paddings 2025-09-17 15:18:09 +02:00
mup
193b30cdeb [Android] Handles days with only All Day Events
Co-authored-by: and <and@tutao.de>
2025-09-17 15:18:09 +02:00
and
6668638175 [Android] Show all events for each day
Workaround Column limitations of 10 items and show all events of a day sorted by starting time.
Correctly handles tap action.
Increase refresh frequency to 1hr

Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:08 +02:00
and
2ab2f61cca [Android] Fix header and tap interactions
Now tapping on the event correctly opens it.
Also some code clean-up.
2025-09-17 15:18:08 +02:00
mup
5384718039 [Android] Fixes events from other days not appearing
This commit fixes events from other days not appearing and
also ensures that the mapping is done using device's local
timezone to avoid showing events on the wrong day.

Co-authored-by: and <and@tutao.de>
2025-09-17 15:18:08 +02:00
and
c9cd4e718c [Android] Fix bottom padding for last day card
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:08 +02:00
and
2c75907aeb [Android] Fix viewModel to correctly store loaded events
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:08 +02:00
and
a6fcf0cd25 [Android] Show "no events today" when current day is empty
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:08 +02:00
and
24a7973b20 [Android] New widget layout with support for multi day agenda
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
2025-09-17 15:18:08 +02:00
abp
488c72c25f
rework mail list-unsubscribe flow
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>
2025-09-15 15:22:01 +02:00
yoy
bd9ebc08c4 v308.250911.0 2025-09-11 12:39:56 +02:00
yoy
f1c276feda v308.250910.0 2025-09-10 08:32:29 +02:00
jenkins build server
06740ea741 v308.250909.0 2025-09-09 13:37:39 +02:00
wrd
b74fdeb012 [android] Fix suspension handling
Implement suspension handler on Android so that we can have a shared
suspension state.

Switch to downloading missed notification async so that it can be
used with suspension handler.

#9613

Co-authored-by: ivk <ivk@tutao.de>
2025-09-09 13:07:35 +02:00
jenkins build server
89357ef3e6 v304.250901.0 2025-09-01 17:26:02 +02:00
jenkins build server
1e3ccb7b4b v304.250829.0 2025-08-29 17:31:52 +02:00
bir
55f4332d37 [Android] Fix login failure when biometrics are disabled on device
If the user disables biometrics on their phone but the app’s
`appLockMethod` is still set to biometrics, login attempts result in a
`CredentialAuthenticationException`. This happens because the app still
 tries to use biometrics, which are no longer available.

Fixed by detecting `BiometricAuthenticationError` which clear stored
credentials and setting appLockMethod to None to allow fallback
authentication.

Close #9064
2025-08-29 10:26:11 +02:00
mup
69c193ea5b [Android] Fixes Android widget configuration crashing
The widget configuration activity was failing when encountering color strings
with only three characters (e.g., shorthand hex codes like #FFF).
This was due to the absence of a proper color parsing function.

This commit updates the config activity to use parseColor,
ensuring consistent and reliable color handling.
2025-08-28 17:03:31 +02:00
mup
523a0b0b4d [SDK] Fixes all day events exhibition on Widget
This commit address:
- All day events with wrong times
- Showing all day events at wrong day
- Fixes event generation skipping events with week start rule

Co-authored-by: and <and@tutao.de>
2025-08-28 17:03:31 +02:00
vis
0c549e94c0
v304.250825.0 2025-08-25 16:49:37 +02:00
vis
2099ddd300
v303.250821.0 2025-08-21 12:16:52 +02:00
vis
246f320b6d
Update translations 2025-08-21 12:13:28 +02:00
vis
95b9cb0bee
v303.250820.1 2025-08-20 17:29:04 +02:00
vis
bd17f8ed1e
v303.250820.0 2025-08-20 12:13:59 +02:00
jenkins build server
64beeb6c12
v303.250814.0 2025-08-14 17:54:29 +02:00
jenkins build server
c3b6ce2003
v303.250807.0 2025-08-07 16:27:15 +02:00