diff --git a/app/src/main/java/com/infomaniak/mail/MatomoMail.kt b/app/src/main/java/com/infomaniak/mail/MatomoMail.kt index 3b731f5552..af9e2b2201 100644 --- a/app/src/main/java/com/infomaniak/mail/MatomoMail.kt +++ b/app/src/main/java/com/infomaniak/mail/MatomoMail.kt @@ -279,10 +279,6 @@ object MatomoMail : MatomoCore { trackEvent(MatomoMyKSuite.CATEGORY_MY_KSUITE, name) } - fun Fragment.trackMyKSuiteUpgradeBottomSheetEvent(name: String) { - context?.trackMyKSuiteUpgradeBottomSheetEvent(name) - } - fun Context.trackMyKSuiteUpgradeBottomSheetEvent(name: String) { trackEvent(MatomoMyKSuite.CATEGORY_MY_KSUITE_UPGRADE_BOTTOMSHEET, name) } diff --git a/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt b/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt index c46b98ea0b..cc6289b00c 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt @@ -37,8 +37,6 @@ import androidx.navigation.NavDestination import androidx.navigation.fragment.NavHostFragment import androidx.work.Data import com.airbnb.lottie.LottieAnimationView -import com.infomaniak.core.myksuite.ui.screens.KSuiteApp -import com.infomaniak.core.myksuite.ui.utils.MyKSuiteUiUtils.openMyKSuiteUpgradeBottomSheet import com.infomaniak.core.utils.FORMAT_SCHEDULE_MAIL import com.infomaniak.core.utils.year import com.infomaniak.lib.core.MatomoCore.TrackerAction @@ -58,7 +56,6 @@ import com.infomaniak.mail.MatomoMail.trackEvent import com.infomaniak.mail.MatomoMail.trackInAppReviewEvent import com.infomaniak.mail.MatomoMail.trackInAppUpdateEvent import com.infomaniak.mail.MatomoMail.trackMenuDrawerEvent -import com.infomaniak.mail.MatomoMail.trackMyKSuiteUpgradeBottomSheetEvent import com.infomaniak.mail.MatomoMail.trackNewMessageEvent import com.infomaniak.mail.R import com.infomaniak.mail.data.models.Folder @@ -290,8 +287,7 @@ class MainActivity : BaseActivity() { if (mainViewModel.currentMailbox.value?.isFreeMailbox == true && hasLimitBeenReached) { trackNewMessageEvent("trySendingWithDailyLimitReached") snackbarManager.setValue(getString(errorRes), buttonTitle = R.string.buttonUpgrade) { - trackMyKSuiteUpgradeBottomSheetEvent("dailyLimitReachedUpgrade") - navController.openMyKSuiteUpgradeBottomSheet(KSuiteApp.Mail) + openMyKSuiteUpgradeBottomSheet(navController, "dailyLimitReachedUpgrade") } } else { snackbarManager.setValue(getString(errorRes)) diff --git a/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt b/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt index d5e86780e8..fc74bd98c1 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt @@ -17,14 +17,11 @@ */ package com.infomaniak.mail.ui.bottomSheetDialogs -import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs -import com.infomaniak.core.myksuite.ui.screens.KSuiteApp -import com.infomaniak.core.myksuite.ui.utils.MyKSuiteUiUtils.openMyKSuiteUpgradeBottomSheet import com.infomaniak.lib.core.utils.setBackNavigationResult -import com.infomaniak.mail.MatomoMail.trackMyKSuiteUpgradeBottomSheetEvent import com.infomaniak.mail.MatomoMail.trackScheduleSendEvent import com.infomaniak.mail.R +import com.infomaniak.mail.utils.openMyKSuiteUpgradeBottomSheet import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @@ -55,8 +52,7 @@ class ScheduleSendBottomSheetDialog @Inject constructor() : SelectScheduleOption override fun onCustomScheduleOptionClicked() { if (navigationArgs.isCurrentMailboxFree) { - trackMyKSuiteUpgradeBottomSheetEvent("scheduledCustomDate") - findNavController().openMyKSuiteUpgradeBottomSheet(KSuiteApp.Mail) + openMyKSuiteUpgradeBottomSheet("scheduledCustomDate") } else { setBackNavigationResult(OPEN_DATE_AND_TIME_SCHEDULE_DIALOG, true) } diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/settings/SettingsFragment.kt b/app/src/main/java/com/infomaniak/mail/ui/main/settings/SettingsFragment.kt index 856705e3ce..27e8ca95bf 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/settings/SettingsFragment.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/settings/SettingsFragment.kt @@ -27,6 +27,7 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import com.infomaniak.core.myksuite.ui.data.MyKSuiteData +import com.infomaniak.core.myksuite.ui.utils.MatomoMyKSuite import com.infomaniak.core.myksuite.ui.utils.MyKSuiteUiUtils import com.infomaniak.core.myksuite.ui.views.MyKSuiteDashboardFragmentArgs import com.infomaniak.lib.applock.LockActivity @@ -122,7 +123,7 @@ class SettingsFragment : Fragment() { } private fun openMyKSuiteDashboard(myKSuiteData: MyKSuiteData) { - trackMyKSuiteEvent("openDashboard") + trackMyKSuiteEvent(MatomoMyKSuite.OPEN_DASHBOARD_NAME) val args = MyKSuiteDashboardFragmentArgs( dashboardData = MyKSuiteUiUtils.getDashboardData(requireContext(), myKSuiteData, AccountUtils.currentUser?.avatar) diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/settings/mailbox/SignatureSettingFragment.kt b/app/src/main/java/com/infomaniak/mail/ui/main/settings/mailbox/SignatureSettingFragment.kt index 306c8d7857..079d6483fc 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/settings/mailbox/SignatureSettingFragment.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/settings/mailbox/SignatureSettingFragment.kt @@ -23,18 +23,15 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels -import androidx.navigation.fragment.findNavController -import com.infomaniak.core.myksuite.ui.screens.KSuiteApp -import com.infomaniak.core.myksuite.ui.utils.MyKSuiteUiUtils.openMyKSuiteUpgradeBottomSheet import com.infomaniak.lib.core.utils.SnackbarUtils.showSnackbar import com.infomaniak.lib.core.utils.UtilsUi.openUrl import com.infomaniak.lib.core.utils.safeBinding import com.infomaniak.mail.BuildConfig -import com.infomaniak.mail.MatomoMail.trackMyKSuiteUpgradeBottomSheetEvent import com.infomaniak.mail.data.models.mailbox.Mailbox import com.infomaniak.mail.data.models.signature.Signature import com.infomaniak.mail.databinding.FragmentSignatureSettingBinding import com.infomaniak.mail.utils.extensions.setSystemBarsColors +import com.infomaniak.mail.utils.openMyKSuiteUpgradeBottomSheet import dagger.hilt.android.AndroidEntryPoint import io.realm.kotlin.ext.copyFromRealm @@ -88,8 +85,7 @@ class SignatureSettingFragment : Fragment() { private fun onSignatureClicked(signature: Signature, shouldBlockDummySignature: Boolean) = with(signatureSettingViewModel) { if (signature.isDummy && shouldBlockDummySignature) { - trackMyKSuiteUpgradeBottomSheetEvent("emptySignature") - findNavController().openMyKSuiteUpgradeBottomSheet(KSuiteApp.Mail) + openMyKSuiteUpgradeBottomSheet("emptySignature") return@with } diff --git a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt index 270ab5aca6..dc0c2e695b 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt @@ -43,14 +43,11 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController -import com.infomaniak.core.myksuite.ui.screens.KSuiteApp -import com.infomaniak.core.myksuite.ui.utils.MyKSuiteUiUtils.openMyKSuiteUpgradeBottomSheet import com.infomaniak.lib.core.utils.* import com.infomaniak.lib.core.utils.SnackbarUtils.showSnackbar import com.infomaniak.lib.richhtmleditor.StatusCommand.* import com.infomaniak.mail.MatomoMail.OPEN_FROM_DRAFT_NAME import com.infomaniak.mail.MatomoMail.trackAttachmentActionsEvent -import com.infomaniak.mail.MatomoMail.trackMyKSuiteUpgradeBottomSheetEvent import com.infomaniak.mail.MatomoMail.trackNewMessageEvent import com.infomaniak.mail.R import com.infomaniak.mail.data.LocalSettings @@ -75,13 +72,11 @@ import com.infomaniak.mail.ui.main.thread.AttachmentAdapter import com.infomaniak.mail.ui.newMessage.NewMessageRecipientFieldsManager.FieldType import com.infomaniak.mail.ui.newMessage.NewMessageViewModel.ImportationResult import com.infomaniak.mail.ui.newMessage.NewMessageViewModel.UiFrom +import com.infomaniak.mail.utils.* import com.infomaniak.mail.utils.HtmlUtils.processCids import com.infomaniak.mail.utils.JsoupParserUtil.jsoupParseWithLog -import com.infomaniak.mail.utils.SentryDebug -import com.infomaniak.mail.utils.SignatureUtils import com.infomaniak.mail.utils.UiUtils.PRIMARY_COLOR_CODE import com.infomaniak.mail.utils.Utils -import com.infomaniak.mail.utils.WebViewUtils import com.infomaniak.mail.utils.WebViewUtils.Companion.destroyAndClearHistory import com.infomaniak.mail.utils.WebViewUtils.Companion.setupNewMessageWebViewSettings import com.infomaniak.mail.utils.extensions.* @@ -776,8 +771,7 @@ class NewMessageFragment : Fragment() { if (isMailboxFull) { trackNewMessageEvent("trySendingWithMailboxFull") showSnackbar(R.string.myKSuiteSpaceFullAlert, actionButtonTitle = R.string.buttonUpgrade) { - trackMyKSuiteUpgradeBottomSheetEvent("notEnoughStorageUpgrade") - findNavController().openMyKSuiteUpgradeBottomSheet(KSuiteApp.Mail) + openMyKSuiteUpgradeBottomSheet("notEnoughStorageUpgrade") } } diff --git a/app/src/main/java/com/infomaniak/mail/utils/MyKSuiteNavUtils.kt b/app/src/main/java/com/infomaniak/mail/utils/MyKSuiteNavUtils.kt new file mode 100644 index 0000000000..902ed5fa6c --- /dev/null +++ b/app/src/main/java/com/infomaniak/mail/utils/MyKSuiteNavUtils.kt @@ -0,0 +1,35 @@ +/* + * Infomaniak Mail - Android + * Copyright (C) 2025 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.mail.utils + +import android.app.Activity +import androidx.fragment.app.Fragment +import androidx.navigation.NavController +import androidx.navigation.fragment.findNavController +import com.infomaniak.core.myksuite.ui.screens.KSuiteApp +import com.infomaniak.core.myksuite.ui.utils.MyKSuiteUiUtils.openMyKSuiteUpgradeBottomSheet +import com.infomaniak.mail.MatomoMail.trackMyKSuiteUpgradeBottomSheetEvent + +fun Fragment.openMyKSuiteUpgradeBottomSheet(matomoTrackerName: String) { + requireActivity().openMyKSuiteUpgradeBottomSheet(findNavController(), matomoTrackerName) +} + +fun Activity.openMyKSuiteUpgradeBottomSheet(navController: NavController, matomoTrackerName: String) { + trackMyKSuiteUpgradeBottomSheetEvent(matomoTrackerName) + navController.openMyKSuiteUpgradeBottomSheet(KSuiteApp.Mail) +}