Skip to content

Commit

Permalink
feat(MatomoMyKSuite): Enforce that each upgrade bottomsheet opening s…
Browse files Browse the repository at this point in the history
…hould have a matomo tracker
  • Loading branch information
FabianDevel authored and KevinBoulongne committed Mar 4, 2025
1 parent ca89aaf commit d33d5e3
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 30 deletions.
4 changes: 0 additions & 4 deletions app/src/main/java/com/infomaniak/mail/MatomoMail.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
6 changes: 1 addition & 5 deletions app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.*
Expand Down Expand Up @@ -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")
}
}

Expand Down
35 changes: 35 additions & 0 deletions app/src/main/java/com/infomaniak/mail/utils/MyKSuiteNavUtils.kt
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
*/
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)
}

0 comments on commit d33d5e3

Please sign in to comment.