- Prevent full-message screen from inheriting preview height caps, which blocks
scrolling in EntireMessageBodyScreen
- pass forceDisableHeightRestriction=true when mapping body UI model in EntireMessageBodyViewModel
- keep preview restriction behavior unchanged for conversation detail flow
ET-6187
- Preserve body_cache directory and delete only its children
- Invoke cleanup from PagedConversationDetailViewModel.onCleared
via @AppScope to avoid viewModelScope cancellation race
ET-6187
- Text path:
- keep existing loadDataWithBaseURL flow for MessageBodyContent.Text
- File path:
- load synthetic local URL instead of direct file path/uri navigation
- intercept synthetic requests in WebViewClient.shouldInterceptRequest
- stream HTML bytes from input stream
Additional refactoring:
- Remove inline height style preparation from composable
(content is prepared upstream in mapper layer)
ET-6187
- 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
- ObserveViewModeChanged was using a shared mutable cache, which broke when collected
from multiple flows (mailbox + category view), causing view mode changes to be ignored.
- Removed cache and used distinctUntilChanged() to make the flow stateless and safe
for multiple collectors.
ET-6046
- Allow selecting a new active category from mailbox
- Propagate category selection through UI, vm and domain layers
- Update Rust scroller to reflect active category change
- Handle errors and provide user feedback on failure
ET-6046
- Add category view state to mailbox state
- Observe category view updates in mailbox
- Display category view with active state and unread count support
by integrating into mailbox layout (sticky header)
- Add resources (icons, colors, strings) for category display
- Gate category view behind existing feature flag
ET-6046
- Do not require batteryNotLow (gated behind remote FF)
- Ensure that scheduling happens before onExitForeground is called
- Add additional debug logging
ET-6144