From c1e90a7ad4e37c0ba8cde82b05278a436fc889cf Mon Sep 17 00:00:00 2001 From: Ambroise Decouttere Date: Wed, 26 Feb 2025 14:19:38 +0100 Subject: [PATCH] feat: Matomo added for my kSuite --- .../FileActionsFloatingPanelViewController+Actions.swift | 2 ++ kDrive/UI/Controller/Files/FileDetailViewController.swift | 1 + .../Rights and Share/ShareAndRightsViewController.swift | 2 ++ .../Rights and Share/ShareLinkSettingsViewController.swift | 5 +++++ kDrive/UI/Controller/Home/HomeViewController.swift | 1 + kDrive/UI/Controller/Menu/ParameterTableViewController.swift | 1 + .../NewFolder/NewFolderTypeTableViewController.swift | 2 ++ kDrive/UI/View/Header view/FilesHeaderView.swift | 1 + kDrive/Utils/FileActionsHelper.swift | 1 + kDriveCore/Utils/MatomoUtils.swift | 3 ++- 10 files changed, 18 insertions(+), 1 deletion(-) diff --git a/kDrive/UI/Controller/Files/FileActionsFloatingPanelViewController+Actions.swift b/kDrive/UI/Controller/Files/FileActionsFloatingPanelViewController+Actions.swift index 735578f0c..4fd0f8e7e 100644 --- a/kDrive/UI/Controller/Files/FileActionsFloatingPanelViewController+Actions.swift +++ b/kDrive/UI/Controller/Files/FileActionsFloatingPanelViewController+Actions.swift @@ -292,6 +292,7 @@ extension FileActionsFloatingPanelViewController { driveFloatingPanelController.dismiss(animated: true) { guard let self else { return } self.router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "dropboxQuotaExceeded") } } present(driveFloatingPanelController, animated: true) @@ -300,6 +301,7 @@ extension FileActionsFloatingPanelViewController { if packId == .myKSuite, driveFileManager.drive.dropboxQuotaExceeded { router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "dropboxQuotaExceeded") return } diff --git a/kDrive/UI/Controller/Files/FileDetailViewController.swift b/kDrive/UI/Controller/Files/FileDetailViewController.swift index 0ef521486..0aadee3ec 100644 --- a/kDrive/UI/Controller/Files/FileDetailViewController.swift +++ b/kDrive/UI/Controller/Files/FileDetailViewController.swift @@ -924,6 +924,7 @@ extension FileDetailViewController: ShareLinkTableViewCellDelegate { func shareLinkSettingsButtonPressed() { if packId == .myKSuite, driveFileManager.drive.sharedLinkQuotaExceeded { router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "shareLinkQuotaExceeded") return } diff --git a/kDrive/UI/Controller/Files/Rights and Share/ShareAndRightsViewController.swift b/kDrive/UI/Controller/Files/Rights and Share/ShareAndRightsViewController.swift index 04fb4d553..e5617e475 100644 --- a/kDrive/UI/Controller/Files/Rights and Share/ShareAndRightsViewController.swift +++ b/kDrive/UI/Controller/Files/Rights and Share/ShareAndRightsViewController.swift @@ -214,6 +214,7 @@ extension ShareAndRightsViewController: UITableViewDelegate, UITableViewDataSour case .link: guard !showMykSuiteRestriction(fileHasShareLink: file.hasSharelink) else { router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "shareLinkQuotaExceeded") return } @@ -327,6 +328,7 @@ extension ShareAndRightsViewController: ShareLinkTableViewCellDelegate { func shareLinkSettingsButtonPressed() { if packId == .myKSuite, driveFileManager.drive.sharedLinkQuotaExceeded { router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "shareLinkQuotaExceeded") return } diff --git a/kDrive/UI/Controller/Files/Rights and Share/ShareLinkSettingsViewController.swift b/kDrive/UI/Controller/Files/Rights and Share/ShareLinkSettingsViewController.swift index 65b527e01..6b4df656e 100644 --- a/kDrive/UI/Controller/Files/Rights and Share/ShareLinkSettingsViewController.swift +++ b/kDrive/UI/Controller/Files/Rights and Share/ShareLinkSettingsViewController.swift @@ -253,6 +253,11 @@ extension ShareLinkSettingsViewController: UITableViewDelegate, UITableViewDataS if !option.isEnabled(drive: driveFileManager.drive) { cell.actionHandler = { [weak self] _ in self?.router.presentUpSaleSheet() + if option == .optionPassword { + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "shareLinkPassword") + } else if option == .optionDate { + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "shareLinkExpiryDate") + } } } diff --git a/kDrive/UI/Controller/Home/HomeViewController.swift b/kDrive/UI/Controller/Home/HomeViewController.swift index 55013c7a0..084337e8d 100644 --- a/kDrive/UI/Controller/Home/HomeViewController.swift +++ b/kDrive/UI/Controller/Home/HomeViewController.swift @@ -364,6 +364,7 @@ extension HomeViewController { cell.actionHandler = { [weak self] _ in guard let self else { return } router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "notEnoughStorageUpgrade") } cell.closeHandler = { [weak self] _ in guard let self else { return } diff --git a/kDrive/UI/Controller/Menu/ParameterTableViewController.swift b/kDrive/UI/Controller/Menu/ParameterTableViewController.swift index 5fac606e7..e14d1557c 100644 --- a/kDrive/UI/Controller/Menu/ParameterTableViewController.swift +++ b/kDrive/UI/Controller/Menu/ParameterTableViewController.swift @@ -299,6 +299,7 @@ class ParameterTableViewController: BaseGroupedTableViewController { apiFetcher: driveFileManager.apiFetcher, currentAccount: currentAccount ) + MatomoUtils.track(eventWithCategory: .myKSuite, name: "openDashboard") navigationController?.present(dashboardViewController, animated: true) } diff --git a/kDrive/UI/Controller/NewFolder/NewFolderTypeTableViewController.swift b/kDrive/UI/Controller/NewFolder/NewFolderTypeTableViewController.swift index 3e6008425..3ddd4d741 100644 --- a/kDrive/UI/Controller/NewFolder/NewFolderTypeTableViewController.swift +++ b/kDrive/UI/Controller/NewFolder/NewFolderTypeTableViewController.swift @@ -116,6 +116,7 @@ class NewFolderTypeTableViewController: UITableViewController { if content[indexPath.row] == .dropbox { if packId == .myKSuite, driveFileManager.drive.dropboxQuotaExceeded { router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "dropboxQuotaExceeded") } else if !driveFileManager.drive.pack.capabilities.useDropbox { let driveFloatingPanelController = DropBoxFloatingPanelViewController.instantiatePanel() let floatingPanelViewController = driveFloatingPanelController @@ -125,6 +126,7 @@ class NewFolderTypeTableViewController: UITableViewController { driveFloatingPanelController.dismiss(animated: true) { [weak self] in guard let self else { return } router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "manageDropbox") } } present(driveFloatingPanelController, animated: true) diff --git a/kDrive/UI/View/Header view/FilesHeaderView.swift b/kDrive/UI/View/Header view/FilesHeaderView.swift index 36f0cd72e..3fca181d4 100644 --- a/kDrive/UI/View/Header view/FilesHeaderView.swift +++ b/kDrive/UI/View/Header view/FilesHeaderView.swift @@ -119,6 +119,7 @@ class FilesHeaderView: UICollectionReusableView { @objc func didTapOnTrashHeaderView() { router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "trashStorageLimit") } @objc private func didTapOnCard() { diff --git a/kDrive/Utils/FileActionsHelper.swift b/kDrive/Utils/FileActionsHelper.swift index dd5d92a99..cebfd0d73 100644 --- a/kDrive/Utils/FileActionsHelper.swift +++ b/kDrive/Utils/FileActionsHelper.swift @@ -502,6 +502,7 @@ public final class FileActionsHelper { public static func upsaleFolderColor() { @InjectService var router: AppNavigable router.presentUpSaleSheet() + MatomoUtils.track(eventWithCategory: .myKSuiteUpgradeBottomSheet, name: "colorFolder") } #endif } diff --git a/kDriveCore/Utils/MatomoUtils.swift b/kDriveCore/Utils/MatomoUtils.swift index 44d89ad06..3469ba64e 100644 --- a/kDriveCore/Utils/MatomoUtils.swift +++ b/kDriveCore/Utils/MatomoUtils.swift @@ -44,7 +44,8 @@ public enum MatomoUtils { public enum EventCategory: String { case newElement, fileListFileAction, picturesFileAction, fileInfo, shareAndRights, colorFolder, categories, search, fileList, comment, drive, account, settings, photoSync, home, displayList, inApp, trash, - dropbox, preview, mediaPlayer, shortcuts, appReview, deeplink, publicShareAction, publicSharePasswordAction + dropbox, preview, mediaPlayer, shortcuts, appReview, deeplink, publicShareAction, publicSharePasswordAction, + myKSuite, myKSuiteUpgradeBottomSheet } public enum UserAction: String {