├── .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 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/copyright/Core_copyright.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/copyright/Infomaniak_Open_Source.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 15 | 16 | 19 | 20 | 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 | [Get it on Google Play](https://play.google.com/store/apps/details?id=com.infomaniak.mail) 6 | [Get it on F-Droid](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 | 20 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/menu/scheduled_draft_menu.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 23 | 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 | 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 | --------------------------------------------------------------------------------