Skip to content

Commit

Permalink
chore(PublicShareMatomo): Add matomo for general share actions
Browse files Browse the repository at this point in the history
  • Loading branch information
FabianDevel committed Oct 1, 2024
1 parent 2c50fa9 commit 783ad56
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.google.android.material.button.MaterialButton
import com.infomaniak.drive.MatomoDrive.ACTION_OPEN_BOOKMARK_NAME
import com.infomaniak.drive.MatomoDrive.ACTION_SAVE_TO_KDRIVE_NAME
import com.infomaniak.drive.MatomoDrive.trackPublicShareActionEvent
import com.infomaniak.drive.R
import com.infomaniak.drive.data.models.File
import com.infomaniak.drive.ui.SaveExternalFilesActivity
Expand All @@ -53,6 +56,7 @@ import com.infomaniak.drive.utils.FilePresenter.openFolder
import com.infomaniak.drive.utils.IOFile
import com.infomaniak.drive.views.FileInfoActionsView.OnItemClickListener.Companion.downloadFile
import com.infomaniak.lib.core.utils.SnackbarUtils.showSnackbar
import com.infomaniak.lib.core.utils.capitalizeFirstChar
import com.infomaniak.lib.core.utils.safeNavigate
import com.infomaniak.lib.core.utils.whenResultIsOk
import kotlinx.coroutines.Dispatchers
Expand Down Expand Up @@ -244,7 +248,10 @@ class PublicShareListFragment : FileListFragment() {

private fun executeOpenBookmarkAction(cacheFile: IOFile?) = runCatching {
val uri = FileProvider.getUriForFile(requireContext(), getString(R.string.FILE_AUTHORITY), cacheFile!!)
requireContext().openBookmarkIntent(cacheFile.name, uri)
with(requireContext()) {
trackPublicShareActionEvent(ACTION_OPEN_BOOKMARK_NAME)
openBookmarkIntent(cacheFile.name, uri)
}
}.onFailure { exception ->
exception.printStackTrace()
showSnackbar(
Expand All @@ -255,6 +262,7 @@ class PublicShareListFragment : FileListFragment() {

private fun downloadAllFiles() {
// RootSharedFile can either be a folder or a single file
requireContext().trackPublicShareActionEvent("downloadAllFiles")
publicShareViewModel.rootSharedFile.value?.let { file -> requireContext().downloadFile(drivePermissions, file) }
}

Expand All @@ -277,9 +285,11 @@ class PublicShareListFragment : FileListFragment() {
private fun setMainButton(importButton: MaterialButton) {
importButton.setOnClickListener {
if (AccountUtils.currentDriveId == -1) {
requireContext().trackPublicShareActionEvent("createAccountAd")
// TODO : Show bottomsheet to get app if this functionality is implemented by the back
Intent(requireActivity(), LoginActivity::class.java).also(::startActivity)
} else {
requireContext().trackPublicShareActionEvent("bulk${ACTION_SAVE_TO_KDRIVE_NAME.capitalizeFirstChar()}")
Intent(requireActivity(), SaveExternalFilesActivity::class.java).apply {
action = Intent.ACTION_SEND
putExtras(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import com.infomaniak.drive.BuildConfig
import com.infomaniak.drive.MatomoDrive.trackPublicShareActionEvent
import com.infomaniak.drive.R
import com.infomaniak.drive.data.models.ShareLink
import com.infomaniak.drive.databinding.FragmentPublicSharePasswordBinding
Expand All @@ -50,7 +51,12 @@ class PublicSharePasswordFragment : Fragment() {

// TODO: Remove this and call setupValidationButton instead
// Also change the layout (description, button's title, input visibility)
passwordValidateButton.setOnClickListener { requireActivity().openDeepLinkInBrowser(getPublicShareUrl()) }
passwordValidateButton.setOnClickListener {
with(requireActivity()) {
trackPublicShareActionEvent("openInBrowser")
openDeepLinkInBrowser(getPublicShareUrl())
}
}

publicSharePasswordEditText.addTextChangedListener { publicSharePasswordLayout.error = null }
observeSubmitPasswordResult()
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/com/infomaniak/drive/utils/FilePresenter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ import androidx.navigation.fragment.findNavController
import com.dd.plist.NSDictionary
import com.dd.plist.NSString
import com.dd.plist.PropertyListParser
import com.infomaniak.drive.MatomoDrive.ACTION_OPEN_BOOKMARK_NAME
import com.infomaniak.drive.MatomoDrive.trackEvent
import com.infomaniak.drive.MatomoDrive.trackFileActionEvent
import com.infomaniak.drive.R
import com.infomaniak.drive.data.models.File
import com.infomaniak.drive.data.models.File.Companion.getCloudAndFileUris
Expand Down Expand Up @@ -91,6 +93,7 @@ object FilePresenter {
}

fun Fragment.openBookmark(file: File) {
requireContext().trackFileActionEvent(ACTION_OPEN_BOOKMARK_NAME)
if (file.canUseStoredFile(requireContext())) {
openBookmarkIntent(file)
} else {
Expand Down

0 comments on commit 783ad56

Please sign in to comment.