mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-31 19:20:34 +00:00
analytics changes
This commit is contained in:
parent
d1c28a8dff
commit
6a252e0e97
11 changed files with 32 additions and 10 deletions
|
|
@ -147,7 +147,7 @@ android {
|
|||
buildConfigField "String", "TESTING_LEVEL", "\"production\""
|
||||
resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW"
|
||||
|
||||
versionCode 3026
|
||||
versionCode 3033
|
||||
versionName "3.3.1"
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.amplitude.api.Amplitude
|
|||
import com.habitrpg.android.habitica.BuildConfig
|
||||
import org.json.JSONException
|
||||
import org.json.JSONObject
|
||||
|
||||
import java.util.HashMap
|
||||
|
||||
object AmplitudeManager {
|
||||
var EVENT_CATEGORY_BEHAVIOUR = "behaviour"
|
||||
|
|
@ -35,4 +35,10 @@ object AmplitudeManager {
|
|||
}
|
||||
Amplitude.getInstance().logEvent(eventAction, eventProperties)
|
||||
}
|
||||
|
||||
fun sendNavigationEvent(page: String) {
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = page
|
||||
sendEvent("navigated", EVENT_CATEGORY_NAVIGATION, EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
}
|
||||
}
|
||||
|
|
@ -70,7 +70,7 @@ class PushNotificationManager(var apiClient: ApiClient, private val sharedPrefer
|
|||
val notificationFactory = HabiticaLocalNotificationFactory()
|
||||
val notification = notificationFactory.build(remoteMessageIdentifier, context)
|
||||
if (userIsSubscribedToNotificationType(remoteMessageIdentifier) && notification != null) {
|
||||
if (remoteMessage.data.containsKey("isPromo")) {
|
||||
if (remoteMessage.data.containsKey("sendAnalytics")) {
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["identifier"] = remoteMessageIdentifier ?: ""
|
||||
AmplitudeManager.sendEvent(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import com.habitrpg.android.habitica.data.UserRepository
|
|||
import com.habitrpg.android.habitica.databinding.ActivityAdventureGuideBinding
|
||||
import com.habitrpg.android.habitica.databinding.AdventureGuideItemBinding
|
||||
import com.habitrpg.android.habitica.extensions.fromHtml
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
import com.habitrpg.android.habitica.models.user.User
|
||||
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
|
||||
|
|
@ -66,6 +67,8 @@ class AdventureGuideActivity : BaseActivity() {
|
|||
|
||||
val descriptionText = getString(R.string.adventure_guide_description)
|
||||
binding.descriptionView.setText(descriptionText.fromHtml(), TextView.BufferType.SPANNABLE)
|
||||
|
||||
AmplitudeManager.sendNavigationEvent("adventure guide screen")
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
|
|
|
|||
|
|
@ -149,7 +149,6 @@ class LoginActivity : BaseActivity(), Consumer<UserAuthResponse> {
|
|||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = this.javaClass.simpleName
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
binding.backgroundContainer.post { binding.backgroundContainer.scrollTo(0, binding.backgroundContainer.bottom) }
|
||||
binding.backgroundContainer.isScrollable = false
|
||||
|
|
|
|||
|
|
@ -377,7 +377,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
if ((intent.hasExtra("notificationIdentifier") || intent.hasExtra("openURL")) && lastNotificationOpen != intent.getLongExtra("notificationTimeStamp", 0)) {
|
||||
lastNotificationOpen = intent.getLongExtra("notificationTimeStamp", 0)
|
||||
val identifier = intent.getStringExtra("notificationIdentifier") ?: ""
|
||||
if (intent.hasExtra("isPromo")) {
|
||||
if (intent.hasExtra("sendAnalytics")) {
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["identifier"] = identifier
|
||||
AmplitudeManager.sendEvent(
|
||||
|
|
|
|||
|
|
@ -59,10 +59,6 @@ abstract class BaseFragment<VB: ViewBinding> : Fragment() {
|
|||
|
||||
}
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = this.javaClass.simpleName
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
binding = createBinding(inflater, container)
|
||||
return binding?.root
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@ class GemsPurchaseFragment : BaseFragment<FragmentGemPurchaseBinding>(), GemPurc
|
|||
} else {
|
||||
binding?.promoBanner?.visibility = View.GONE
|
||||
}
|
||||
|
||||
AmplitudeManager.sendNavigationEvent("gem screen")
|
||||
}
|
||||
|
||||
override fun setupCheckout() {
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import com.habitrpg.android.habitica.events.UserSubscribedEvent
|
|||
import com.habitrpg.android.habitica.extensions.addCancelButton
|
||||
import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
|
||||
import com.habitrpg.android.habitica.extensions.layoutInflater
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.helpers.AppConfigManager
|
||||
import com.habitrpg.android.habitica.helpers.PurchaseHandler
|
||||
import com.habitrpg.android.habitica.helpers.PurchaseTypes
|
||||
|
|
@ -108,6 +109,8 @@ class SubscriptionFragment : BaseFragment<FragmentSubscriptionBinding>(), GemPur
|
|||
DataBindingUtils.loadImage(binding?.subBenefitsMysteryItemIcon, "shop_set_mystery_${it.key?.split("_")?.last()}")
|
||||
binding?.subBenefitsMysteryItemText?.text = context?.getString(R.string.subscribe_listitem3_description_new, it.text)
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
|
||||
AmplitudeManager.sendNavigationEvent("subscription screen")
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
|
|
|||
|
|
@ -358,7 +358,7 @@ open class TaskRecyclerViewFragment : BaseFragment<FragmentRefreshRecyclerviewBi
|
|||
handleTaskResult(result, task.value.toInt())
|
||||
if (!DateUtils.isToday(sharedPreferences.getLong("last_task_reporting", 0))) {
|
||||
AmplitudeManager.sendEvent(
|
||||
"task score",
|
||||
"task scored",
|
||||
AmplitudeManager.EVENT_CATEGORY_BEHAVIOUR,
|
||||
AmplitudeManager.EVENT_HITTYPE_EVENT
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,10 +5,12 @@ import android.content.Intent
|
|||
import android.content.SharedPreferences
|
||||
import android.graphics.PorterDuff
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.view.*
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.edit
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
|
|
@ -364,6 +366,17 @@ class TasksFragment : BaseMainFragment<FragmentViewpagerBinding>(), SearchView.O
|
|||
fragment?.binding?.recyclerView?.scrollToPosition(0)
|
||||
}
|
||||
}
|
||||
|
||||
if (!DateUtils.isToday(sharedPreferences.getLong("last_creation_reporting", 0))) {
|
||||
AmplitudeManager.sendEvent(
|
||||
"task created",
|
||||
AmplitudeManager.EVENT_CATEGORY_BEHAVIOUR,
|
||||
AmplitudeManager.EVENT_HITTYPE_EVENT
|
||||
)
|
||||
sharedPreferences.edit {
|
||||
putLong("last_creation_reporting", Date().time)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue