Change Log

[0.2.4-canary]

Added

  • File download with platform-native behavior: images save to gallery, documents use SAF on Android, share sheet on iOS

  • DownloadToast component with open and share actions after download

  • expo-media-library and expo-intent-launcher dependencies

  • Centralized logger module replacing direct console calls

  • Centralized MESSAGES constants for UI strings

  • TypeScript type definitions for mail data structures (MailDetail, MailListPage)

  • unwrapResponse helper in api-client to reduce boilerplate

  • getFileCategory utility for content type classification

  • Accessibility labels and roles across interactive elements (login, mail list, headers, search, compose)

  • Photo library save permission for iOS (NSPhotoLibraryAddUsageDescription)

  • WRITE_EXTERNAL_STORAGE permission for Android

Changed

  • HTMLRenderer refactored into modular structure (types, constants, html-utils extracted)

  • NetworkContext UI components (NoNetworkScreen, NetworkErrorOverlay) extracted into dedicated files

  • any types replaced with proper TypeScript types across api-client, useMail, DetailsModal, MailInfoCard, SelectionBar, SwipeableButton, MailContent

  • API helper methods now use Record<string, unknown> instead of any for body parameters

  • .gitignore updated with broader firebase admin SDK pattern

  • Android versionCode bumped to 3, buildNumber updated to 3.2.4

Fixed

  • Null safety for mail date formatting in DetailsModal and MailInfoCard

  • Null safety for sender name length check in MailInfoCard

Removed

  • Inline styles and dead comments from NetworkContext

  • Redundant comments across multiple files

  • estimatedItemSize prop from FlashList in outbox and trash screens

[0.2.2-canary]

Added

  • Skeleton loading for mail detail screen with route params for instant header display

  • WebView caching support for faster repeat views on mail content

  • Fade-in animation for mail content when loading completes

  • Notification refetch debouncing (500ms) to prevent rapid API calls

Changed

  • QueryClient configuration optimized with staleTime (5min), gcTime (10min), retry (1)

  • ThemeContext now uses useMemo for context value to prevent unnecessary re-renders

  • HTMLRenderer setTimeout calls reduced from 5 to 2 for faster height stabilization

  • FlashList estimatedItemSize added to home screen for better performance

Fixed

  • Skeleton loading infinite loop issue with proper onReady callback handling

  • Brief blank screen when cached mail data loads

  • Hardcoded localhost URL in send mail screen - now uses AUTH_CONFIG.SMTP_URL

  • Search keyExtractor using array index - now uses unique uid

Removed

  • Unused dependencies: react-native-markdown-display, react-native-netinfo

  • Unused useTheme hooks from MailHeader and MailContent components

[0.2.1-canary]

Added

  • Optimistic delete for mail items - deleted emails are instantly removed from the list

  • Loading indicator at the bottom of mail lists when fetching more data (pagination)

  • Notification permission request on first app launch

  • SMTP support for sending emails

  • Mail content HTML renderer with theme support

  • Selectable mail items with multi-select functionality

  • Network connection error and timeout handler

  • New settings screen

  • Dark mode support across all screens

  • Search functionality with search bar

Changed

  • Selection mode now only shows checkbox when item is selected, avatar remains visible for unselected items

  • Improved checkbox sizing to match avatar dimensions

  • Mail content text color now properly updates when app theme changes

  • Updated mail author title display

  • Improved dark mode colors

  • Enhanced theme consistency across the app

Fixed

  • Loading indicator visibility on mail list pagination

  • Mail content text color not changing with theme

  • iOS build issues

  • Theme switching fixes

  • Search bar padding

  • Keyboard avoiding behavior

[0.2.0]

Added

  • Initial release

  • IMAP email integration with METU servers

  • Inbox, Outbox, and Trash mail folders

  • Pull-to-refresh on mail lists

  • Infinite scroll pagination

  • Push notifications for new emails

  • Dark/Light theme support

  • User authentication with METU credentials

Last updated