Skip to content

Commit

Permalink
Extend analytics coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
Radiokot committed Jan 15, 2025
1 parent d585b9f commit 0ae1a1d
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,16 @@ interface AppTracker {
fun identityVerificationResultApprovedDialog()
fun identityVerificationResultCreateAccountClicked()
fun homeScreen()
fun homeSaveSeedPhraseClicked ()
fun homeSaveSeedPhraseClicked()
fun homeIdentityVerificationClicked()
fun homeIdentityVerificationStateChanged(state: String)
fun homeCreateAccountClicked()
fun homeOnRampScreen()
fun homeOnRampSiteClicked(siteName: String)
fun homeOnRampBannerClicked()
fun homeUnlockFeatureDialog()
fun homeTotalBalanceClicked()
fun aboutScreen()
fun aboutScreenLinkClicked(url: String)
fun homeNewsScreen()
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,9 @@ class MatomoAppTracker(private val tracker: Tracker) : AppTracker {
override fun homeOnRampScreen() =
trackScreenAndImpression(SCREEN_ONRAMP)

override fun homeOnRampSiteClicked(siteName: String) =
trackInteraction(SCREEN_HOME, siteName, INTERACTION_CLICKED)

override fun homeOnRampBannerClicked() =
trackInteraction(SCREEN_HOME, "OnRamp banner", INTERACTION_CLICKED)

Expand All @@ -117,6 +120,15 @@ class MatomoAppTracker(private val tracker: Tracker) : AppTracker {
override fun homeTotalBalanceClicked() =
trackInteraction(SCREEN_HOME, "Wallet total balance", INTERACTION_CLICKED)

override fun aboutScreen() =
trackScreenAndImpression(SCREEN_ABOUT)

override fun aboutScreenLinkClicked(url: String) =
trackInteraction(SCREEN_ABOUT, url, INTERACTION_CLICKED)

override fun homeNewsScreen() =
trackScreenAndImpression(SCREEN_HOME_NEWS)

private fun track() =
TrackHelper.track()

Expand Down Expand Up @@ -179,6 +191,14 @@ class MatomoAppTracker(private val tracker: Tracker) : AppTracker {
title = "Home: OnRamp",
path = "/home/onramp"
)
private val SCREEN_ABOUT = Screen(
title = "About",
path = "/about"
)
private val SCREEN_HOME_NEWS = Screen(
title = "Home: News",
path = "/home/news"
)

private val DIALOG_ACTIVATE_ACCOUNT = Screen(
title = "Welcome: Activate account dialog",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,8 @@ class NoOpAppTracker : AppTracker {
override fun homeOnRampBannerClicked() = Log.d("No op")
override fun homeUnlockFeatureDialog() = Log.d("No op")
override fun homeTotalBalanceClicked() = Log.d("No op")
override fun homeOnRampSiteClicked(siteName: String) = Log.d("No op")
override fun aboutScreen() = Log.d("No op")
override fun aboutScreenLinkClicked(url: String) = Log.d("No op")
override fun homeNewsScreen() = Log.d("No op")
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.content.Intent
import android.net.Uri
import android.os.Bundle
import androidx.core.content.ContextCompat
import com.concordium.wallet.App
import com.concordium.wallet.AppConfig
import com.concordium.wallet.R
import com.concordium.wallet.databinding.ActivityAboutBinding
Expand All @@ -26,31 +27,39 @@ class AboutActivity : BaseActivity(
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

fun onUrlClicked(url: String) = when {
url == "#terms" -> {
startActivity(Intent(this, WelcomeTermsActivity::class.java))
}
App.appCore.tracker.aboutScreen()

fun onUrlClicked(url: String) {
App.appCore.tracker.aboutScreenLinkClicked(
url = url,
)

when {
url == "#terms" -> {
startActivity(Intent(this, WelcomeTermsActivity::class.java))
}

url.startsWith("mailto") -> {
val emailIntent = Intent(Intent.ACTION_SENDTO)
emailIntent.data = Uri.parse(url)
emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf(url))
try {
// start email intent
startActivity(
Intent.createChooser(
emailIntent,
getString(R.string.about_support)
url.startsWith("mailto") -> {
val emailIntent = Intent(Intent.ACTION_SENDTO)
emailIntent.data = Uri.parse(url)
emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf(url))
try {
// start email intent
startActivity(
Intent.createChooser(
emailIntent,
getString(R.string.about_support)
)
)
)
} catch (e: Exception) {
// Left empty on purpose
} catch (e: Exception) {
// Left empty on purpose
}
}
}

else -> {
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
ContextCompat.startActivity(this, browserIntent, null)
else -> {
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
ContextCompat.startActivity(this, browserIntent, null)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import androidx.lifecycle.viewModelScope
import com.concordium.wallet.App
import com.concordium.wallet.data.backend.news.NewsfeedRepository
import com.concordium.wallet.util.Log
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

class NewsOverviewViewModel(application: Application) : AndroidViewModel(application) {
Expand All @@ -24,6 +23,7 @@ class NewsOverviewViewModel(application: Application) : AndroidViewModel(applica
val isLoadingFailedVisibleLiveData: LiveData<Boolean> = _isLoadingFailedVisibleLiveData

init {
App.appCore.tracker.homeNewsScreen()
loadNews()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ class CcdOnrampAccountsViewModel(application: Application) : AndroidViewModel(ap
val listItemsLiveData: LiveData<List<CcdOnrampAccountListItem>> = _listItemsLiveData

init {
App.appCore.tracker.homeOnRampScreen()
postItems()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.os.Bundle
import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.get
import com.concordium.wallet.App
import com.concordium.wallet.R
import com.concordium.wallet.databinding.ActivityCcdOnrampSitesBinding
import com.concordium.wallet.ui.base.BaseActivity
Expand Down Expand Up @@ -55,6 +56,10 @@ class CcdOnrampSitesActivity : BaseActivity(
private fun onSiteClicked(site: CcdOnrampSite) {
val accountAddress = viewModel.accountAddress

App.appCore.tracker.homeOnRampSiteClicked(
siteName = site.name,
)

if (site.type == CcdOnrampSite.Type.DEX) {
openSite(site = site)
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class CcdOnrampSitesViewModel(application: Application) : AndroidViewModel(appli

init {
postItems()
App.appCore.tracker.homeOnRampScreen()
}

fun initialize(accountAddress: String?) {
Expand Down

0 comments on commit 0ae1a1d

Please sign in to comment.