Serdar Ozturk
911860cf55
Cache large message bodies as content Uri via FileProvider
...
- Persist large bodies into app cache and expose via FileProvider content Uri
- Keep small bodies inline as Text
- Apply height restriction style before Text/File branching so both inline and file-backed bodies
receive identical HTML preparation
- Fallback to Text if cache write or Uri generation fails
- Register body_cache in file_paths.xml to support content Uri generation
ET-6187
2026-05-08 14:57:57 +00:00
Serdar Ozturk
b751ec59b4
Integrate category view with Rust and domain layers
...
- Enables fetching category view data from Rust layer.
- Add category view domain models (CategoryLabel, CategoryViewStatus)
- Map Rust category data to domain models
- Extend conversation/message repositories to expose category view
- Propagate CategoryViewChanged updates
ET-6046
2026-05-05 09:49:10 +01:00
Niccolò Forlini
352d71a702
Render contact groups as single chip in Composer
...
When seleting a contact group from the suggestions or prefilling the draft recipients, do not add individual contacts from the group but rather the group as a whole.
ET-5846
2026-03-19 12:05:32 +00:00
Niccolò Forlini
8d7f4a6d5c
Bump Rust SDK to 0.164.1
...
NOJIRA
2026-03-11 10:54:30 +00:00
Niccolò Forlini
edce018fd3
Bump Rust SDK to 0.164.0
...
NOJIRA
2026-03-11 10:54:30 +00:00
Stefanija Boshkovska
ad0b70c532
Bump Rust lib version to 0.161.21
2026-02-02 08:49:44 +00:00
Stefanija Boshkovska
00067767a0
Add domain auth failed banner
...
ET-5766
2026-01-29 15:04:11 +01:00
Niccolò Forlini
75f806efe7
Propagate PrivacyInfo to recipients models
...
ET-5535
2026-01-19 13:34:51 +00:00
Niccolò Forlini
c0b12d7cc1
Bump Rust to 0.161.6
...
NOJIRA
2026-01-19 13:11:27 +00:00
Serdar Ozturk
4554299b8d
Sidebar unread counters: Show capped numbers
...
- Show empty for null and zero values
- Show exact count for 1..99 and display 99+ for >= 100
ET-5616
2026-01-06 09:49:18 +00:00
Niccolò Forlini
12f3916e44
Fix opening location from Search mode
...
ET-5371
2025-12-04 11:28:55 +01:00
Niccolò Forlini
bcfd113ce0
Retrieve draft content by using composerContent
...
The draft wrapper was migrated from using primarily `body()` to fetch the draft body to retrieve both the head content to decorate the webview and the body to populate composer.
ET-5486
2025-12-03 14:20:53 +00:00
Seren
71c28a0a15
Rename attachments in message to reflect its limitation (10)
...
ET-5525
2025-12-03 09:54:51 +00:00
Seren
84582936de
Fix attachments limited to 10, get attachments from decryptedMessageBody
...
ET-5525
2025-12-03 09:54:51 +00:00
Stefanija Boshkovska
4a65f95300
Create EntireMessageBodyViewModel
...
ET-5233
2025-12-01 15:10:12 +01:00
Niccolò Forlini
41fbdbd9ab
Do not instantiate observers to resolve message/conversation subject
...
When displaying the "More" actions bottomsheet, we show the subject at the top of the component. The information is currently retrieved by observing and capturing the first data event emitted by observeMessage/observeConversation, which instantiate a whole watcher and subsequent callbacks.
ET-5458
2025-11-25 09:35:47 +00:00
Niccolò Forlini
eea14b5852
Update Rust to 0.158.0
...
NOJIRA
2025-11-21 15:33:50 +00:00
Stefanija Boshkovska
cac3f26d44
Handle the "Load images" click on the "Images failed to load" banner
...
ET-5026
2025-11-21 15:47:02 +01:00
Stefanija Boshkovska
8be093a783
Show the "images failed to load" banner
...
This banner should be shown in case the ProxyFailed error is returned when loading images.
ET-5026
2025-11-21 15:11:08 +01:00
Seren
4ea7d42e6d
Fix existing tests for enable/ disable selection mode
...
ET-5377
2025-11-17 08:49:11 +00:00
Serdar Ozturk
398cd9af2b
Add Block Sender confirmation dialog
...
- If the sender is a contact, then the title changes to Block this contact
- Implemented dialog state and reducer
- Added view actions for the dialog
ET-5145
2025-11-03 14:36:58 +00:00
Niccolò Forlini
0497aa1595
Update GetOnboardingPlanUpgrades
...
Ensure that non BF-eligible users are still offered upselling during onboarding
NOJIRA
2025-10-31 15:14:29 +01:00
Niccolò Forlini
253ee344a6
Improve Plan Upgrades mapping
...
Allow offers to have both intro + BF while keeping the entry points consistent throughout all the flows.
ET-5064
2025-10-31 11:40:45 +00:00
Niccolò Forlini
dcfd5cb8c1
Update discount rate and yearly saving UC
...
ET-5064
2025-10-31 11:40:45 +00:00
Niccolò Forlini
98b182fa9d
Add BF2025 use cases for eligibility
...
Related to:
- IAN enabled
- Get current BF phase
- Is user eligible for BF
ET-5064
2025-10-30 10:34:23 +00:00
Marino Meneghel
a73feb7548
Bump rust lib to 0.154.3
...
NOJIRA
2025-10-28 10:10:12 +01:00
Stefanija Boshkovska
3ab9409742
Add "hiddenMessagesBanner" to Conversation domain model
...
ET-4991
2025-10-21 17:57:07 +02:00
Niccolò Forlini
95e872dd4f
Merge branch 'hotfix/7.0.15'
...
# Conflicts:
# .gitlab-ci.yml
# mail-composer/data/src/main/kotlin/ch/protonmail/android/composer/data/local/RustAttachmentDataSource.kt
# mail-composer/domain/src/main/kotlin/ch/protonmail/android/mailcomposer/domain/repository/AttachmentRepository.kt
# mail-composer/presentation/src/main/kotlin/ch/protonmail/android/mailcomposer/presentation/reducer/modifications/effects/ErrorEffectsStateModification.kt
# mail-mailbox/presentation/src/test/kotlin/ch/protonmail/android/mailmailbox/presentation/MailboxViewModelTest.kt
# mail-message/data/src/main/kotlin/ch/protonmail/android/mailmessage/data/local/RustMessageDataSourceImpl.kt
2025-10-20 10:38:05 +02:00
Niccolò Forlini
8eea0feba9
Bump Rust to 0.149.13
...
NOJIRA
2025-10-14 13:02:11 +00:00
Serdar Ozturk
9aa45621e8
Do not present block/unblock sender options for the primary user
...
- Contact Actions sheet can also be opened when clicked on
TO address field.
- We should not present block/unblock options for the primary user
ET-4976
2025-10-14 08:47:54 +00:00
Serdar Ozturk
daf136e7f1
Update Contact Action UI model
...
- We need to show different menu item for contacts
and non-contacts
- Include both block and unblock menu options
- Updated reducer accordingly
- Updated samples
ET-4976
2025-10-14 08:47:54 +00:00
Niccolò Forlini
d770f809c1
Update Kotlin deps
...
- Kotlin to 2.2.20
- KSP tot 2.2.20-2.0.3
- kotlinx.datatime to 0.7.1
- kotlinx.serialization to 1.9.0
NOJIRA
2025-10-13 11:24:35 +00:00
Marino Meneghel
e4d65f41df
Display warning when sending message with expiration to external recipients
...
ET-4311
2025-10-03 08:59:12 +00:00
Marino Meneghel
2d4e106ca4
Display warning when sending message with expiration to external recipients
...
ET-4311
2025-09-24 11:27:51 +02:00
Stefanija Boshkovska
b6a36b8d39
Show an attachment icon when item has attachments but none are shown in the preview
...
ET-4500
2025-09-04 13:46:52 +00:00
Serdar Ozturk
39b44778c2
Rust ShowImages has been deprecated
...
- In order to map remote image and embedded image settings we should be
using hideRemoteImages and hideEmbeddedImages
ET-4479
2025-08-27 09:57:07 +00:00
Stefanija Boshkovska
1bbd31708d
Remove "Add contact" and "Block" actions from the ContactActionsBottomSheet
...
ET-4497
2025-08-26 18:01:29 +00:00
Stefanija Boshkovska
6c29cb404a
Show the "Unsubscribe from newsletter" banner
...
ET-587
2025-08-26 17:34:09 +00:00
Niccolò Forlini
bfe856688d
Refactor onboarding plan mappings
...
Moved extension func around, added yearlySaving into the mix.
ET-4366
2025-08-26 08:16:22 +00:00
Niccolò Forlini
dd4bdd1138
Add createdAtUtc to User
...
ET-4366
2025-08-25 16:51:21 +00:00
Marino Meneghel
42196bbdf3
Replacing participant with draft recipient between data and presentation layers
...
This will enable introducing rust-driven recipients validation as well as
displaying chips for contact groups in the UI.
At this stage, the UI model is unchanged and doesn't map this new data yet.
Validation is also still only performed on UI side.
ET-2160
2025-08-25 07:51:04 +00:00
Yoann Goular
d337a3f70b
expose usagePercent and maxStorageInGib from User class
2025-08-21 07:41:07 +02:00
Marino Meneghel
5da0c09d63
Add draft mime type to domain and ui models and on state when draft ready
...
ET-4304
2025-08-21 07:41:06 +02:00
Marino Meneghel
25d330e354
Add rust defined local mime type to Local Draft
...
ET-4304
2025-08-21 07:41:06 +02:00
Seren
67aa9bfaea
UI for snooze message banner
...
ET-3986
2025-08-13 12:09:39 +00:00
Seren
f3c7f43202
Display Snoozed time as orange
...
ET-1521
2025-08-11 13:57:00 +02:00
Stefanija Boshkovska
e410342cbc
Bump Rust lib to version 0.120.0
...
NOJIRA
2025-08-08 11:32:49 +02:00
Stefanija Boshkovska
c832d07bc5
Remove OpenInProtonCalendarBanner
...
ET-3977
2025-08-08 08:21:58 +00:00
Stefanija Boshkovska
c5b57f804f
Add a field to DecryptedMessageBody that indicates whether the message contains a calendar invite
...
ET-3977
2025-08-08 08:21:58 +00:00
Niccolò Forlini
0326733cfd
Add Upsell FF
...
ET-4103
2025-08-07 11:53:00 +00:00