add more navigation events

This commit is contained in:
Phillip Thelen 2023-08-02 14:12:01 +02:00
parent 59e19f3962
commit bf43a3c96c
10 changed files with 39 additions and 2 deletions

View file

@ -132,7 +132,7 @@ internal class StableRecyclerFragmentTest : FragmentTestCase<StableRecyclerFragm
}
@Test fun displaysMountDetail() {
fragment.itemType = "mounts"
fragment.itemTypeText = "mounts"
launchFragment()
screen {
recycler {

View file

@ -59,7 +59,10 @@ import com.google.accompanist.systemuicontroller.rememberSystemUiController
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.extensions.addCloseButton
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.EventCategory
import com.habitrpg.android.habitica.helpers.HitType
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.PurchaseHandler
import com.habitrpg.android.habitica.ui.theme.HabiticaTheme
@ -129,6 +132,7 @@ class BirthdayActivity : BaseActivity() {
}) {
if ((userViewModel.user.value?.gemCount ?: 0) < 60) {
val dialog = InsufficientGemsDialog(this@BirthdayActivity, 3)
Analytics.sendEvent("show insufficient gems modal", EventCategory.BEHAVIOUR, HitType.EVENT, mapOf("reason" to "birthday"))
dialog.show()
return@launchCatching
}

View file

@ -11,6 +11,9 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.ShopArmoireGearBinding
import com.habitrpg.android.habitica.databinding.ShopHeaderBinding
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.EventCategory
import com.habitrpg.android.habitica.helpers.HitType
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.models.shops.Shop
import com.habitrpg.android.habitica.models.shops.ShopCategory
@ -148,6 +151,7 @@ class ShopRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapter<Vi
} else {
mainActivity?.let { activity ->
val dialog = InsufficientGemsDialog(activity, 3)
Analytics.sendEvent("show insufficient gems modal", EventCategory.BEHAVIOUR, HitType.EVENT, mapOf("reason" to "class change"))
dialog.show()
}
}

View file

@ -25,6 +25,7 @@ import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.databinding.BottomSheetBackgroundsFilterBinding
import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding
import com.habitrpg.android.habitica.extensions.setTintWith
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.models.CustomizationFilter
import com.habitrpg.android.habitica.models.inventory.Customization
import com.habitrpg.android.habitica.models.user.OwnedCustomization
@ -148,6 +149,8 @@ class AvatarCustomizationFragment :
Log.e("NewFilter", it.toString())
}
}
Analytics.sendNavigationEvent("$type screen")
}
override fun onDestroy() {

View file

@ -10,6 +10,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.adapter.CustomizationEquipmentRecyclerViewAdapter
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
@ -97,6 +98,8 @@ class AvatarEquipmentFragment :
this.loadEquipment()
userViewModel.user.observe(viewLifecycleOwner) { updateUser(it) }
Analytics.sendNavigationEvent("$type screen")
}
private fun loadEquipment() {

View file

@ -16,7 +16,10 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.EventCategory
import com.habitrpg.android.habitica.helpers.HitType
import com.habitrpg.android.habitica.models.shops.Shop
import com.habitrpg.android.habitica.models.shops.ShopCategory
import com.habitrpg.android.habitica.models.shops.ShopItem
@ -214,6 +217,8 @@ open class ShopFragment : BaseMainFragment<FragmentRefreshRecyclerviewBinding>()
.map { rewards -> rewards.map { it.key } }
.collect { adapter?.setPinnedItemKeys(it) }
}
Analytics.sendNavigationEvent("$shopIdentifier screen")
}
open fun initializeCurrencyViews() {
@ -231,6 +236,7 @@ open class ShopFragment : BaseMainFragment<FragmentRefreshRecyclerviewBinding>()
context?.let { context ->
if (user.gemCount <= 2) {
val dialog = mainActivity?.let { InsufficientGemsDialog(it, 3) }
Analytics.sendEvent("show insufficient gems modal", EventCategory.BEHAVIOUR, HitType.EVENT, mapOf("reason" to "class change"))
dialog?.show()
return@launch
}

View file

@ -20,7 +20,10 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.ContentRepository
import com.habitrpg.android.habitica.extensions.addCancelButton
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.EventCategory
import com.habitrpg.android.habitica.helpers.HitType
import com.habitrpg.android.habitica.helpers.SoundManager
import com.habitrpg.android.habitica.helpers.TaskAlarmManager
import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager
@ -175,6 +178,7 @@ class PreferencesFragment :
} else {
activity?.let { activity ->
val dialog = InsufficientGemsDialog(activity, 3)
Analytics.sendEvent("show insufficient gems modal", EventCategory.BEHAVIOUR, HitType.EVENT, mapOf("reason" to "class change"))
dialog.show()
}
}

View file

@ -10,6 +10,9 @@ import androidx.lifecycle.lifecycleScope
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.DialogHatchPetButtonBinding
import com.habitrpg.android.habitica.databinding.DialogPetSuggestHatchBinding
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.EventCategory
import com.habitrpg.android.habitica.helpers.HitType
import com.habitrpg.android.habitica.interactors.HatchPetUseCase
import com.habitrpg.android.habitica.models.inventory.Animal
import com.habitrpg.android.habitica.models.inventory.Egg
@ -52,6 +55,11 @@ class PetSuggestHatchDialog(context: Context) : HabiticaAlertDialog(context) {
userViewModel = hiltEntryPoint.mainUserViewModel()
}
override fun show() {
super.show()
Analytics.sendNavigationEvent("pet suggestion modal")
}
fun configure(
pet: Animal,
egg: Egg?,
@ -158,6 +166,7 @@ class PetSuggestHatchDialog(context: Context) : HabiticaAlertDialog(context) {
val activity = (getActivity() as? MainActivity) ?: return@addButton
if ((userViewModel.user.value?.gemCount ?: hatchPrice) < hatchPrice) {
InsufficientGemsDialog(activity, hatchPrice).show()
Analytics.sendEvent("show insufficient gems modal", EventCategory.BEHAVIOUR, HitType.EVENT, mapOf("reason" to "pet suggest modal"))
return@addButton
}
val thisPotion = potion ?: return@addButton

View file

@ -20,7 +20,10 @@ import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.extensions.addCancelButton
import com.habitrpg.android.habitica.extensions.addCloseButton
import com.habitrpg.android.habitica.extensions.getShortRemainingString
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.EventCategory
import com.habitrpg.android.habitica.helpers.HapticFeedbackManager
import com.habitrpg.android.habitica.helpers.HitType
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.models.shops.Shop
import com.habitrpg.android.habitica.models.shops.ShopItem
@ -359,6 +362,7 @@ class PurchaseDialog(
}
"gold" == shopItem.currency -> InsufficientGoldDialog(context)
"gems" == shopItem.currency -> {
Analytics.sendEvent("show insufficient gems modal", EventCategory.BEHAVIOUR, HitType.EVENT, mapOf("reason" to "purchase modal", "item" to shopItem.key))
parentActivity?.let { activity -> InsufficientGemsDialog(activity, shopItem.value) }
}
"hourglasses" == shopItem.currency -> InsufficientHourglassesDialog(context)

View file

@ -1,2 +1,2 @@
NAME=4.2.4
CODE=6261
CODE=6271