├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
└── workflows
│ ├── android.yml
│ ├── auto-author-assign.yml
│ ├── dependent-issues.yml
│ ├── rebase-default-branch.yml
│ ├── semantic-commit.yml
│ └── sentry-release.yml
├── .gitignore
├── .gitmodules
├── .idea
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── copyright
│ ├── Core_copyright.xml
│ ├── Infomaniak_Open_Source.xml
│ └── profiles_settings.xml
├── navEditor.xml
└── scopes
│ └── Core_project_files.xml
├── HtmlCleaner
├── build.gradle
└── src
│ └── main
│ └── java
│ └── com
│ └── infomaniak
│ └── html
│ └── cleaner
│ ├── BodyCleaner.kt
│ ├── HeadCleaner.kt
│ └── HtmlSanitizer.kt
├── LICENSE
├── README.md
├── app
├── build.gradle
├── google-services.json
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── infomaniak
│ │ └── mail
│ │ └── ExampleInstrumentedTest.kt
│ ├── fdroid
│ └── java
│ │ └── com
│ │ └── infomaniak
│ │ └── mail
│ │ ├── FdroidModule.kt
│ │ ├── FdroidPlayServicesUtils.kt
│ │ └── firebase
│ │ └── RegisterFirebaseBroadcastReceiver.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── icon_print_email.svg
│ ├── ic_launcher-playstore.png
│ ├── java
│ │ └── com
│ │ │ └── infomaniak
│ │ │ └── mail
│ │ │ ├── MainApplication.kt
│ │ │ ├── MatomoMail.kt
│ │ │ ├── data
│ │ │ ├── LocalSettings.kt
│ │ │ ├── api
│ │ │ │ ├── ApiRepository.kt
│ │ │ │ ├── ApiRoutes.kt
│ │ │ │ ├── CalendarRealmInstantSerializer.kt
│ │ │ │ ├── DateSerializer.kt
│ │ │ │ ├── FlatteningSubBodiesSerializer.kt
│ │ │ │ ├── HeadersSpamBooleanSerializer.kt
│ │ │ │ ├── RealmInstantSerializer.kt
│ │ │ │ ├── UnwrappingJsonListSerializer.kt
│ │ │ │ └── UrlTraceInterceptor.kt
│ │ │ ├── cache
│ │ │ │ ├── RealmDatabase.kt
│ │ │ │ ├── RealmMigrations.kt
│ │ │ │ ├── appSettings
│ │ │ │ │ └── AppSettingsController.kt
│ │ │ │ ├── mailboxContent
│ │ │ │ │ ├── AttachmentController.kt
│ │ │ │ │ ├── DelayApiCallManager.kt
│ │ │ │ │ ├── DraftController.kt
│ │ │ │ │ ├── FolderController.kt
│ │ │ │ │ ├── ImpactedFolders.kt
│ │ │ │ │ ├── MessageController.kt
│ │ │ │ │ ├── RefreshController.kt
│ │ │ │ │ ├── ReplyForwardFooterManager.kt
│ │ │ │ │ ├── SwissTransferContainerController.kt
│ │ │ │ │ ├── SwissTransferFileController.kt
│ │ │ │ │ ├── ThreadController.kt
│ │ │ │ │ └── refreshStrategies
│ │ │ │ │ │ ├── DefaultRefreshStrategy.kt
│ │ │ │ │ │ ├── InboxRefreshStrategy.kt
│ │ │ │ │ │ ├── RefreshStrategy.kt
│ │ │ │ │ │ ├── ScheduledDraftRefreshStrategy.kt
│ │ │ │ │ │ └── SnoozeRefreshStrategy.kt
│ │ │ │ ├── mailboxInfo
│ │ │ │ │ ├── MailboxController.kt
│ │ │ │ │ ├── PermissionsController.kt
│ │ │ │ │ ├── QuotasController.kt
│ │ │ │ │ └── SignatureController.kt
│ │ │ │ └── userInfo
│ │ │ │ │ ├── AddressBookController.kt
│ │ │ │ │ └── MergedContactController.kt
│ │ │ └── models
│ │ │ │ ├── AppSettings.kt
│ │ │ │ ├── Attachable.kt
│ │ │ │ ├── Attachment.kt
│ │ │ │ ├── AttachmentDisposition.kt
│ │ │ │ ├── AttachmentUploadStatus.kt
│ │ │ │ ├── AttachmentsToForwardResult.kt
│ │ │ │ ├── BackupResult.kt
│ │ │ │ ├── Bimi.kt
│ │ │ │ ├── FeatureFlag.kt
│ │ │ │ ├── Folder.kt
│ │ │ │ ├── InfomaniakPassword.kt
│ │ │ │ ├── MoveResult.kt
│ │ │ │ ├── Quotas.kt
│ │ │ │ ├── ShareThread.kt
│ │ │ │ ├── Snoozable.kt
│ │ │ │ ├── SnoozeState.kt
│ │ │ │ ├── SwipeAction.kt
│ │ │ │ ├── SwipeDisplayBehavior.kt
│ │ │ │ ├── SwissTransferContainer.kt
│ │ │ │ ├── SwissTransferFile.kt
│ │ │ │ ├── addressBook
│ │ │ │ ├── AddressBook.kt
│ │ │ │ └── AddressBooksResult.kt
│ │ │ │ ├── ai
│ │ │ │ ├── AiMessage.kt
│ │ │ │ ├── AiPromptOpeningStatus.kt
│ │ │ │ ├── AiResult.kt
│ │ │ │ ├── AssistantMessage.kt
│ │ │ │ ├── ContextMessage.kt
│ │ │ │ └── UserMessage.kt
│ │ │ │ ├── calendar
│ │ │ │ ├── Attendee.kt
│ │ │ │ ├── CalendarEvent.kt
│ │ │ │ └── CalendarEventResponse.kt
│ │ │ │ ├── correspondent
│ │ │ │ ├── Contact.kt
│ │ │ │ ├── Correspondent.kt
│ │ │ │ ├── MergedContact.kt
│ │ │ │ └── Recipient.kt
│ │ │ │ ├── draft
│ │ │ │ ├── Draft.kt
│ │ │ │ ├── SaveDraftResult.kt
│ │ │ │ ├── ScheduleDraftResult.kt
│ │ │ │ └── SendDraftResult.kt
│ │ │ │ ├── getMessages
│ │ │ │ ├── ActivitiesResult.kt
│ │ │ │ ├── DefaultMessageFlags.kt
│ │ │ │ ├── GetMessagesByUidsResult.kt
│ │ │ │ ├── MessageFlags.kt
│ │ │ │ ├── NewMessagesResult.kt
│ │ │ │ └── SnoozeMessageFlags.kt
│ │ │ │ ├── mailbox
│ │ │ │ ├── Mailbox.kt
│ │ │ │ ├── MailboxExternalMailInfo.kt
│ │ │ │ ├── MailboxLinkedResult.kt
│ │ │ │ ├── MailboxPermissions.kt
│ │ │ │ ├── SenderDetails.kt
│ │ │ │ └── SendersRestrictions.kt
│ │ │ │ ├── message
│ │ │ │ ├── Body.kt
│ │ │ │ ├── Headers.kt
│ │ │ │ ├── Message.kt
│ │ │ │ └── SubBody.kt
│ │ │ │ ├── signature
│ │ │ │ ├── Signature.kt
│ │ │ │ └── SignaturesResult.kt
│ │ │ │ ├── snooze
│ │ │ │ ├── BatchSnoozeCancelResponse.kt
│ │ │ │ ├── BatchSnoozeResponse.kt
│ │ │ │ ├── BatchSnoozeResult.kt
│ │ │ │ └── BatchSnoozeUpdateResponse.kt
│ │ │ │ └── thread
│ │ │ │ ├── Thread.kt
│ │ │ │ └── ThreadResult.kt
│ │ │ ├── di
│ │ │ ├── ActivityModule.kt
│ │ │ ├── ApplicationModule.kt
│ │ │ ├── CoroutinesDispatchersModule.kt
│ │ │ ├── CoroutinesQualifiers.kt
│ │ │ ├── RealmDatabaseModule.kt
│ │ │ └── RealmQualifiers.kt
│ │ │ ├── receivers
│ │ │ ├── NotificationActionsReceiver.kt
│ │ │ ├── NotificationJobsBus.kt
│ │ │ └── RebootReceiver.kt
│ │ │ ├── ui
│ │ │ ├── BaseActivity.kt
│ │ │ ├── LaunchActivity.kt
│ │ │ ├── MainActivity.kt
│ │ │ ├── MainViewModel.kt
│ │ │ ├── alertDialogs
│ │ │ │ ├── AiDescriptionAlertDialog.kt
│ │ │ │ ├── BaseAlertDialog.kt
│ │ │ │ ├── ConfirmScheduledDraftModificationDialog.kt
│ │ │ │ ├── ContextualMenuAlertDialog.kt
│ │ │ │ ├── CreateFolderDialog.kt
│ │ │ │ ├── DescriptionAlertDialog.kt
│ │ │ │ ├── EmailContextualMenuAlertDialog.kt
│ │ │ │ ├── InformationAlertDialog.kt
│ │ │ │ ├── InputAlertDialog.kt
│ │ │ │ ├── LinkContextualMenuAlertDialog.kt
│ │ │ │ ├── PhoneContextualMenuAlertDialog.kt
│ │ │ │ ├── SelectDateAndTimeDialog.kt
│ │ │ │ ├── SelectDateAndTimeForScheduledDraftDialog.kt
│ │ │ │ ├── SelectDateAndTimeForSnoozeDialog.kt
│ │ │ │ └── TitleAlertDialog.kt
│ │ │ ├── bottomSheetDialogs
│ │ │ │ ├── AccountBottomSheetDialog.kt
│ │ │ │ ├── AiDiscoveryBottomSheetDialog.kt
│ │ │ │ ├── DiscoveryBottomSheetDialog.kt
│ │ │ │ ├── InformationBottomSheetDialog.kt
│ │ │ │ ├── LockedMailboxBottomSheetDialog.kt
│ │ │ │ ├── ScheduleSendBottomSheetDialog.kt
│ │ │ │ ├── SelectScheduleOptionBottomSheet.kt
│ │ │ │ ├── SnoozeBottomSheetDialog.kt
│ │ │ │ ├── SyncDiscoveryBottomSheetDialog.kt
│ │ │ │ └── UpdateAvailableBottomSheetDialog.kt
│ │ │ ├── login
│ │ │ │ ├── IlluColors.kt
│ │ │ │ ├── IntroFragment.kt
│ │ │ │ ├── IntroPagerAdapter.kt
│ │ │ │ ├── IntroViewModel.kt
│ │ │ │ ├── LoginActivity.kt
│ │ │ │ ├── LoginFragment.kt
│ │ │ │ ├── NewAccountFragment.kt
│ │ │ │ └── NoMailboxActivity.kt
│ │ │ ├── main
│ │ │ │ ├── AvatarNameEmailView.kt
│ │ │ │ ├── EmptyStateView.kt
│ │ │ │ ├── InvalidPasswordFragment.kt
│ │ │ │ ├── InvalidPasswordViewModel.kt
│ │ │ │ ├── MailboxListFragment.kt
│ │ │ │ ├── SnackbarManager.kt
│ │ │ │ ├── contact
│ │ │ │ │ └── ContactFragment.kt
│ │ │ │ ├── folder
│ │ │ │ │ ├── DateSeparatorItemDecoration.kt
│ │ │ │ │ ├── HeaderItemDecoration.kt
│ │ │ │ │ ├── MultiSelectionListener.kt
│ │ │ │ │ ├── PerformSwipeActionManager.kt
│ │ │ │ │ ├── ThreadListAdapter.kt
│ │ │ │ │ ├── ThreadListAdapterCallbacks.kt
│ │ │ │ │ ├── ThreadListDateDisplay.kt
│ │ │ │ │ ├── ThreadListFragment.kt
│ │ │ │ │ ├── ThreadListMultiSelection.kt
│ │ │ │ │ ├── ThreadListViewModel.kt
│ │ │ │ │ ├── TwoPaneFragment.kt
│ │ │ │ │ └── TwoPaneViewModel.kt
│ │ │ │ ├── menuDrawer
│ │ │ │ │ ├── MailboxesAdapter.kt
│ │ │ │ │ ├── MenuDrawerAdapter.kt
│ │ │ │ │ ├── MenuDrawerAdapterCallbacks.kt
│ │ │ │ │ ├── MenuDrawerDropdownView.kt
│ │ │ │ │ ├── MenuDrawerFragment.kt
│ │ │ │ │ ├── MenuDrawerViewModel.kt
│ │ │ │ │ ├── RestoreEmailsBottomSheetDialog.kt
│ │ │ │ │ ├── RestoreEmailsViewModel.kt
│ │ │ │ │ ├── SimpleSettingView.kt
│ │ │ │ │ └── items
│ │ │ │ │ │ ├── ActionViewHolder.kt
│ │ │ │ │ │ ├── ActionsHeaderViewHolder.kt
│ │ │ │ │ │ ├── DividerItemViewHolder.kt
│ │ │ │ │ │ ├── EmptyFoldersViewHolder.kt
│ │ │ │ │ │ ├── FolderViewHolder.kt
│ │ │ │ │ │ ├── FoldersHeaderViewHolder.kt
│ │ │ │ │ │ ├── FooterViewHolder.kt
│ │ │ │ │ │ ├── InvalidMailboxViewHolder.kt
│ │ │ │ │ │ ├── MailboxViewHolder.kt
│ │ │ │ │ │ └── MailboxesHeaderViewHolder.kt
│ │ │ │ ├── move
│ │ │ │ │ ├── MoveAdapter.kt
│ │ │ │ │ ├── MoveFragment.kt
│ │ │ │ │ └── MoveViewModel.kt
│ │ │ │ ├── onboarding
│ │ │ │ │ ├── PermissionsOnboardingFragment.kt
│ │ │ │ │ ├── PermissionsOnboardingPagerFragment.kt
│ │ │ │ │ └── PermissionsPagerAdapter.kt
│ │ │ │ ├── search
│ │ │ │ │ ├── NamedFolder.kt
│ │ │ │ │ ├── RecentSearchAdapter.kt
│ │ │ │ │ ├── SearchFolderAdapter.kt
│ │ │ │ │ ├── SearchFragment.kt
│ │ │ │ │ └── SearchViewModel.kt
│ │ │ │ ├── settings
│ │ │ │ │ ├── AutoAdvanceSettingsFragment.kt
│ │ │ │ │ ├── ItemSettingView.kt
│ │ │ │ │ ├── KSuiteDashboardFragment.kt
│ │ │ │ │ ├── MykSuiteViewModel.kt
│ │ │ │ │ ├── OnCheckListener.kt
│ │ │ │ │ ├── RadioCheckable.kt
│ │ │ │ │ ├── SettingRadioButtonView.kt
│ │ │ │ │ ├── SettingRadioGroupView.kt
│ │ │ │ │ ├── SettingsFragment.kt
│ │ │ │ │ ├── SettingsMailboxesAdapter.kt
│ │ │ │ │ ├── appearance
│ │ │ │ │ │ ├── AccentColorSettingFragment.kt
│ │ │ │ │ │ ├── ThemeSettingFragment.kt
│ │ │ │ │ │ ├── ThreadListDensitySettingFragment.kt
│ │ │ │ │ │ ├── swipe
│ │ │ │ │ │ │ ├── SwipeActionsSelectionSettingFragment.kt
│ │ │ │ │ │ │ └── SwipeActionsSettingsFragment.kt
│ │ │ │ │ │ └── threadMode
│ │ │ │ │ │ │ ├── ThreadModeSettingFragment.kt
│ │ │ │ │ │ │ └── ThreadModeSettingViewModel.kt
│ │ │ │ │ ├── general
│ │ │ │ │ │ └── ExternalContentSettingFragment.kt
│ │ │ │ │ ├── mailbox
│ │ │ │ │ │ ├── AutoReplySettingFragment.kt
│ │ │ │ │ │ ├── MailboxSettingsFragment.kt
│ │ │ │ │ │ ├── SignatureSettingAdapter.kt
│ │ │ │ │ │ ├── SignatureSettingFragment.kt
│ │ │ │ │ │ ├── SignatureSettingViewModel.kt
│ │ │ │ │ │ └── SpamSettingFragment.kt
│ │ │ │ │ ├── privacy
│ │ │ │ │ │ ├── AccountManagementSettingsFragment.kt
│ │ │ │ │ │ ├── AccountManagementSettingsViewModel.kt
│ │ │ │ │ │ ├── DataManagementMatomoSettingFragment.kt
│ │ │ │ │ │ ├── DataManagementSentrySettingFragment.kt
│ │ │ │ │ │ └── DataManagementSettingsFragment.kt
│ │ │ │ │ └── send
│ │ │ │ │ │ ├── CancelDelaySettingFragment.kt
│ │ │ │ │ │ ├── ForwardMailsSettingFragment.kt
│ │ │ │ │ │ └── SendSettingsFragment.kt
│ │ │ │ ├── thread
│ │ │ │ │ ├── AttachmentAdapter.kt
│ │ │ │ │ ├── DetailedContactBottomSheetDialog.kt
│ │ │ │ │ ├── DetailedRecipientAdapter.kt
│ │ │ │ │ ├── MessageAlertView.kt
│ │ │ │ │ ├── MessageBodyScaleListener.kt
│ │ │ │ │ ├── MessageBodyTouchListener.kt
│ │ │ │ │ ├── MessageWebViewClient.kt
│ │ │ │ │ ├── PrintMailFragment.kt
│ │ │ │ │ ├── PrintMailViewModel.kt
│ │ │ │ │ ├── RoundedBackgroundSpan.kt
│ │ │ │ │ ├── SubjectFormatter.kt
│ │ │ │ │ ├── ThreadAdapter.kt
│ │ │ │ │ ├── ThreadFragment.kt
│ │ │ │ │ ├── ThreadState.kt
│ │ │ │ │ ├── ThreadViewModel.kt
│ │ │ │ │ ├── actions
│ │ │ │ │ │ ├── ActionItemView.kt
│ │ │ │ │ │ ├── ActionsBottomSheetDialog.kt
│ │ │ │ │ │ ├── AttachmentActionsBottomSheetDialog.kt
│ │ │ │ │ │ ├── AttachmentActionsViewModel.kt
│ │ │ │ │ │ ├── ConfirmationToBlockUserDialog.kt
│ │ │ │ │ │ ├── DownloadAttachmentProgressDialog.kt
│ │ │ │ │ │ ├── DownloadAttachmentViewModel.kt
│ │ │ │ │ │ ├── DownloadMessagesProgressDialog.kt
│ │ │ │ │ │ ├── DownloadMessagesViewModel.kt
│ │ │ │ │ │ ├── DownloadProgressDialog.kt
│ │ │ │ │ │ ├── JunkBottomSheetDialog.kt
│ │ │ │ │ │ ├── MailActionsBottomSheetDialog.kt
│ │ │ │ │ │ ├── MainActionsView.kt
│ │ │ │ │ │ ├── MessageActionsBottomSheetDialog.kt
│ │ │ │ │ │ ├── MultiSelectBottomSheetDialog.kt
│ │ │ │ │ │ ├── ReplyBottomSheetDialog.kt
│ │ │ │ │ │ ├── ThreadActionsBottomSheetDialog.kt
│ │ │ │ │ │ ├── ThreadActionsViewModel.kt
│ │ │ │ │ │ ├── UserToBlockAdapter.kt
│ │ │ │ │ │ └── UserToBlockBottomSheetDialog.kt
│ │ │ │ │ └── calendar
│ │ │ │ │ │ ├── AttendanceAvatarView.kt
│ │ │ │ │ │ ├── AttendeesAdapter.kt
│ │ │ │ │ │ ├── AttendeesBottomSheetDialog.kt
│ │ │ │ │ │ ├── CalendarEventBannerView.kt
│ │ │ │ │ │ └── ManyAvatarsView.kt
│ │ │ │ └── user
│ │ │ │ │ ├── AttachMailboxFragment.kt
│ │ │ │ │ ├── AttachMailboxViewModel.kt
│ │ │ │ │ ├── SwitchUserAdapter.kt
│ │ │ │ │ └── SwitchUserViewModel.kt
│ │ │ ├── newMessage
│ │ │ │ ├── AiPromptFragment.kt
│ │ │ │ ├── AiPropositionFragment.kt
│ │ │ │ ├── AiSharedData.kt
│ │ │ │ ├── AiViewModel.kt
│ │ │ │ ├── BackspaceAwareChip.kt
│ │ │ │ ├── BackspaceAwareTextInput.kt
│ │ │ │ ├── BodyContentPayload.kt
│ │ │ │ ├── ComposeSubject.kt
│ │ │ │ ├── ContactAdapter.kt
│ │ │ │ ├── ContactChipAdapter.kt
│ │ │ │ ├── EditorContentManager.kt
│ │ │ │ ├── InsertLinkDialog.kt
│ │ │ │ ├── NewMessageActivity.kt
│ │ │ │ ├── NewMessageAiManager.kt
│ │ │ │ ├── NewMessageEditorManager.kt
│ │ │ │ ├── NewMessageExternalsManager.kt
│ │ │ │ ├── NewMessageFragment.kt
│ │ │ │ ├── NewMessageManager.kt
│ │ │ │ ├── NewMessageRecipientFieldsManager.kt
│ │ │ │ ├── NewMessageViewModel.kt
│ │ │ │ ├── RecipientFieldView.kt
│ │ │ │ ├── SignatureAdapter.kt
│ │ │ │ └── ToggleableTextFormatterItemView.kt
│ │ │ ├── noValidMailboxes
│ │ │ │ ├── NoValidMailboxesActivity.kt
│ │ │ │ ├── NoValidMailboxesFragment.kt
│ │ │ │ └── NoValidMailboxesViewModel.kt
│ │ │ └── sync
│ │ │ │ ├── SyncAutoConfigActivity.kt
│ │ │ │ ├── SyncAutoConfigViewModel.kt
│ │ │ │ ├── SyncConfigureFragment.kt
│ │ │ │ ├── SyncOnboardingFragment.kt
│ │ │ │ └── discovery
│ │ │ │ ├── SyncDiscoveryManager.kt
│ │ │ │ ├── SyncDiscoveryRepository.kt
│ │ │ │ └── SyncDiscoveryViewModel.kt
│ │ │ ├── utils
│ │ │ ├── AccountUtils.kt
│ │ │ ├── ApiErrorException.kt
│ │ │ ├── AttachableMimeTypeUtils.kt
│ │ │ ├── ConfettiUtils.kt
│ │ │ ├── ContactUtils.kt
│ │ │ ├── CoroutineScopeUtils.kt
│ │ │ ├── DraftUtils.kt
│ │ │ ├── ErrorCode.kt
│ │ │ ├── ExternalUtils.kt
│ │ │ ├── FetchMessagesManager.kt
│ │ │ ├── HtmlFormatter.kt
│ │ │ ├── HtmlUtils.kt
│ │ │ ├── IRegisterFirebaseBroadcastReceiver.kt
│ │ │ ├── JsoupParserUtil.kt
│ │ │ ├── LocalStorageUtils.kt
│ │ │ ├── LoginUtils.kt
│ │ │ ├── LogoutUser.kt
│ │ │ ├── MessageBodyUtils.kt
│ │ │ ├── MyKSuiteDataUtils.kt
│ │ │ ├── MyKSuiteNavUtils.kt
│ │ │ ├── NotificationPayload.kt
│ │ │ ├── NotificationUtils.kt
│ │ │ ├── PermissionUtils.kt
│ │ │ ├── PlayServicesUtils.kt
│ │ │ ├── PrintHeaderUtils.kt
│ │ │ ├── RealmChangesBinding.kt
│ │ │ ├── SaveOnKDriveUtils.kt
│ │ │ ├── SearchUtils.kt
│ │ │ ├── SentryDebug.kt
│ │ │ ├── SharedUtils.kt
│ │ │ ├── SignatureUtils.kt
│ │ │ ├── SimpleIconPopupMenu.kt
│ │ │ ├── UiUtils.kt
│ │ │ ├── UnreadDisplay.kt
│ │ │ ├── Utils.kt
│ │ │ ├── WebViewUtils.kt
│ │ │ ├── WebViewVersionUtils.kt
│ │ │ ├── WorkerUtils.kt
│ │ │ ├── date
│ │ │ │ ├── DateFormatUtils.kt
│ │ │ │ └── MailDateFormatUtils.kt
│ │ │ └── extensions
│ │ │ │ ├── AttachmentExt.kt
│ │ │ │ ├── ConfirmationPopupExt.kt
│ │ │ │ ├── Extensions.kt
│ │ │ │ ├── NavigationExt.kt
│ │ │ │ ├── RealmExt.kt
│ │ │ │ └── WindowInsetsExt.kt
│ │ │ ├── views
│ │ │ ├── AttachmentDetailsView.kt
│ │ │ ├── AvatarView.kt
│ │ │ ├── BottomQuickActionBarView.kt
│ │ │ ├── BottomSheetScaffoldingView.kt
│ │ │ ├── CollapsableItem.kt
│ │ │ ├── InformationBlockView.kt
│ │ │ └── itemViews
│ │ │ │ ├── AvatarMergedContactData.kt
│ │ │ │ ├── BannerWithActionView.kt
│ │ │ │ ├── DecoratedItemView.kt
│ │ │ │ ├── IndentableFolder.kt
│ │ │ │ ├── InvalidMailboxItemView.kt
│ │ │ │ ├── MyKSuiteStorageBanner.kt
│ │ │ │ ├── SelectableFolderItemView.kt
│ │ │ │ ├── SelectableItemView.kt
│ │ │ │ ├── SelectableMailboxItemView.kt
│ │ │ │ ├── SimpleMenuDrawerItemView.kt
│ │ │ │ ├── UnreadFolderItemView.kt
│ │ │ │ ├── UnreadItemView.kt
│ │ │ │ └── UnreadMailboxItemView.kt
│ │ │ └── workers
│ │ │ ├── BaseCoroutineWorker.kt
│ │ │ ├── BaseProcessMessageNotificationsWorker.kt
│ │ │ ├── DraftsActionsWorker.kt
│ │ │ └── SyncMailboxesWorker.kt
│ └── res
│ │ ├── anim
│ │ ├── fast_out_extra_slow_in.xml
│ │ ├── fragment_swipe_enter.xml
│ │ ├── fragment_swipe_exit.xml
│ │ ├── fragment_swipe_pop_enter.xml
│ │ └── fragment_swipe_pop_exit.xml
│ │ ├── color-night
│ │ └── onboarding_secondary_background.xml
│ │ ├── color
│ │ ├── button_calendar_participation_stroke_color.xml
│ │ ├── button_toggle_background.xml
│ │ ├── chip_contact_background_color.xml
│ │ ├── chip_contact_background_color_external.xml
│ │ ├── chip_contact_text_color.xml
│ │ ├── chip_contact_text_color_external.xml
│ │ ├── chip_unread_background.xml
│ │ ├── chip_unread_text_color.xml
│ │ ├── color_ai_translucent_ripple.xml
│ │ ├── color_primary_translucent_ripple.xml
│ │ ├── color_primary_translucent_text_highlight.xml
│ │ ├── editor_button_background.xml
│ │ ├── header_color_light.xml
│ │ ├── icon_button_disabled.xml
│ │ ├── icon_button_primary_color.xml
│ │ ├── on_primary_color_disabled.xml
│ │ ├── onboarding_secondary_background.xml
│ │ ├── primary_color_disabled.xml
│ │ ├── primary_text_color_disabled.xml
│ │ ├── ripple_color_alert_view.xml
│ │ └── text_input_layout_box_color.xml
│ │ ├── drawable-hdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-mdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-night-hdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-night-mdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-night-xhdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-night-xxhdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-night-xxxhdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-night
│ │ ├── bg_list_density_compact.xml
│ │ ├── bg_list_density_default.xml
│ │ ├── bg_list_density_large.xml
│ │ ├── ic_empty_state_folder.xml
│ │ ├── ic_empty_state_inbox.xml
│ │ ├── ic_empty_state_network.xml
│ │ ├── ic_empty_state_search.xml
│ │ ├── ic_empty_state_tablet.xml
│ │ ├── ic_empty_state_trash.xml
│ │ ├── ic_invalid_mailbox.xml
│ │ ├── ic_logo_infomaniak_mail.xml
│ │ ├── ic_matomo.xml
│ │ ├── ic_matomo_text.xml
│ │ ├── ic_sentry.xml
│ │ ├── ic_sentry_text.xml
│ │ ├── ic_swipe_left_long.xml
│ │ ├── ic_swipe_right_long.xml
│ │ ├── ic_update_logo.xml
│ │ ├── illu_update_required.xml
│ │ ├── illustration_data_management_paper.xml
│ │ ├── illustration_discover_ai.xml
│ │ ├── illustration_discover_sync.xml
│ │ ├── illustration_onboarding_contacts.xml
│ │ ├── illustration_onboarding_contacts_blue.xml
│ │ ├── illustration_onboarding_contacts_material.xml
│ │ ├── illustration_onboarding_notifications.xml
│ │ ├── illustration_onboarding_notifications_blue.xml
│ │ ├── illustration_onboarding_notifications_material.xml
│ │ ├── new_account_illustration_blue.xml
│ │ ├── new_account_illustration_material.xml
│ │ └── new_account_illustration_pink.xml
│ │ ├── drawable-xhdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-xxhdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable-xxxhdpi
│ │ └── splashscreen_icon_legacy.png
│ │ ├── drawable
│ │ ├── ai_proposition_loader_gradient.xml
│ │ ├── background_rounded.xml
│ │ ├── bg_list_density_compact.xml
│ │ ├── bg_list_density_default.xml
│ │ ├── bg_list_density_large.xml
│ │ ├── bottom_sheet_drag_handle.xml
│ │ ├── checkable_button_ripple_drawable.xml
│ │ ├── divider.xml
│ │ ├── ic_accent_blue.xml
│ │ ├── ic_accent_pink.xml
│ │ ├── ic_add.xml
│ │ ├── ic_add_circle.xml
│ │ ├── ic_add_circle_thin.xml
│ │ ├── ic_add_thin.xml
│ │ ├── ic_afternoon_schedule.xml
│ │ ├── ic_ai_amical.xml
│ │ ├── ic_ai_engine_falcon.xml
│ │ ├── ic_ai_formal.xml
│ │ ├── ic_ai_lengthen.xml
│ │ ├── ic_ai_magic_wand.xml
│ │ ├── ic_ai_regenerate.xml
│ │ ├── ic_ai_shorten.xml
│ │ ├── ic_alarm_clock.xml
│ │ ├── ic_alarm_clock_filled.xml
│ │ ├── ic_alarm_clock_thick.xml
│ │ ├── ic_all_folders.xml
│ │ ├── ic_app_update.xml
│ │ ├── ic_archive_folder.xml
│ │ ├── ic_arrow_return.xml
│ │ ├── ic_arrow_right.xml
│ │ ├── ic_attachment.xml
│ │ ├── ic_auto_advance_arrow_down.xml
│ │ ├── ic_auto_advance_arrow_up.xml
│ │ ├── ic_auto_advance_last_action.xml
│ │ ├── ic_auto_advance_list_conversation.xml
│ │ ├── ic_back_wave_1.xml
│ │ ├── ic_back_wave_2.xml
│ │ ├── ic_back_wave_3.xml
│ │ ├── ic_back_wave_4.xml
│ │ ├── ic_back_wave_sync.xml
│ │ ├── ic_bin.xml
│ │ ├── ic_burger.xml
│ │ ├── ic_calendar.xml
│ │ ├── ic_calendar_date_hour.xml
│ │ ├── ic_calendar_infomaniak.xml
│ │ ├── ic_calendar_maybe.xml
│ │ ├── ic_calendar_no.xml
│ │ ├── ic_calendar_participants_chevron.xml
│ │ ├── ic_certified.xml
│ │ ├── ic_check.xml
│ │ ├── ic_check_rounded.xml
│ │ ├── ic_check_sharp.xml
│ │ ├── ic_checkbox_unchecked.xml
│ │ ├── ic_chevron_down.xml
│ │ ├── ic_chevron_left.xml
│ │ ├── ic_chevron_right.xml
│ │ ├── ic_chevron_up.xml
│ │ ├── ic_circle_cross.xml
│ │ ├── ic_close_big.xml
│ │ ├── ic_close_search.xml
│ │ ├── ic_close_small.xml
│ │ ├── ic_cog.xml
│ │ ├── ic_contact_action_add_user.xml
│ │ ├── ic_contact_action_copy.xml
│ │ ├── ic_contact_action_write.xml
│ │ ├── ic_convert_mail_quota.xml
│ │ ├── ic_draft.xml
│ │ ├── ic_drawer_download.xml
│ │ ├── ic_drawer_inbox.xml
│ │ ├── ic_editor_bold.xml
│ │ ├── ic_editor_camera.xml
│ │ ├── ic_editor_clock.xml
│ │ ├── ic_editor_clock_small.xml
│ │ ├── ic_editor_clock_thick.xml
│ │ ├── ic_editor_italic.xml
│ │ ├── ic_editor_link.xml
│ │ ├── ic_editor_list.xml
│ │ ├── ic_editor_strikethrough.xml
│ │ ├── ic_editor_text_options.xml
│ │ ├── ic_editor_underline.xml
│ │ ├── ic_email_action_block_user.xml
│ │ ├── ic_email_action_forward_filled.xml
│ │ ├── ic_email_action_move.xml
│ │ ├── ic_email_action_open_in.xml
│ │ ├── ic_email_action_phishing.xml
│ │ ├── ic_email_action_print.xml
│ │ ├── ic_email_action_reply.xml
│ │ ├── ic_email_action_reply_filled.xml
│ │ ├── ic_email_action_reply_to_all.xml
│ │ ├── ic_email_action_send.xml
│ │ ├── ic_email_action_share.xml
│ │ ├── ic_empty_state_folder.xml
│ │ ├── ic_empty_state_inbox.xml
│ │ ├── ic_empty_state_network.xml
│ │ ├── ic_empty_state_search.xml
│ │ ├── ic_empty_state_tablet.xml
│ │ ├── ic_empty_state_trash.xml
│ │ ├── ic_envelope.xml
│ │ ├── ic_envelope_open.xml
│ │ ├── ic_evening_schedule.xml
│ │ ├── ic_external_information.xml
│ │ ├── ic_feedback.xml
│ │ ├── ic_feedbacks.xml
│ │ ├── ic_file_audio.xml
│ │ ├── ic_file_calendar.xml
│ │ ├── ic_file_code.xml
│ │ ├── ic_file_font.xml
│ │ ├── ic_file_image.xml
│ │ ├── ic_file_office_graph.xml
│ │ ├── ic_file_office_sheet.xml
│ │ ├── ic_file_pdf.xml
│ │ ├── ic_file_text.xml
│ │ ├── ic_file_unknown.xml
│ │ ├── ic_file_vcard.xml
│ │ ├── ic_file_video.xml
│ │ ├── ic_file_zip.xml
│ │ ├── ic_folder.xml
│ │ ├── ic_folder_add.xml
│ │ ├── ic_folder_star.xml
│ │ ├── ic_help.xml
│ │ ├── ic_import.xml
│ │ ├── ic_invalid_mailbox.xml
│ │ ├── ic_kdrive.xml
│ │ ├── ic_last_schedule_selected.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── ic_launcher_foreground.xml
│ │ ├── ic_launcher_monochrome.xml
│ │ ├── ic_location_pin.xml
│ │ ├── ic_logo_infomaniak_mail.xml
│ │ ├── ic_logo_ksync.xml
│ │ ├── ic_logo_notification.xml
│ │ ├── ic_logout.xml
│ │ ├── ic_matomo.xml
│ │ ├── ic_matomo_text.xml
│ │ ├── ic_message_alert_distant_images.xml
│ │ ├── ic_morning_schedule.xml
│ │ ├── ic_morning_sunrise_schedule.xml
│ │ ├── ic_navigation_default.xml
│ │ ├── ic_no_network.xml
│ │ ├── ic_non_spam.xml
│ │ ├── ic_open_external.xml
│ │ ├── ic_open_with.xml
│ │ ├── ic_param_dots.xml
│ │ ├── ic_password_eye.xml
│ │ ├── ic_pastille.xml
│ │ ├── ic_pen.xml
│ │ ├── ic_pencil.xml
│ │ ├── ic_pending_messages.xml
│ │ ├── ic_promotions.xml
│ │ ├── ic_report_junk.xml
│ │ ├── ic_restore_arrow.xml
│ │ ├── ic_schedule_send.xml
│ │ ├── ic_search_big.xml
│ │ ├── ic_search_small.xml
│ │ ├── ic_send.xml
│ │ ├── ic_sentry.xml
│ │ ├── ic_sentry_text.xml
│ │ ├── ic_shortcut_help_foreground.xml
│ │ ├── ic_shortcut_new_message_foreground.xml
│ │ ├── ic_shortcut_search_foreground.xml
│ │ ├── ic_social_media.xml
│ │ ├── ic_spam.xml
│ │ ├── ic_star.xml
│ │ ├── ic_star_filled.xml
│ │ ├── ic_swipe_left_long.xml
│ │ ├── ic_swipe_right_long.xml
│ │ ├── ic_synchronize.xml
│ │ ├── ic_theme_dark.xml
│ │ ├── ic_theme_light.xml
│ │ ├── ic_theme_system.xml
│ │ ├── ic_thread_mode_conversation.xml
│ │ ├── ic_thread_mode_message.xml
│ │ ├── ic_unknown_user_avatar.xml
│ │ ├── ic_unstar.xml
│ │ ├── ic_update_logo.xml
│ │ ├── ic_user_setting.xml
│ │ ├── ic_user_swap.xml
│ │ ├── ic_view_in_light.xml
│ │ ├── ic_warning.xml
│ │ ├── ic_warning_big.xml
│ │ ├── illu_update_required.xml
│ │ ├── illustration_data_management_paper.xml
│ │ ├── illustration_discover_ai.xml
│ │ ├── illustration_discover_sync.xml
│ │ ├── illustration_onboarding_contacts.xml
│ │ ├── illustration_onboarding_contacts_blue.xml
│ │ ├── illustration_onboarding_contacts_material.xml
│ │ ├── illustration_onboarding_notifications.xml
│ │ ├── illustration_onboarding_notifications_blue.xml
│ │ ├── illustration_onboarding_notifications_material.xml
│ │ ├── indicator_full_tab.xml
│ │ ├── new_account_illustration_blue.xml
│ │ ├── new_account_illustration_material.xml
│ │ ├── new_account_illustration_pink.xml
│ │ ├── spacer_standard_medium.xml
│ │ ├── splashscreen_animated_icon.xml
│ │ └── splashscreen_legacy.xml
│ │ ├── font-v26
│ │ └── tag_font.xml
│ │ ├── font
│ │ └── tag_font.xml
│ │ ├── layout
│ │ ├── activity_login.xml
│ │ ├── activity_main.xml
│ │ ├── activity_new_message.xml
│ │ ├── activity_no_mailbox.xml
│ │ ├── activity_no_valid_mailboxes.xml
│ │ ├── activity_sync_auto_config.xml
│ │ ├── bottom_sheet_account.xml
│ │ ├── bottom_sheet_actions_menu.xml
│ │ ├── bottom_sheet_attachment_actions.xml
│ │ ├── bottom_sheet_attendees.xml
│ │ ├── bottom_sheet_detailed_contact.xml
│ │ ├── bottom_sheet_information.xml
│ │ ├── bottom_sheet_junk.xml
│ │ ├── bottom_sheet_multi_select.xml
│ │ ├── bottom_sheet_reply.xml
│ │ ├── bottom_sheet_restore_emails.xml
│ │ ├── bottom_sheet_schedule_options.xml
│ │ ├── bottom_sheet_user_to_block.xml
│ │ ├── cardview_thread_item.xml
│ │ ├── chip_contact.xml
│ │ ├── dialog_ai_replace_content.xml
│ │ ├── dialog_confirm_scheduled_draft_modification.xml
│ │ ├── dialog_confirmation_to_block_user.xml
│ │ ├── dialog_description.xml
│ │ ├── dialog_download_progress.xml
│ │ ├── dialog_input.xml
│ │ ├── dialog_insert_link.xml
│ │ ├── dialog_link_contextual_menu.xml
│ │ ├── dialog_select_date_and_time.xml
│ │ ├── fragment_accent_color_setting.xml
│ │ ├── fragment_account_management_settings.xml
│ │ ├── fragment_ai_prompt.xml
│ │ ├── fragment_ai_proposition.xml
│ │ ├── fragment_attach_mailbox.xml
│ │ ├── fragment_auto_advance_settings.xml
│ │ ├── fragment_auto_reply_settings.xml
│ │ ├── fragment_cancel_delay_setting.xml
│ │ ├── fragment_contact.xml
│ │ ├── fragment_data_management_matomo_setting.xml
│ │ ├── fragment_data_management_sentry_setting.xml
│ │ ├── fragment_data_management_settings.xml
│ │ ├── fragment_external_content_setting.xml
│ │ ├── fragment_forward_mails_setting.xml
│ │ ├── fragment_intro.xml
│ │ ├── fragment_invalid_password.xml
│ │ ├── fragment_login.xml
│ │ ├── fragment_mailbox_settings.xml
│ │ ├── fragment_menu_drawer.xml
│ │ ├── fragment_move.xml
│ │ ├── fragment_new_account.xml
│ │ ├── fragment_new_message.xml
│ │ ├── fragment_no_valid_mailboxes.xml
│ │ ├── fragment_permissions_onboarding.xml
│ │ ├── fragment_permissions_onboarding_pager.xml
│ │ ├── fragment_print_mail.xml
│ │ ├── fragment_search.xml
│ │ ├── fragment_send_settings.xml
│ │ ├── fragment_settings.xml
│ │ ├── fragment_signature_setting.xml
│ │ ├── fragment_spam_settings.xml
│ │ ├── fragment_swipe_actions_selection_setting.xml
│ │ ├── fragment_swipe_actions_settings.xml
│ │ ├── fragment_sync_configure.xml
│ │ ├── fragment_sync_onboarding.xml
│ │ ├── fragment_theme_setting.xml
│ │ ├── fragment_thread.xml
│ │ ├── fragment_thread_list.xml
│ │ ├── fragment_thread_list_density_setting.xml
│ │ ├── fragment_thread_mode_setting.xml
│ │ ├── item_attachment.xml
│ │ ├── item_attendee_avatar_name_email.xml
│ │ ├── item_banner_with_action_view.xml
│ │ ├── item_bottom_sheet_action.xml
│ │ ├── item_contact.xml
│ │ ├── item_detailed_contact.xml
│ │ ├── item_divider_horizontal.xml
│ │ ├── item_invalid_mailbox.xml
│ │ ├── item_menu_drawer.xml
│ │ ├── item_menu_drawer_action.xml
│ │ ├── item_menu_drawer_actions_header.xml
│ │ ├── item_menu_drawer_custom_folders_header.xml
│ │ ├── item_menu_drawer_divider.xml
│ │ ├── item_menu_drawer_empty_custom_folders.xml
│ │ ├── item_menu_drawer_folder.xml
│ │ ├── item_menu_drawer_footer.xml
│ │ ├── item_menu_drawer_mailbox.xml
│ │ ├── item_menu_drawer_mailboxes_header.xml
│ │ ├── item_message.xml
│ │ ├── item_recent_search.xml
│ │ ├── item_search_folder.xml
│ │ ├── item_search_view.xml
│ │ ├── item_selectable_folder.xml
│ │ ├── item_selectable_mailbox.xml
│ │ ├── item_settings_mailbox.xml
│ │ ├── item_settings_signature.xml
│ │ ├── item_signature.xml
│ │ ├── item_super_collapsed_block.xml
│ │ ├── item_switch_user_account.xml
│ │ ├── item_thread_date_separator.xml
│ │ ├── item_thread_load_more_button.xml
│ │ ├── item_toggleable_text_formatter.xml
│ │ ├── layout_attachments.xml
│ │ ├── new_account_storage_chips.xml
│ │ ├── swipe_illustration_content.xml
│ │ ├── swipe_left_illustration.xml
│ │ ├── swipe_right_illustration.xml
│ │ ├── view_attachment_details.xml
│ │ ├── view_attendance_avatar.xml
│ │ ├── view_avatar.xml
│ │ ├── view_avatar_name_email.xml
│ │ ├── view_banner_my_ksuite_storage.xml
│ │ ├── view_banner_with_action.xml
│ │ ├── view_bottom_quick_action_bar.xml
│ │ ├── view_bottom_sheet_scaffolding.xml
│ │ ├── view_bottom_sheet_separator.xml
│ │ ├── view_calendar_event_banner.xml
│ │ ├── view_contact_chip_context_menu.xml
│ │ ├── view_decorated_text_item.xml
│ │ ├── view_empty_state.xml
│ │ ├── view_information_block.xml
│ │ ├── view_item_setting.xml
│ │ ├── view_main_actions.xml
│ │ ├── view_many_avatars.xml
│ │ ├── view_menu_drawer_dropdown.xml
│ │ ├── view_message_alert.xml
│ │ ├── view_recipient_field.xml
│ │ ├── view_setting_radio_button.xml
│ │ └── view_simple_setting.xml
│ │ ├── menu
│ │ ├── ai_refining_options.xml
│ │ ├── main_actions_multi_select_menu.xml
│ │ ├── main_actions_reply_menu.xml
│ │ ├── main_actions_thread_message_menu.xml
│ │ ├── message_menu.xml
│ │ ├── multiselection_menu.xml
│ │ ├── new_message_menu.xml
│ │ └── scheduled_draft_menu.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ ├── ic_launcher_round.xml
│ │ ├── ic_shortcut_help.xml
│ │ ├── ic_shortcut_help_round.xml
│ │ ├── ic_shortcut_new_message.xml
│ │ ├── ic_shortcut_new_message_round.xml
│ │ ├── ic_shortcut_search.xml
│ │ └── ic_shortcut_search_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_round.webp
│ │ ├── ic_shortcut_help.webp
│ │ ├── ic_shortcut_help_round.webp
│ │ ├── ic_shortcut_new_message.webp
│ │ ├── ic_shortcut_new_message_round.webp
│ │ ├── ic_shortcut_search.webp
│ │ └── ic_shortcut_search_round.webp
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_round.webp
│ │ ├── ic_shortcut_help.webp
│ │ ├── ic_shortcut_help_round.webp
│ │ ├── ic_shortcut_new_message.webp
│ │ ├── ic_shortcut_new_message_round.webp
│ │ ├── ic_shortcut_search.webp
│ │ └── ic_shortcut_search_round.webp
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_round.webp
│ │ ├── ic_shortcut_help.webp
│ │ ├── ic_shortcut_help_round.webp
│ │ ├── ic_shortcut_new_message.webp
│ │ ├── ic_shortcut_new_message_round.webp
│ │ ├── ic_shortcut_search.webp
│ │ └── ic_shortcut_search_round.webp
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_round.webp
│ │ ├── ic_shortcut_help.webp
│ │ ├── ic_shortcut_help_round.webp
│ │ ├── ic_shortcut_new_message.webp
│ │ ├── ic_shortcut_new_message_round.webp
│ │ ├── ic_shortcut_search.webp
│ │ └── ic_shortcut_search_round.webp
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_round.webp
│ │ ├── ic_shortcut_help.webp
│ │ ├── ic_shortcut_help_round.webp
│ │ ├── ic_shortcut_new_message.webp
│ │ ├── ic_shortcut_new_message_round.webp
│ │ ├── ic_shortcut_search.webp
│ │ └── ic_shortcut_search_round.webp
│ │ ├── navigation
│ │ ├── login_navigation.xml
│ │ ├── main_navigation.xml
│ │ ├── new_message_navigation.xml
│ │ ├── no_valid_mailboxes_navigation.xml
│ │ └── sync_auto_config_navigation.xml
│ │ ├── raw
│ │ ├── custom_dark_mode.css
│ │ ├── easter_egg_halloween.json
│ │ ├── easter_egg_xmas.json
│ │ ├── editor_style.css
│ │ ├── fix_email_style.js
│ │ ├── illustration_no_mailbox.json
│ │ ├── illustration_onboarding_1.json
│ │ ├── illustration_onboarding_2.json
│ │ ├── illustration_onboarding_3.json
│ │ ├── illustration_onboarding_4.json
│ │ ├── improve_rendering.css
│ │ ├── javascript_bridge.js
│ │ ├── munge_email.js
│ │ ├── print_email.css
│ │ ├── signature_margins.css
│ │ └── style.css
│ │ ├── resources.properties
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-es
│ │ └── strings.xml
│ │ ├── values-fr
│ │ └── strings.xml
│ │ ├── values-it
│ │ └── strings.xml
│ │ ├── values-night-v27
│ │ └── themes.xml
│ │ ├── values-night
│ │ ├── colors.xml
│ │ └── themes.xml
│ │ ├── values-sw600dp-w840dp
│ │ └── constants.xml
│ │ ├── values-sw600dp
│ │ └── constants.xml
│ │ ├── values-v27
│ │ ├── styles.xml
│ │ └── themes.xml
│ │ ├── values-v31
│ │ └── themes.xml
│ │ ├── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── constants.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ ├── styles.xml
│ │ └── themes.xml
│ │ └── xml
│ │ ├── data_extraction_rules.xml
│ │ ├── exposed_files_path.xml
│ │ ├── locales_config.xml
│ │ ├── network_security_config.xml
│ │ └── shortcuts.xml
│ ├── standard
│ ├── AndroidManifest.xml
│ └── java
│ │ └── com
│ │ └── infomaniak
│ │ └── mail
│ │ ├── StandardMainApplication.kt
│ │ ├── StandardPlayServicesUtils.kt
│ │ ├── di
│ │ ├── StandardEntryPoint.kt
│ │ └── StandardModule.kt
│ │ └── firebase
│ │ ├── FirebaseApiRepository.kt
│ │ ├── KMailFirebaseMessagingService.kt
│ │ ├── ProcessMessageNotificationsWorker.kt
│ │ ├── RegisterFirebaseBroadcastReceiver.kt
│ │ ├── RegisterUserDeviceWorker.kt
│ │ └── RegistrationInfo.kt
│ └── test
│ └── java
│ └── com
│ └── infomaniak
│ └── mail
│ ├── AppVersionCheckingTest.kt
│ ├── CalendarEventResponseTest.kt
│ └── ExampleUnitTest.kt
├── build.gradle.kts
├── fastlane
└── metadata
│ └── android
│ ├── de
│ ├── full_description.txt
│ ├── images
│ │ └── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ ├── 6.png
│ │ │ └── 7.png
│ └── short_description.txt
│ ├── en-US
│ ├── changelogs
│ │ ├── 1_03_001_01.txt
│ │ ├── 1_03_002_01.txt
│ │ ├── 1_03_003_01.txt
│ │ ├── 1_03_004_01.txt
│ │ ├── 1_03_005_01.txt
│ │ ├── 1_03_006_01.txt
│ │ ├── 1_04_000_01.txt
│ │ ├── 1_04_001_01.txt
│ │ ├── 1_04_002_01.txt
│ │ ├── 1_04_003_01.txt
│ │ ├── 1_04_004_01.txt
│ │ ├── 1_04_005_01.txt
│ │ ├── 1_04_006_01.txt
│ │ ├── 1_04_007_01.txt
│ │ ├── 1_04_008_01.txt
│ │ ├── 1_04_009_01.txt
│ │ ├── 1_05_000_01.txt
│ │ ├── 1_05_001_01.txt
│ │ ├── 1_06_000_01.txt
│ │ ├── 1_06_001_01.txt
│ │ ├── 1_06_002_01.txt
│ │ ├── 1_06_003_01.txt
│ │ ├── 1_06_004_01.txt
│ │ ├── 1_06_005_01.txt
│ │ ├── 1_06_006_01.txt
│ │ ├── 1_06_007_01.txt
│ │ ├── 1_06_008_01.txt
│ │ ├── 1_06_009_01.txt
│ │ ├── 1_07_000_01.txt
│ │ ├── 1_07_001_01.txt
│ │ ├── 1_07_002_01.txt
│ │ ├── 1_08_000_01.txt
│ │ ├── 1_08_001_01.txt
│ │ ├── 1_09_000_01.txt
│ │ ├── 1_09_001_01.txt
│ │ ├── 1_10_000_01.txt
│ │ ├── 1_10_001_01.txt
│ │ ├── 1_10_002_01.txt
│ │ ├── 1_10_003_01.txt
│ │ ├── 1_10_004_01.txt
│ │ ├── 1_11_000_01.txt
│ │ ├── 1_11_001_01.txt
│ │ ├── 1_11_002_01.txt
│ │ ├── 1_11_003_01.txt
│ │ ├── 1_11_004_01.txt
│ │ └── 1_11_005_01.txt
│ ├── full_description.txt
│ ├── images
│ │ ├── featureGraphic.png
│ │ ├── icon.png
│ │ └── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ ├── 6.png
│ │ │ └── 7.png
│ ├── short_description.txt
│ └── title.txt
│ ├── fr
│ ├── changelogs
│ │ ├── 1_03_001_01.txt
│ │ ├── 1_03_002_01.txt
│ │ ├── 1_03_003_01.txt
│ │ ├── 1_03_004_01.txt
│ │ ├── 1_03_005_01.txt
│ │ ├── 1_03_006_01.txt
│ │ ├── 1_04_000_01.txt
│ │ ├── 1_04_001_01.txt
│ │ ├── 1_04_002_01.txt
│ │ ├── 1_04_003_01.txt
│ │ ├── 1_04_004_01.txt
│ │ ├── 1_04_005_01.txt
│ │ ├── 1_04_006_01.txt
│ │ ├── 1_04_007_01.txt
│ │ ├── 1_04_008_01.txt
│ │ ├── 1_04_009_01.txt
│ │ ├── 1_05_000_01.txt
│ │ ├── 1_05_001_01.txt
│ │ ├── 1_06_000_01.txt
│ │ ├── 1_06_001_01.txt
│ │ ├── 1_06_002_01.txt
│ │ ├── 1_06_003_01.txt
│ │ ├── 1_06_004_01.txt
│ │ ├── 1_06_005_01.txt
│ │ ├── 1_06_006_01.txt
│ │ ├── 1_06_007_01.txt
│ │ ├── 1_06_008_01.txt
│ │ ├── 1_06_009_01.txt
│ │ ├── 1_07_000_01.txt
│ │ ├── 1_07_001_01.txt
│ │ ├── 1_07_002_01.txt
│ │ ├── 1_08_000_01.txt
│ │ ├── 1_08_001_01.txt
│ │ ├── 1_09_000_01.txt
│ │ ├── 1_09_001_01.txt
│ │ ├── 1_10_000_01.txt
│ │ ├── 1_10_001_01.txt
│ │ ├── 1_10_002_01.txt
│ │ ├── 1_10_003_01.txt
│ │ ├── 1_10_004_01.txt
│ │ ├── 1_11_000_01.txt
│ │ ├── 1_11_001_01.txt
│ │ ├── 1_11_002_01.txt
│ │ ├── 1_11_003_01.txt
│ │ ├── 1_11_004_01.txt
│ │ └── 1_11_005_01.txt
│ ├── full_description.txt
│ ├── images
│ │ └── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ ├── 6.png
│ │ │ └── 7.png
│ └── short_description.txt
│ ├── it
│ ├── full_description.txt
│ ├── images
│ │ └── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ ├── 6.png
│ │ │ └── 7.png
│ └── short_description.txt
│ └── sp
│ ├── full_description.txt
│ ├── images
│ └── phoneScreenshots
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ └── 7.png
│ └── short_description.txt
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | *Note: Please write your issue only in english*
11 |
12 | **Description**
13 | A clear and concise description of what the bug is.
14 |
15 | **Steps to reproduce**
16 | Steps to reproduce the behavior:
17 | 1. Go to '...'
18 | 2. Click on '....'
19 | 3. Scroll down to '....'
20 | 4. See error
21 |
22 | **Expected behavior**
23 | A clear and concise description of what you expected to happen.
24 |
25 | **Screenshots**
26 | If applicable, add screenshots to help explain your problem.
27 |
28 | **Smartphone (please complete the following information):**
29 | - Device: [e.g. Samsung S20 Ultra 5G]
30 | - Android version: [e.g. Android 11]
31 | - App version: [e.g. 4.0.1]
32 |
33 | **Additional context**
34 | Add any other context about the problem here.
35 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | *Note: Please write your issue only in english*
11 |
12 | **Is your feature request related to a problem? Please describe.**
13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14 |
15 | **Describe the solution you'd like**
16 | A clear and concise description of what you want to happen.
17 |
18 | **Describe alternatives you've considered**
19 | A clear and concise description of any alternative solutions or features you've considered.
20 |
21 | **Additional context**
22 | Add any other context or screenshots about the feature request here.
23 |
--------------------------------------------------------------------------------
/.github/workflows/android.yml:
--------------------------------------------------------------------------------
1 | name: Android CI
2 |
3 | on:
4 | pull_request:
5 |
6 | concurrency:
7 | group: ${{ github.head_ref }}
8 | cancel-in-progress: true
9 |
10 | jobs:
11 |
12 | instrumentation-tests:
13 | if: github.event.pull_request.draft == false
14 | runs-on: [ self-hosted, Android ]
15 | strategy:
16 | matrix:
17 | api-level: [ 34 ]
18 | target: [ google_apis ]
19 |
20 | steps:
21 | - name: Cancel Previous Runs
22 | uses: styfle/cancel-workflow-action@0.12.1
23 | with:
24 | access_token: ${{ github.token }}
25 |
26 | - name: Checkout the code
27 | uses: actions/checkout@v4.1.1
28 | with:
29 | token: ${{ github.token }}
30 | submodules: recursive
31 |
32 | # Setup Gradle and run Build
33 | - name: Grant execute permission for gradlew
34 | run: chmod +x gradlew
35 |
36 | - name: Clean gradle cache
37 | run: ./gradlew clean
38 |
39 | - name: Build with Gradle
40 | run: ./gradlew build
41 |
42 | # Run tests
43 | - name: Run Unit tests
44 | run: ./gradlew testDebugUnitTest --stacktrace
45 |
--------------------------------------------------------------------------------
/.github/workflows/auto-author-assign.yml:
--------------------------------------------------------------------------------
1 | name: Auto Author Assign
2 |
3 | on:
4 | pull_request_target:
5 | types: [ opened, reopened ]
6 |
7 | permissions:
8 | pull-requests: write
9 |
10 | jobs:
11 | assign-author:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: toshimaru/auto-author-assign@v2.1.0
15 |
--------------------------------------------------------------------------------
/.github/workflows/dependent-issues.yml:
--------------------------------------------------------------------------------
1 | name: Dependent Issues
2 |
3 | on:
4 | issues:
5 | types:
6 | - opened
7 | - edited
8 | - closed
9 | - reopened
10 | pull_request_target:
11 | types:
12 | - opened
13 | - edited
14 | - closed
15 | - reopened
16 | # Makes sure we always add status check for PRs. Useful only if
17 | # this action is required to pass before merging. Otherwise, it
18 | # can be removed.
19 | - synchronize
20 |
21 | jobs:
22 | check:
23 | runs-on: ubuntu-latest
24 | steps:
25 | - uses: z0al/dependent-issues@v1.5.2
26 | env:
27 | # (Required) The token to use to make API calls to GitHub.
28 | GITHUB_TOKEN: ${{ github.token }}
29 |
--------------------------------------------------------------------------------
/.github/workflows/semantic-commit.yml:
--------------------------------------------------------------------------------
1 | name: 'PR and Commit Message Check'
2 | on:
3 | pull_request_target:
4 | types:
5 | - opened
6 | - edited
7 | - reopened
8 | - synchronize
9 |
10 | jobs:
11 | check-commit-message:
12 | name: Check Commit Message
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: Check Commit Message
16 | uses: gsactions/commit-message-checker@v2
17 | with:
18 | pattern: '^Merge .+|(^(feat|fix|chore|docs|style|refactor|perf|ci|test)(\(.+\))?: [A-Z0-9].+)'
19 | error: 'Commit messages and PR title should match conventional commit convention and start with an uppercase.'
20 | excludeDescription: 'true'
21 | excludeTitle: 'false'
22 | checkAllCommitMessages: 'true'
23 | accessToken: ${{ secrets.GITHUB_TOKEN }}
24 |
--------------------------------------------------------------------------------
/.github/workflows/sentry-release.yml:
--------------------------------------------------------------------------------
1 | name: New Sentry Release
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 | tags:
7 | - '*'
8 |
9 | jobs:
10 | release:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v3.5.0
14 | - name: Create Sentry release
15 | uses: getsentry/action-release@v1.3.1
16 | env:
17 | SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
18 | SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
19 | SENTRY_PROJECT: "mail-android"
20 | SENTRY_URL: ${{ secrets.SENTRY_URL }}
21 | with:
22 | environment: production
23 | version: ${{ github.ref_name }}
24 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.aab
2 | *.apk
3 | /app/release/baselineProfiles
4 | **/build
5 | **/captures
6 | .cxx
7 | .DS_Store
8 | env.properties
9 | .externalNativeBuild
10 | .gradle
11 | **/.idea
12 | !.idea/icon.svg
13 | *.iml
14 | .kotlin/errors
15 | .kotlin/sessions
16 | **/local.properties
17 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "Core"]
2 | path = Core
3 | url = git@github.com:Infomaniak/android-core.git
4 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/copyright/Core_copyright.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/copyright/Infomaniak_Open_Source.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/.idea/scopes/Core_project_files.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/HtmlCleaner/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 |
4 | def appCompileSdk = rootProject.ext["appCompileSdk"]
5 | def appMinSdk = rootProject.ext["appMinSdk"]
6 | def javaVersion = rootProject.ext["javaVersion"]
7 |
8 | android {
9 | namespace 'com.infomaniak.html.cleaner'
10 | compileSdk appCompileSdk
11 |
12 | defaultConfig {
13 | minSdk appMinSdk
14 | targetSdk appCompileSdk
15 | }
16 |
17 | compileOptions {
18 | sourceCompatibility javaVersion
19 | targetCompatibility javaVersion
20 | }
21 |
22 | kotlinOptions { jvmTarget = javaVersion }
23 |
24 | flavorDimensions += 'distribution'
25 | productFlavors {
26 | standard
27 | fdroid
28 | }
29 | }
30 |
31 | dependencies {
32 | api libs.jsoup
33 | }
34 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Infomaniak Mail
2 |
3 | [](https://play.google.com/store/apps/details?id=com.infomaniak.mail)
6 | [](https://f-droid.org/packages/com.infomaniak.mail/)
9 |
10 | Be aware that the F-Droid version is devoid of push notification.
11 |
--------------------------------------------------------------------------------
/app/google-services.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_info": {
3 | "project_number": "364109398419",
4 | "project_id": "kmail-android",
5 | "storage_bucket": "kmail-android.appspot.com"
6 | },
7 | "client": [
8 | {
9 | "client_info": {
10 | "mobilesdk_app_id": "1:364109398419:android:850d126331fbbebbffe866",
11 | "android_client_info": {
12 | "package_name": "com.infomaniak.mail"
13 | }
14 | },
15 | "oauth_client": [
16 | {
17 | "client_id": "364109398419-otg5kmlh72ilahs2f71c1v2gig7moph1.apps.googleusercontent.com",
18 | "client_type": 3
19 | }
20 | ],
21 | "api_key": [
22 | {
23 | "current_key": "AIzaSyCrKhF_rkQu61P6eY0bS-b3Zf4zRVyaDzQ"
24 | }
25 | ],
26 | "services": {
27 | "appinvite_service": {
28 | "other_platform_oauth_client": [
29 | {
30 | "client_id": "364109398419-otg5kmlh72ilahs2f71c1v2gig7moph1.apps.googleusercontent.com",
31 | "client_type": 3
32 | }
33 | ]
34 | }
35 | }
36 | }
37 | ],
38 | "configuration_version": "1"
39 | }
40 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
23 | # Keep names that are used from javascript
24 | #-keepclasseswithmembers class com.infomaniak.mail.utils.WebViewUtils$JavascriptBridge {
25 | # public ;
26 | #}
27 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/infomaniak/mail/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.infomaniak.mail
2 |
3 | import androidx.test.platform.app.InstrumentationRegistry
4 | import org.junit.Assert.assertEquals
5 | import org.junit.Test
6 |
7 | /**
8 | * Instrumented test, which will execute on an Android device.
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleInstrumentedTest {
13 | @Test
14 | fun useAppContext() {
15 | // Context of the app under test.
16 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
17 | assertEquals("com.infomaniak.mail", appContext.packageName)
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/fdroid/java/com/infomaniak/mail/FdroidModule.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail
19 |
20 | import com.infomaniak.mail.utils.PlayServicesUtils
21 | import dagger.Binds
22 | import dagger.Module
23 | import dagger.hilt.InstallIn
24 | import dagger.hilt.components.SingletonComponent
25 |
26 | @Module
27 | @InstallIn(SingletonComponent::class)
28 | interface FdroidModule {
29 |
30 | @Binds
31 | fun bindPlayServicesUtils(impl: FdroidPlayServicesUtils): PlayServicesUtils
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/fdroid/java/com/infomaniak/mail/FdroidPlayServicesUtils.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail
19 |
20 | import com.infomaniak.mail.utils.PlayServicesUtils
21 | import javax.inject.Inject
22 | import javax.inject.Singleton
23 |
24 | @Singleton
25 | class FdroidPlayServicesUtils @Inject constructor() : PlayServicesUtils
26 |
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/refreshStrategies/ScheduledDraftRefreshStrategy.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.cache.mailboxContent.refreshStrategies
19 |
20 | val scheduledDraftRefreshStrategy = object : DefaultRefreshStrategy {
21 | override fun shouldHideEmptyFolder(): Boolean = true
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/AppSettings.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2022-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import io.realm.kotlin.types.RealmObject
21 |
22 | class AppSettings : RealmObject {
23 |
24 | var currentUserId: Int = DEFAULT_ID
25 | var currentMailboxId: Int = DEFAULT_ID
26 |
27 | companion object {
28 | const val DEFAULT_ID = -1
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/AttachmentDisposition.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | enum class AttachmentDisposition {
21 | INLINE,
22 | ATTACHMENT,
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/AttachmentUploadStatus.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | enum class AttachmentUploadStatus {
21 | NOT_UPLOADED,
22 | UPLOADED,
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/AttachmentsToForwardResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import kotlinx.serialization.Serializable
21 |
22 | @Serializable
23 | data class AttachmentsToForwardResult(
24 | val attachments: List,
25 | )
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/BackupResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import kotlinx.serialization.Serializable
21 |
22 | @Serializable
23 | data class BackupResult(
24 | @Suppress("ArrayInDataClass")
25 | val backups: Array,
26 | )
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/FeatureFlag.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | // The field apiName is also used to store the enum in Realm
21 | enum class FeatureFlag(val apiName: String) {
22 | AI("ai-mail-composer"),
23 | BIMI("bimi"),
24 | SCHEDULE_DRAFTS("schedule-send-draft"),
25 | SNOOZE("mail-snooze"),
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/InfomaniakPassword.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import kotlinx.serialization.Serializable
21 |
22 | @Serializable
23 | data class InfomaniakPassword(
24 | val id: Int = 0,
25 | val name: String? = null,
26 | val password: String? = null,
27 | )
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/MoveResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2022-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class MoveResult(
25 | @SerialName("undo_resource")
26 | val undoResource: String,
27 | )
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/ShareThread.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import kotlinx.serialization.Serializable
21 |
22 | @Serializable
23 | data class ShareThread(val url: String)
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/SnoozeState.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import com.infomaniak.core.utils.ApiEnum
21 |
22 | enum class SnoozeState(override val apiValue: String) : ApiEnum {
23 | Snoozed(apiValue = "snoozed"), // Has been snoozed and the snooze end time has not been reached yet
24 | Unsnoozed(apiValue = "unsnoozed"), // Used to be snoozed but the snooze end time has been reached and the message came back
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/SwipeDisplayBehavior.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models
19 |
20 | import com.infomaniak.mail.data.LocalSettings
21 | import com.infomaniak.mail.data.models.mailbox.Mailbox
22 |
23 | fun interface SwipeDisplayBehavior {
24 | fun canDisplay(folderRole: Folder.FolderRole?, featureFlags: Mailbox.FeatureFlagSet?, localSettings: LocalSettings): Boolean
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/addressBook/AddressBooksResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2022-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.addressBook
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class AddressBooksResult(
25 | @SerialName("addressbooks")
26 | val addressBooks: List,
27 | )
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/ai/AiMessage.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.ai
19 |
20 | import kotlinx.serialization.Serializable
21 |
22 | @Serializable
23 | open class AiMessage(var content: String, val type: String) {
24 | val vars = mutableMapOf()
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/ai/AiPromptOpeningStatus.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.ai
19 |
20 | data class AiPromptOpeningStatus(
21 | val isOpened: Boolean,
22 | var shouldResetPrompt: Boolean = true,
23 | var becauseOfGeneration: Boolean = false,
24 | )
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/ai/AiResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.ai
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class AiResult(
25 | val content: String,
26 | @SerialName("context_id")
27 | val contextId: String? = null,
28 | @SerialName("action")
29 | val promptMessage: AiMessage? = null,
30 | )
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/ai/AssistantMessage.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.ai
19 |
20 | class AssistantMessage(content: String) : AiMessage(content, "assistant")
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/ai/ContextMessage.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.ai
19 |
20 | class ContextMessage(content: String) : AiMessage(content, "context")
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/ai/UserMessage.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.ai
19 |
20 | class UserMessage(content: String) : AiMessage(content, "user")
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/draft/SaveDraftResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2022-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.draft
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class SaveDraftResult(
25 | @SerialName("uuid")
26 | val draftRemoteUuid: String,
27 | @SerialName("uid")
28 | val messageUid: String,
29 | )
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/draft/ScheduleDraftResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package com.infomaniak.mail.data.models.draft
20 |
21 | import kotlinx.serialization.SerialName
22 | import kotlinx.serialization.Serializable
23 |
24 | @Serializable
25 | data class ScheduleDraftResult(
26 | @SerialName("schedule_action")
27 | val unscheduleDraftUrl: String,
28 | )
29 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/draft/SendDraftResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.draft
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class SendDraftResult(
25 | @SerialName("etop")
26 | val scheduledMessageEtop: String,
27 | )
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/getMessages/GetMessagesByUidsResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2022-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.getMessages
19 |
20 | import com.infomaniak.mail.data.models.message.Message
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class GetMessagesByUidsResult(
25 | val messages: List,
26 | )
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/getMessages/MessageFlags.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.getMessages
19 |
20 | sealed interface MessageFlags {
21 | val shortUid: String
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/getMessages/NewMessagesResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2022-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.getMessages
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class NewMessagesResult(
25 | @SerialName("messages_uids")
26 | val addedShortUids: List,
27 | @SerialName("signature")
28 | val cursor: String,
29 | )
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/mailbox/MailboxExternalMailInfo.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.mailbox
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class MailboxExternalMailInfo(
25 | @SerialName("external_mail_flag_enabled")
26 | val externalMailFlagEnabled: Boolean = false,
27 | @SerialName("domains")
28 | val trustedDomains: List = emptyList(),
29 | )
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/mailbox/MailboxLinkedResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.mailbox
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class MailboxLinkedResult(
25 | @SerialName("id")
26 | val mailboxId: Int,
27 | @SerialName("mail")
28 | val email: String,
29 | )
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/mailbox/SenderDetails.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.mailbox
19 |
20 | import io.realm.kotlin.types.EmbeddedRealmObject
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | class SenderDetails : EmbeddedRealmObject {
25 |
26 | var email: String = ""
27 |
28 | companion object
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/snooze/BatchSnoozeCancelResponse.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.snooze
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | class BatchSnoozeCancelResponse : BatchSnoozeResponse {
25 | @SerialName("cancelled")
26 | override val processedUuids: List = emptyList()
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/snooze/BatchSnoozeUpdateResponse.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.snooze
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | class BatchSnoozeUpdateResponse : BatchSnoozeResponse {
25 | @SerialName("updated")
26 | override val processedUuids: List = emptyList()
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/data/models/thread/ThreadResult.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2025 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.data.models.thread
19 |
20 | import kotlinx.serialization.SerialName
21 | import kotlinx.serialization.Serializable
22 |
23 | @Serializable
24 | data class ThreadResult(
25 | val threads: List = emptyList(),
26 | @SerialName("resource_previous")
27 | val resourcePrevious: String?,
28 | @SerialName("resource_next")
29 | val resourceNext: String?,
30 | )
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/di/CoroutinesQualifiers.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.di
19 |
20 | import javax.inject.Qualifier
21 |
22 | //region Globals qualifiers
23 | @Retention(AnnotationRetention.BINARY)
24 | @Qualifier
25 | annotation class DefaultDispatcher
26 |
27 | @Retention(AnnotationRetention.BINARY)
28 | @Qualifier
29 | annotation class IoDispatcher
30 |
31 | @Retention(AnnotationRetention.BINARY)
32 | @Qualifier
33 | annotation class MainDispatcher
34 | //endregion
35 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/di/RealmQualifiers.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.di
19 |
20 | import javax.inject.Qualifier
21 |
22 | @Retention(AnnotationRetention.BINARY)
23 | @Qualifier
24 | annotation class AppSettingsRealm
25 |
26 | @Retention(AnnotationRetention.BINARY)
27 | @Qualifier
28 | annotation class UserInfoRealm
29 |
30 | @Retention(AnnotationRetention.BINARY)
31 | @Qualifier
32 | annotation class MailboxInfoRealm
33 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/ui/main/folder/MultiSelectionListener.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.ui.main.folder
19 |
20 | interface MultiSelectionListener {
21 | var isEnabled: Boolean
22 | val selectedItems: MutableSet
23 | val publishSelectedItems: () -> Unit
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/ui/main/settings/OnCheckListener.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.ui.main.settings
19 |
20 | import androidx.annotation.IdRes
21 |
22 | fun interface OnCheckListener {
23 | fun onChecked(@IdRes viewId: Int)
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/ui/main/settings/RadioCheckable.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.ui.main.settings
19 |
20 | interface RadioCheckable {
21 | val associatedValue: String?
22 | fun check()
23 | fun uncheck()
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/ui/newMessage/AiSharedData.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.ui.newMessage
19 |
20 | import dagger.hilt.android.scopes.ActivityRetainedScoped
21 | import javax.inject.Inject
22 |
23 | @ActivityRetainedScoped
24 | class AiSharedData @Inject constructor() {
25 | var previousMessageBodyPlainText: String? = null
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/utils/IRegisterFirebaseBroadcastReceiver.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.utils
19 |
20 | import androidx.fragment.app.FragmentActivity
21 | import com.infomaniak.mail.ui.MainViewModel
22 |
23 | fun interface IRegisterFirebaseBroadcastReceiver {
24 |
25 | fun initFirebaseBroadcastReceiver(activity: FragmentActivity, mainViewModel: MainViewModel)
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/utils/PlayServicesUtils.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.utils
19 |
20 | import androidx.fragment.app.FragmentActivity
21 |
22 | interface PlayServicesUtils {
23 |
24 | fun checkPlayServices(fragmentActivity: FragmentActivity) = Unit
25 |
26 | fun areGooglePlayServicesAvailable(): Boolean = false
27 |
28 | fun deleteFirebaseToken() = Unit
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/utils/UnreadDisplay.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.utils
19 |
20 | data class UnreadDisplay(
21 | val count: Int,
22 | val shouldDisplayPastille: Boolean = false,
23 | ) {
24 | override fun equals(other: Any?) = other === this ||
25 | (other is UnreadDisplay && other.count == count && other.shouldDisplayPastille == shouldDisplayPastille)
26 |
27 | override fun hashCode(): Int = count.hashCode() + shouldDisplayPastille.hashCode()
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/views/itemViews/SelectableFolderItemView.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.views.itemViews
19 |
20 | import android.content.Context
21 | import android.util.AttributeSet
22 |
23 | class SelectableFolderItemView @JvmOverloads constructor(
24 | context: Context,
25 | attrs: AttributeSet? = null,
26 | defStyleAttr: Int = 0,
27 | ) : SelectableItemView(context, attrs, defStyleAttr), IndentableFolder
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/views/itemViews/SelectableMailboxItemView.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.views.itemViews
19 |
20 | import android.content.Context
21 | import android.util.AttributeSet
22 |
23 | class SelectableMailboxItemView @JvmOverloads constructor(
24 | context: Context,
25 | attrs: AttributeSet? = null,
26 | defStyleAttr: Int = 0,
27 | ) : SelectableItemView(context, attrs, defStyleAttr)
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/infomaniak/mail/views/itemViews/UnreadMailboxItemView.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail.views.itemViews
19 |
20 | import android.content.Context
21 | import android.util.AttributeSet
22 |
23 | class UnreadMailboxItemView @JvmOverloads constructor(
24 | context: Context,
25 | attrs: AttributeSet? = null,
26 | defStyleAttr: Int = 0,
27 | ) : UnreadItemView(context, attrs, defStyleAttr)
28 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/fast_out_extra_slow_in.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/color-night/onboarding_secondary_background.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/color/button_calendar_participation_stroke_color.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/button_toggle_background.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/chip_contact_background_color.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/chip_contact_background_color_external.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/chip_contact_text_color.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/chip_contact_text_color_external.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/chip_unread_background.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/chip_unread_text_color.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/color_ai_translucent_ripple.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/color/color_primary_translucent_ripple.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/color/color_primary_translucent_text_highlight.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/color/editor_button_background.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/color/header_color_light.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/color/icon_button_disabled.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/icon_button_primary_color.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/on_primary_color_disabled.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/onboarding_secondary_background.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/color/primary_color_disabled.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/primary_text_color_disabled.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/ripple_color_alert_view.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-hdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-mdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-hdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-night-hdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-mdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-night-mdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-xhdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-night-xhdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-xxhdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-night-xxhdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-night-xxxhdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-night-xxxhdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-xhdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-xxhdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/splashscreen_icon_legacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/drawable-xxxhdpi/splashscreen_icon_legacy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ai_proposition_loader_gradient.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/background_rounded.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bottom_sheet_drag_handle.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/divider.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_app_update.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back_wave_1.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back_wave_2.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back_wave_3.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back_wave_4.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back_wave_sync.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_calendar_participants_chevron.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_check_sharp.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_editor_clock_small.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_navigation_default.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_pastille.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_warning_big.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/indicator_full_tab.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/spacer_standard_medium.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/font-v26/tag_font.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/font/tag_font.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_ai_replace_content.xml:
--------------------------------------------------------------------------------
1 |
18 |
22 |
23 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_confirm_scheduled_draft_modification.xml:
--------------------------------------------------------------------------------
1 |
18 |
22 |
23 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_menu_drawer_action.xml:
--------------------------------------------------------------------------------
1 |
18 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_menu_drawer_divider.xml:
--------------------------------------------------------------------------------
1 |
18 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_settings_signature.xml:
--------------------------------------------------------------------------------
1 |
18 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/new_message_menu.xml:
--------------------------------------------------------------------------------
1 |
18 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/scheduled_draft_menu.xml:
--------------------------------------------------------------------------------
1 |
18 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_help.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_help_round.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_new_message.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_new_message_round.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_search.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_search_round.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_shortcut_help.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_shortcut_help.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_shortcut_help_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_shortcut_help_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_shortcut_new_message.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_shortcut_new_message.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_shortcut_new_message_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_shortcut_new_message_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_shortcut_search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_shortcut_search.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_shortcut_search_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-hdpi/ic_shortcut_search_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_shortcut_help.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_shortcut_help.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_shortcut_help_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_shortcut_help_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_shortcut_new_message.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_shortcut_new_message.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_shortcut_new_message_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_shortcut_new_message_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_shortcut_search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_shortcut_search.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_shortcut_search_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-mdpi/ic_shortcut_search_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_shortcut_help.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_shortcut_help.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_shortcut_help_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_shortcut_help_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_shortcut_new_message.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_shortcut_new_message.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_shortcut_new_message_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_shortcut_new_message_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_shortcut_search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_shortcut_search.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_shortcut_search_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xhdpi/ic_shortcut_search_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_shortcut_help.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_shortcut_help.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_shortcut_help_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_shortcut_help_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_shortcut_new_message.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_shortcut_new_message.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_shortcut_new_message_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_shortcut_new_message_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_shortcut_search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_shortcut_search.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_shortcut_search_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxhdpi/ic_shortcut_search_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_help.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_help.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_help_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_help_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_new_message.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_new_message.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_new_message_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_new_message_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_search.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_search_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/app/src/main/res/mipmap-xxxhdpi/ic_shortcut_search_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/raw/custom_dark_mode.css:
--------------------------------------------------------------------------------
1 | html {
2 | background: #101010;
3 | }
4 |
--------------------------------------------------------------------------------
/app/src/main/res/raw/editor_style.css:
--------------------------------------------------------------------------------
1 | html {
2 | caret-color: var(--kmail-primary-color);
3 | }
4 |
5 | body {
6 | margin-top: 0px;
7 | margin-bottom: 1rem;
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/res/raw/improve_rendering.css:
--------------------------------------------------------------------------------
1 | body {
2 | overflow-wrap: break-word;
3 | }
4 |
5 | pre {
6 | overflow-wrap: break-word;
7 | white-space: pre-wrap;
8 | }
9 |
10 | table.munged {
11 | width: auto !important;
12 | table-layout: auto !important;
13 | }
14 |
15 | td.munged {
16 | width: auto !important;
17 | white-space: normal !important;
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/res/raw/javascript_bridge.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2023-2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | function reportOverScroll(clientWidth, scrollWidth, messageUid) {
20 | window.kmail.reportOverScroll(clientWidth, scrollWidth, messageUid);
21 | }
22 |
23 | function reportError(error, scriptFirstLine, messageUid) {
24 | window.kmail.reportError(error.name, error.message, error.stack, scriptFirstLine, messageUid);
25 | }
26 |
27 | function webviewFinishedLoading() {
28 | window.kmail.webviewFinishedLoading();
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/res/raw/print_email.css:
--------------------------------------------------------------------------------
1 | body, html { background-color: #fff !important ;}
2 |
--------------------------------------------------------------------------------
/app/src/main/res/raw/signature_margins.css:
--------------------------------------------------------------------------------
1 | body { margin-top: 1rem; margin-bottom: 1rem; } /* Only one selector in the whole file is supported. Here it's `body` */
2 |
--------------------------------------------------------------------------------
/app/src/main/res/raw/style.css:
--------------------------------------------------------------------------------
1 | html {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | body {
7 | font-family: 'Helvetica';
8 | margin: 16px;
9 | padding: 0;
10 | width: auto !important;
11 | min-width: auto !important;
12 | }
13 |
14 | blockquote {
15 | padding: 0.2em 1.2em !important;
16 | margin: 0 !important;
17 | border: 3px solid var(--kmail-primary-color) !important;
18 | border-width: 0 0 0 3px !important;
19 | }
20 |
21 | blockquote blockquote blockquote blockquote {
22 | padding: 0 !important;
23 | border: none !important;
24 | }
25 |
26 | a:link, a:visited, a:hover, a:active {
27 | color: var(--kmail-primary-color);
28 | }
29 |
30 | pre {
31 | font-family: 'Helvetica';
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/res/resources.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Infomaniak Mail - Android
3 | # Copyright (C) 2023-2024 Infomaniak Network SA
4 | #
5 | # This program is free software: you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation, either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 | #
18 | #
19 | # Set default locale
20 | unqualifiedResLocale=en
21 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night-v27/themes.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v27/styles.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
23 |
24 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/values/constants.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 | true
21 | false
22 | false
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/exposed_files_path.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
22 |
25 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/locales_config.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/test/java/com/infomaniak/mail/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Infomaniak Mail - Android
3 | * Copyright (C) 2024 Infomaniak Network SA
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | package com.infomaniak.mail
19 |
20 | import org.junit.Assert.assertEquals
21 | import org.junit.Test
22 |
23 | /**
24 | * Example local unit test, which will execute on the development machine (host).
25 | *
26 | * See [testing documentation](http://d.android.com/tools/testing).
27 | */
28 | class ExampleUnitTest {
29 | @Test
30 | fun addition_isCorrect() {
31 | assertEquals(4, 2 + 2)
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/build.gradle.kts:
--------------------------------------------------------------------------------
1 | buildscript {
2 | dependencies {
3 | classpath(libs.navigation.safeargs)
4 | classpath(libs.google.services)
5 | }
6 |
7 | extra.apply {
8 | set("appCompileSdk", 35)
9 | set("appMinSdk", 25)
10 | set("javaVersion", JavaVersion.VERSION_17)
11 | }
12 | }
13 |
14 | plugins {
15 | alias(libs.plugins.android.application) apply false
16 | alias(libs.plugins.android.library) apply false
17 | alias(libs.plugins.dagger.hilt) apply false
18 | alias(libs.plugins.jetbrains.kotlin.android) apply false
19 | alias(libs.plugins.jetbrains.kotlin.serialization) apply false
20 | alias(core.plugins.compose.compiler) version libs.versions.kotlin apply false
21 | alias(libs.plugins.kapt) apply false
22 | alias(libs.plugins.ksp) apply false
23 | alias(libs.plugins.realm.kotlin) apply false
24 | }
25 |
26 | tasks.register("clean", Delete::class) { delete(rootProject.layout.buildDirectory) }
27 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/de/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/de/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/de/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/de/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/de/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/de/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/de/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/de/short_description.txt:
--------------------------------------------------------------------------------
1 | Das sichere Postfach für Ihre E-Mails
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_03_001_01.txt:
--------------------------------------------------------------------------------
1 | - Add signature edition
2 | - Auto-advance
3 | - Chromebook support
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_03_002_01.txt:
--------------------------------------------------------------------------------
1 | - Add possibility to preview an attachment when composing a new message
2 | - Increase debounce to avoid being spammed with notifications sound and vibration
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_03_003_01.txt:
--------------------------------------------------------------------------------
1 | - Add banner to tell the user the webview needs to be updated
2 | - Place information icon of external banner to the left of the banner
3 | - Correct german wording
4 | - Fix calendar event cancellation
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_03_004_01.txt:
--------------------------------------------------------------------------------
1 | - Fixed an issue where a message indicating no Internet connection could appear incorrectly.
2 | - Fixed an issue where notifications could be canceled without apparent reason.
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_03_005_01.txt:
--------------------------------------------------------------------------------
1 | - Fix NPE when trying to get local contact email
2 | - Don't shadow-replace Attachments with the 1st one when forwarding a Message
3 | - Add UploadStatus + Mutex to avoid concurrency when uploading Attachments
4 | - Add last modified date in URI when sending attachment to kDrive
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_03_006_01.txt:
--------------------------------------------------------------------------------
1 | - Add Bimi feature
2 | - Lighten version API call
3 | - Prevent showing and hiding progress crashes
4 | - Avoid uploading forwards attachments
5 | - SwissTransfer attachments are now seen as regular attachments
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_000_01.txt:
--------------------------------------------------------------------------------
1 | - Add share mail link feature
2 | - Fix a crash on API 25 when using `MatchResult`
3 | - Check before trying to refresh messages for a specific mailbox if this one has already been open once
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_001_01.txt:
--------------------------------------------------------------------------------
1 | - Add forward and reply icons on Threads
2 | - Fix cut expeditor name
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_002_01.txt:
--------------------------------------------------------------------------------
1 | - Stop importing Attachments when size limit is reached
2 | - Fix Editor toolbar being displayed under the keyboard
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_003_01.txt:
--------------------------------------------------------------------------------
1 | - Add possibility to block a specific contact in a thread
2 | - Replace current editor with rich html editor
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_004_01.txt:
--------------------------------------------------------------------------------
1 | - Remove associated inline Attachements when removing previous email quote
2 | - Fix missing selection indicator handles when the selected line is on the last line of the Rich HTML Editor
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_005_01.txt:
--------------------------------------------------------------------------------
1 | - Improve the way we check for network availability
2 | - Add toolbar formatting options to the new rich html editor
3 | - Correctly display Signatures that don't have a sender name
4 | - Fix infinite refresh loading of Threads when switching Account/Mailbox
5 | - Allow keyboard navigation
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_006_01.txt:
--------------------------------------------------------------------------------
1 | - Improved retrieval and display of old emails when going back in the history of a folder
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_007_01.txt:
--------------------------------------------------------------------------------
1 | - Various bug fixes
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_008_01.txt:
--------------------------------------------------------------------------------
1 | - Various bug fixes
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_04_009_01.txt:
--------------------------------------------------------------------------------
1 | - Various bug fixes
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_05_000_01.txt:
--------------------------------------------------------------------------------
1 | - Add spellcheck to editor content
2 | - Add confirmation dialog when blocking an user
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_05_001_01.txt:
--------------------------------------------------------------------------------
1 | - Add specific UI for thread when in SPAM folder
2 | - Delete draft that cannot ever be sent because of corrupted attachments
3 | - Fix AutoAdvance feature that was triggering too often
4 | - Fix BIMI that were blinking
5 | - Fix animated toolbar crash
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_000_01.txt:
--------------------------------------------------------------------------------
1 | - Refactor Profile view and how we can add a Mailbox
2 | - Fix the usage of backspace to delete Recipients on API 34+
3 | - Fix ripple in the Move screen
4 | - Logout User properly when this one has been deleted
5 | - Execute mails actions right away instead of waiting for API calls results
6 | - Give priority to autocompleted API Contacts over phone contacts
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_001_01.txt:
--------------------------------------------------------------------------------
1 | - Set avatars background color to white so transparent BIMIs are displayed correctly
2 | - Various performances improvements
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_002_01.txt:
--------------------------------------------------------------------------------
1 | - Various bug fixes
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_003_01.txt:
--------------------------------------------------------------------------------
1 | - Fix memory issue when opening mail with a long body
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_004_01.txt:
--------------------------------------------------------------------------------
1 | - Add some Sentry to better understand Message display improvements that still leave some overscroll
2 | - Optimize performances when expanding a long Thread
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_005_01.txt:
--------------------------------------------------------------------------------
1 | - Enhance timing of Messages fetching
2 | - Fix issue with remote Attachments
3 | - Make sure the app is in correct conditions before fetching Notifications
4 | - Fix crash when trying to change account when there is no valid mailbox
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_006_01.txt:
--------------------------------------------------------------------------------
1 | - Various bug fixes
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_007_01.txt:
--------------------------------------------------------------------------------
1 | - Update method to calculate sizes
2 | - Correct plural form of some texts
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_008_01.txt:
--------------------------------------------------------------------------------
1 | - Fix accessibility issue when composing a mail
2 | - Fix network detection issue
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_06_009_01.txt:
--------------------------------------------------------------------------------
1 | - Update Italian translations
2 | - Attachments UI is now correctly updating in tablet mode
3 | - The empty state is now correctly appearing at first opening of a folder
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_07_000_01.txt:
--------------------------------------------------------------------------------
1 | - Lock the app when the screen turns off
2 | - Don't show a contact if the email is incorrect
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_07_001_01.txt:
--------------------------------------------------------------------------------
1 | - Update translations
2 | - Better error handling
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_07_002_01.txt:
--------------------------------------------------------------------------------
1 | - Add SSO login
2 | - Correctly redirect user in the app after creating an account
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_08_000_01.txt:
--------------------------------------------------------------------------------
1 | - Add the possibility to schedule an email
2 | - Display confirmation popup when deleting several conversation from the trash
3 | - Enhance notifications reliability
4 | - Fix an issue when removing an attachment from an email
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_08_001_01.txt:
--------------------------------------------------------------------------------
1 | - Correctly disconnect user if its token expires
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_09_000_01.txt:
--------------------------------------------------------------------------------
1 | - Fix folders unread count updates
2 | - Fix "24 hour" format
3 | - Correctly display date when it's from a previous year
4 | - Better align message components UI
5 | - Correctly handle identical signature to new messages
6 | - Fix wrong signature and reply action used due to case-sensitive emails
7 | - Add myKSuite dashboard
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_09_001_01.txt:
--------------------------------------------------------------------------------
1 | - Add the possibility to save a thread on kDrive
2 | - Display the correct user's avatar after changing name
3 | - Fix folders' unread count that wasn't updating correctly
4 | - Fix a crash in the myKSuite dashboard
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_10_000_01.txt:
--------------------------------------------------------------------------------
1 | - Add the possibility to see snoozed emails
2 | - Handle signatures containing `+xxx` in the answering email
3 | - Fix a crash in drafts when a signature is removed
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_10_001_01.txt:
--------------------------------------------------------------------------------
1 | - Correctly order scheduled messages
2 | - Correctly order search results
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_10_002_01.txt:
--------------------------------------------------------------------------------
1 | - Reorder contacts suggestion while writing a new email
2 | - Hide currently scheduled date when prompting the user to choose another scheduled date
3 | - Add Spam banner
4 | - Add initials to myKSuite avatar
5 | - Display snoozed threads as such in the Search
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_10_003_01.txt:
--------------------------------------------------------------------------------
1 | - Displays a generic notification when a new email may have arrived
2 | - Add the ability to snooze emails
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_10_004_01.txt:
--------------------------------------------------------------------------------
1 | - Remove the snooze status of an "unsnoozed" thread when reading it from any folder
2 | - Adapt text between confirm/modify depending on the type of snooze action
3 | - Display generic new mails notification less often
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_11_000_01.txt:
--------------------------------------------------------------------------------
1 | - Add snooze swipe action
2 | - Typos fixing
3 | - When fetching new Messages, display newest first
4 | - Block swipe actions while in multiselection
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_11_001_01.txt:
--------------------------------------------------------------------------------
1 | - Fix invisible emails inside of an opened thread
2 | - Make sharing email error clearer
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_11_002_01.txt:
--------------------------------------------------------------------------------
1 | - Display messages coming from the Snooze folder as such in the Search
2 | - Add missing folder name tags in Search results
3 | - Update app icon
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_11_003_01.txt:
--------------------------------------------------------------------------------
1 | - Detect more valid email addresses
2 | - Remove "ChatGPT" as AI redaction choice
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_11_004_01.txt:
--------------------------------------------------------------------------------
1 | - Correctly display network status
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1_11_005_01.txt:
--------------------------------------------------------------------------------
1 | - Detect email addresses with upper case characters as valid
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/featureGraphic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/featureGraphic.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/icon.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | The secure messaging service for your emails
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/title.txt:
--------------------------------------------------------------------------------
1 | Infomaniak Mail
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_03_001_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de l'édition de signature
2 | - Avance automatique
3 | - Prise en charge des Chromebooks
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_03_002_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de la possibilité de prévisualiser une pièce jointe lors de la rédaction d'un nouveau message
2 | - Augmentation de la durée d'attente pour éviter d'être inondé de notifications sonores et vibratoires
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_03_003_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout d'une bannière pour indiquer à l'utilisateur que la webview doit être mise à jour
2 | - Placer l'icône d'information de la bannière externe à gauche de la bannière
3 | - Correction de la formulation en allemand
4 | - Correction de l'annulation d'un événement du calendrier
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_03_004_01.txt:
--------------------------------------------------------------------------------
1 | - Correction d'un problème où un message indiquant une absence de connexion Internet pouvait apparaître à tort.
2 | - Correction d'un problème où les notifications pouvaient être annulées sans raison apparente.
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_03_005_01.txt:
--------------------------------------------------------------------------------
1 | - Correction d'une NPE lors de l'obtention de l'email d'un contact local
2 | - Ne remplace plus les pièces jointes par la première lors du transfert d'un message.
3 | - Correction de concurrence lors du téléchargement de pièces jointes
4 | - Ajout de la date de dernière modification dans l'URI lors de l'envoi d'une pièce jointe à kDrive
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_03_006_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de la fonctionnalité Bimi
2 | - Alléger l'appel API des versions de l'app
3 | - Prévenir les crashs liés à l'affichage et au masquage de la progression
4 | - Correction du retéléchargement des pièces jointes des transferts
5 | - Les pièces jointes SwissTransfer sont maintenant vues comme des pièces jointes normales
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_000_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de la fonctionnalité de lien de partage de courrier
2 | - Correction d'un crash sur l'API 25 lors de l'utilisation de `MatchResult`
3 | - Vérification de si une boîte aux lettres a déjà été ouverte une fois avant d'essayer de rafraîchir ses messages
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_001_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout des icônes de transfert et de réponse sur les discussions
2 | - Correction du nom de l'expéditeur coupé
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_002_01.txt:
--------------------------------------------------------------------------------
1 | - Blocage de l'importation de pièces jointes lorsque la limite de taille est atteinte
2 | - Correction de la barre d'outils de l'éditeur affichée sous le clavier
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_003_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de la possibilité de bloquer un contact spécifique dans un fil de discussion
2 | - Remplacement de l'éditeur actuel par un éditeur html riche
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_004_01.txt:
--------------------------------------------------------------------------------
1 | - Suppression des pièces jointes lors de la suppression de la citation du précédent email
2 | - Correction des poignées manquantes d'indicateur de sélection lorsque la ligne sélectionnée se trouve sur la dernière ligne de l'Éditeur HTML Riche
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_005_01.txt:
--------------------------------------------------------------------------------
1 | - Amélioration de la vérification de la disponibilité du réseau
2 | - Ajout d'options de formatage dans la barre d'outils du nouvel éditeur HTML riche
3 | - Affichage correct des signatures qui n'ont pas de nom d'expéditeur
4 | - Correction du rafraîchissement infini des fils de discussion lors du changement de compte/boîte aux lettres
5 | - Permettre la navigation au clavier
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_006_01.txt:
--------------------------------------------------------------------------------
1 | - Amélioration de l'obtention et affichage des anciens courriels quand on remonte dans l'historique d'un dossier
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_007_01.txt:
--------------------------------------------------------------------------------
1 | - Diverses corrections de bugs
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_008_01.txt:
--------------------------------------------------------------------------------
1 | - Diverses corrections de bugs
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_04_009_01.txt:
--------------------------------------------------------------------------------
1 | - Diverses corrections de bugs
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_05_000_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout d'un correcteur orthographique à l'éditeur
2 | - Ajout d'un dialogue de confirmation lors du blocage d'un utilisateur
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_05_001_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout d'une interface utilisateur spécifique pour les fils de discussion lorsqu'ils se trouvent dans le dossier SPAM
2 | - Suppression des brouillons qui ne peuvent jamais être envoyés en raison de pièces jointes corrompues
3 | - Correction de la fonction d'avance automatique qui se déclenchait trop souvent
4 | - Correction des BIMI qui clignotaient
5 | - Correction du crash de la barre d'outils animée
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_000_01.txt:
--------------------------------------------------------------------------------
1 | - Refonte de la vue du Profil et de la façon dont on peut ajouter une Boîte aux lettres
2 | - Correction de l'utilisation du retour arrière pour supprimer des Destinataires à partir de l'API 34
3 | - Correction de l'ondulation dans l'écran de Déplacement
4 | - Déconnexion correcte de l'Utilisateur lorsque celui-ci a été supprimé
5 | - Exécution immédiate des actions au lieu d'attendre les résultats des appels à l'API
6 | - La priorité est désormais donnée aux contacts autocomplétés par l'API plutôt qu'à ceux du téléphone
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_001_01.txt:
--------------------------------------------------------------------------------
1 | - La couleur d'arrière-plan des avatars est désormais le blanc pour que les BIMI transparents s'affichent correctement
2 | - Diverses améliorations de performances
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_002_01.txt:
--------------------------------------------------------------------------------
1 | - Diverses corrections de bugs
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_003_01.txt:
--------------------------------------------------------------------------------
1 | - Correction d'un problème de mémoire lors de l'ouverture d'un courrier dont le corps est long
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_004_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout d'un Sentry pour mieux comprendre les potentielles améliorations d'affichage des Messages qui créent encore un peu d'overscroll
2 | - Optimisation des performances lors de l'expansion d'un long fil de discussion
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_005_01.txt:
--------------------------------------------------------------------------------
1 | - Amélioration du timing de la récupération des messages
2 | - Correction d'un problème avec les pièces jointes distantes
3 | - Vérification que l'application est dans des conditions correctes avant de récupérer les notifications
4 | - Correction d'un crash lors du changement de compte alors qu'il n'y a pas de boîte aux lettres valide
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_006_01.txt:
--------------------------------------------------------------------------------
1 | - Diverses corrections de bugs
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_007_01.txt:
--------------------------------------------------------------------------------
1 | - Mise à jour de la méthode de calcul des tailles
2 | - Correction du pluriel de certains textes
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_008_01.txt:
--------------------------------------------------------------------------------
1 | - Correction d'un problème d'accessibilité lors de la rédaction d'un courrier
2 | - Correction d'un problème de détection du réseau
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_06_009_01.txt:
--------------------------------------------------------------------------------
1 | - Mise à jour des traductions en italien
2 | - L'UI des pièces jointes est maintenant correctement mise à jour en mode tablette
3 | - L'état vide apparaît désormais correctement lors de la première ouverture d'un dossier
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_07_000_01.txt:
--------------------------------------------------------------------------------
1 | - Verrouille l'application lorsque l'écran s'éteint
2 | - N'affiche pas un contact si l'email est incorrect
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_07_001_01.txt:
--------------------------------------------------------------------------------
1 | - Mise à jour des traductions
2 | - Meilleure gestion des erreurs
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_07_002_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout du login par SSO
2 | - Redirige correctement l'utilisateur dans l'application après la création d'un compte
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_08_000_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de la possibilité de programmer un email
2 | - Affichage d'une fenêtre de confirmation lors de la suppression de plusieurs conversations dans la corbeille
3 | - Amélioration de la fiabilité des notifications
4 | - Correction d'un problème lors de la suppression d'une pièce jointe dans un courriel
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_08_001_01.txt:
--------------------------------------------------------------------------------
1 | - Déconnecte correctement l'utilisateur si son token expire
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_09_000_01.txt:
--------------------------------------------------------------------------------
1 | - Correction des mises à jour du nombre d'emails non lus dans les dossiers
2 | - Correction du format "24 heures"
3 | - Affichage correct de la date lorsqu'elle provient d'une année antérieure
4 | - Meilleur alignement des composants d'un message
5 | - Meilleur gestion des signatures identiques pour les nouveaux messages
6 | - Correction de signature et action de réponse erronées en raison de la sensibilité à la casse des e-mails
7 | - Ajout du tableau de bord myKSuite
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_09_001_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de la possibilité de sauvegarder un fil de discussion sur kDrive
2 | - Affiche le bon avatar de l'utilisateur après un changement de nom
3 | - Correction du nombre de messages non lus dans les dossiers qui ne se mettait pas à jour correctement
4 | - Correction d'un crash dans le tableau de bord myKSuite
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_10_000_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de la possibilité de voir les courriels mis en attente
2 | - Gestion des signatures contenant `+xxx` dans l'e-mail de réponse
3 | - Correction d'un crash dans les brouillons lorsqu'une signature est supprimée
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_10_001_01.txt:
--------------------------------------------------------------------------------
1 | - Corrige le tri des messages programmés
2 | - Corrige le tri des résultats de la recherche
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_10_002_01.txt:
--------------------------------------------------------------------------------
1 | - Réorganisation de la suggestion de contacts lors de la rédaction d'un nouvel e-mail
2 | - Retire la date actuellement programmée lorsque l'utilisateur est invité à choisir une autre date programmée
3 | - Ajout de la bannière de spam
4 | - Ajouter des initiales à l'avatar de myKSuite
5 | - Affiche les fils de discussion en attente comme tels dans la Recherche
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_10_003_01.txt:
--------------------------------------------------------------------------------
1 | - Affiche une notification générique quand un nouveau courriel est possiblement arrivé
2 | - Ajout de la possibilité de mettre des courriels en attente
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_10_004_01.txt:
--------------------------------------------------------------------------------
1 | - Corrige l'affichage des fils de discussions quand ils sortent de la mise en attente
2 | - Adapte le texte du bouton confirmer/modifier en fonction du type d'action de mise en attente
3 | - Affiche moins souvent la notification générique des nouveaux courriels
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_11_000_01.txt:
--------------------------------------------------------------------------------
1 | - Ajout de l'action de balayage pour mettre un courriel en attente
2 | - Correction de fautes de frappe
3 | - Lors de la récupération de nouveaux messages, affiche d'abord les plus récents
4 | - Bloque les actions de balayre lors d'une multi-sélection
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_11_001_01.txt:
--------------------------------------------------------------------------------
1 | - Corrige les e-mails invisible à l'intérieur d'une conversation
2 | - Rend les erreurs lors du partage d'un e-mail plus claire
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_11_002_01.txt:
--------------------------------------------------------------------------------
1 | - Affiche les messages provenant du dossier Mis en attente en tant que tel dans la Recherche
2 | - Ajout des balises manquantes de noms de dossier dans les résultats de la Recherche
3 | - Mise à jour de l'icône de l'application
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_11_003_01.txt:
--------------------------------------------------------------------------------
1 | - Détection d'un plus grand nombre d'adresses électroniques valides
2 | - Suppression de "ChatGPT" comme choix de rédaction pour l'IA
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_11_004_01.txt:
--------------------------------------------------------------------------------
1 | - Affiche correctement l'état du réseau
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/changelogs/1_11_005_01.txt:
--------------------------------------------------------------------------------
1 | - Détecte les adresses électroniques contenant des caractères en majuscules comme étant valides
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/fr/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/fr/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/fr/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/fr/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/fr/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/fr/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/fr/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr/short_description.txt:
--------------------------------------------------------------------------------
1 | La messagerie sécurisée pour vos e-mails
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/it/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/it/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/it/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/it/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/it/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/it/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/it/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/it/short_description.txt:
--------------------------------------------------------------------------------
1 | Il programma di posta sicuro per le tue e-mail
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/sp/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/sp/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/sp/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/sp/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/sp/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/sp/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/fastlane/metadata/android/sp/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/sp/short_description.txt:
--------------------------------------------------------------------------------
1 | El programa de correo seguro para tus correos
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infomaniak/android-kMail/e134545a7f4e55a63a1c56979821243153a5ddf0/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | google()
5 | mavenCentral()
6 | }
7 | }
8 |
9 | dependencyResolutionManagement {
10 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
11 | repositories {
12 | google()
13 | mavenCentral()
14 | maven { url 'https://jitpack.io' }
15 | }
16 | versionCatalogs {
17 | create("core") { from(files("Core/gradle/core.versions.toml")) }
18 | }
19 | }
20 |
21 | rootProject.name = 'Infomaniak Mail'
22 | include ':app',
23 | ':Core:Compose:MaterialThemeFromXml',
24 | ':Core:FragmentNavigation',
25 | ':Core:Legacy',
26 | ':Core:Legacy:AppLock',
27 | ':Core:Legacy:BugTracker',
28 | ':Core:Legacy:Confetti',
29 | ':Core:Legacy:Stores',
30 | ':Core:MyKSuite',
31 | ':Core:Network',
32 | ':Core:Sentry',
33 | ':Core:UserAvatar',
34 | ':HtmlCleaner'
35 |
--------------------------------------------------------------------------------