mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-19 20:29:02 +00:00
send analytics events for navigation events
This commit is contained in:
parent
73eece277c
commit
5eda98b2cb
10 changed files with 28 additions and 64 deletions
|
|
@ -54,7 +54,6 @@ import io.reactivex.exceptions.Exceptions
|
|||
import io.reactivex.functions.Consumer
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
|
|
@ -153,13 +152,11 @@ class LoginActivity : BaseActivity(), Consumer<UserAuthResponse> {
|
|||
backgroundContainer.post { backgroundContainer.scrollTo(0, backgroundContainer.bottom) }
|
||||
backgroundContainer.setScrollingEnabled(false)
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
val window = window
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
window.statusBarColor = ContextCompat.getColor(this, R.color.black_20_alpha)
|
||||
}
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
|
||||
val window = window
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
window.statusBarColor = ContextCompat.getColor(this, R.color.black_20_alpha)
|
||||
}
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
|
||||
|
||||
newGameButton.setOnClickListener { newGameButtonClicked() }
|
||||
showLoginButton.setOnClickListener { showLoginButtonClicked() }
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
|
|||
val view = createActionableNotificationItem(notification, "")
|
||||
|
||||
// hide view until we have loaded quest data and populated the values
|
||||
view.visibility = View.GONE
|
||||
view?.visibility = View.GONE
|
||||
|
||||
compositeSubscription.add(inventoryRepository.getQuestContent(data?.questKey ?: "")
|
||||
.firstElement()
|
||||
|
|
@ -283,16 +283,16 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
|
|||
return view
|
||||
}
|
||||
|
||||
private fun updateQuestInvitationView(view: View, questContent: QuestContent) {
|
||||
val messageTextView = view.findViewById(R.id.message_text) as? TextView
|
||||
private fun updateQuestInvitationView(view: View?, questContent: QuestContent) {
|
||||
val messageTextView = view?.findViewById(R.id.message_text) as? TextView
|
||||
messageTextView?.text = fromHtml(getString(R.string.invited_to_quest, questContent.text))
|
||||
|
||||
val questObjectiveLabelView = view.findViewById(R.id.quest_objective_label) as? TextView
|
||||
val questObjectiveTextView = view.findViewById(R.id.quest_objective_text) as? TextView
|
||||
val questDifficultyLabelView = view.findViewById(R.id.difficulty_label) as? TextView
|
||||
val questObjectiveLabelView = view?.findViewById(R.id.quest_objective_label) as? TextView
|
||||
val questObjectiveTextView = view?.findViewById(R.id.quest_objective_text) as? TextView
|
||||
val questDifficultyLabelView = view?.findViewById(R.id.difficulty_label) as? TextView
|
||||
questDifficultyLabelView?.text = getText(R.string.difficulty)
|
||||
questDifficultyLabelView?.append(":")
|
||||
val questDifficultyView = view.findViewById(R.id.quest_difficulty) as? RatingBar
|
||||
val questDifficultyView = view?.findViewById(R.id.quest_difficulty) as? RatingBar
|
||||
|
||||
if (questContent.isBossQuest) {
|
||||
questObjectiveLabelView?.text = getString(R.string.defeat)
|
||||
|
|
@ -308,18 +308,17 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
|
|||
}
|
||||
|
||||
questObjectiveLabelView?.append(":")
|
||||
val questDetailView = view.findViewById(R.id.quest_detail_view) as? View
|
||||
val questDetailView = view?.findViewById(R.id.quest_detail_view) as? View
|
||||
questDetailView?.visibility = View.VISIBLE
|
||||
view.visibility = View.VISIBLE
|
||||
view?.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
private fun createActionableNotificationItem(
|
||||
notification: Notification,
|
||||
messageText: CharSequence
|
||||
): View {
|
||||
val item = inflater.inflate(R.layout.notification_item_actionable, notification_items, false)
|
||||
messageText: CharSequence): View? {
|
||||
val item = inflater?.inflate(R.layout.notification_item_actionable, notification_items, false)
|
||||
|
||||
val acceptButton = item.findViewById(R.id.accept_button) as? Button
|
||||
val acceptButton = item?.findViewById(R.id.accept_button) as? Button
|
||||
acceptButton?.setOnClickListener {
|
||||
val resultIntent = Intent()
|
||||
resultIntent.putExtra("notificationId", notification.id)
|
||||
|
|
@ -327,7 +326,7 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
|
|||
finish()
|
||||
}
|
||||
|
||||
val rejectButton = item.findViewById(R.id.reject_button) as? Button
|
||||
val rejectButton = item?.findViewById(R.id.reject_button) as? Button
|
||||
rejectButton?.setOnClickListener {
|
||||
val resultIntent = Intent()
|
||||
resultIntent.putExtra("notificationId", notification.id)
|
||||
|
|
@ -335,7 +334,7 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
|
|||
finish()
|
||||
}
|
||||
|
||||
val messageTextView = item.findViewById(R.id.message_text) as? TextView
|
||||
val messageTextView = item?.findViewById(R.id.message_text) as? TextView
|
||||
messageTextView?.text = messageText
|
||||
|
||||
return item
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import androidx.fragment.app.DialogFragment
|
|||
import com.habitrpg.android.habitica.HabiticaBaseApplication
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
import com.habitrpg.android.habitica.data.TutorialRepository
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
import com.habitrpg.android.habitica.ui.activities.MainActivity
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
|
|
@ -57,6 +58,10 @@ abstract class BaseFragment : DialogFragment() {
|
|||
|
||||
}
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = this.javaClass.simpleName
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import android.widget.TextView
|
|||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
import com.habitrpg.android.habitica.extensions.inflate
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.helpers.PurchaseTypes
|
||||
import com.habitrpg.android.habitica.proxy.CrashlyticsProxy
|
||||
import com.habitrpg.android.habitica.ui.GemPurchaseOptionsView
|
||||
|
|
@ -19,7 +18,6 @@ import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
|
|||
import org.solovyev.android.checkout.BillingRequests
|
||||
import org.solovyev.android.checkout.Inventory
|
||||
import org.solovyev.android.checkout.ProductTypes
|
||||
import java.util.HashMap
|
||||
import javax.inject.Inject
|
||||
|
||||
class GemsPurchaseFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragment {
|
||||
|
|
@ -41,10 +39,6 @@ class GemsPurchaseFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen
|
|||
|
||||
super.onCreateView(inflater, container, savedInstanceState)
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = "Gem Purchase Page"
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
return container?.inflate(R.layout.fragment_gem_purchase)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import com.habitrpg.android.habitica.components.UserComponent
|
|||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.events.UserSubscribedEvent
|
||||
import com.habitrpg.android.habitica.extensions.addCancelButton
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.helpers.AppConfigManager
|
||||
import com.habitrpg.android.habitica.helpers.PurchaseTypes
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
|
|
@ -24,15 +23,14 @@ import com.habitrpg.android.habitica.ui.activities.GiftIAPActivity
|
|||
import com.habitrpg.android.habitica.ui.helpers.bindOptionalView
|
||||
import com.habitrpg.android.habitica.ui.helpers.bindView
|
||||
import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard
|
||||
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
|
||||
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
|
||||
import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionDetailsView
|
||||
import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionOptionView
|
||||
import io.reactivex.functions.Consumer
|
||||
import kotlinx.android.synthetic.main.fragment_subscription.*
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.solovyev.android.checkout.*
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
class SubscriptionFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragment {
|
||||
|
|
@ -92,10 +90,6 @@ class SubscriptionFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen
|
|||
|
||||
fetchUser(null)
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = "Subscription Page"
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
return inflater.inflate(R.layout.fragment_subscription, container, false)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import com.habitrpg.android.habitica.data.SetupCustomizationRepository
|
|||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.extensions.inflate
|
||||
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.models.SetupCustomization
|
||||
import com.habitrpg.android.habitica.models.user.User
|
||||
import com.habitrpg.android.habitica.ui.AvatarView
|
||||
|
|
@ -68,11 +67,6 @@ class AvatarSetupFragment : BaseFragment() {
|
|||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
super.onCreateView(inflater, container, savedInstanceState)
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = "Avatar Setup"
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
return container?.inflate(R.layout.fragment_setup_avatar)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,11 +10,9 @@ import android.widget.TextView
|
|||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
import com.habitrpg.android.habitica.extensions.inflate
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
|
||||
import com.habitrpg.android.habitica.ui.helpers.bindOptionalView
|
||||
import com.habitrpg.android.habitica.ui.helpers.resetViews
|
||||
import java.util.*
|
||||
|
||||
class IntroFragment : BaseFragment() {
|
||||
|
||||
|
|
@ -34,12 +32,6 @@ class IntroFragment : BaseFragment() {
|
|||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
super.onCreateView(inflater, container, savedInstanceState)
|
||||
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = "Intro"
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
return container?.inflate(R.layout.fragment_intro)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
import com.habitrpg.android.habitica.extensions.inflate
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager
|
||||
import com.habitrpg.android.habitica.models.tasks.Days
|
||||
import com.habitrpg.android.habitica.models.tasks.Task
|
||||
import com.habitrpg.android.habitica.models.user.User
|
||||
|
|
@ -38,10 +37,6 @@ class TaskSetupFragment : BaseFragment() {
|
|||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
super.onCreateView(inflater, container, savedInstanceState)
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = "Task Setup"
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
return container?.inflate(R.layout.fragment_setup_tasks)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,11 +56,6 @@ class WelcomeFragment : BaseFragment() {
|
|||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
super.onCreateView(inflater, container, savedInstanceState)
|
||||
|
||||
val additionalData = HashMap<String, Any>()
|
||||
additionalData["page"] = "Welcome Screen"
|
||||
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)
|
||||
|
||||
return container?.inflate(R.layout.fragment_welcome)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import androidx.core.os.bundleOf
|
|||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
import com.habitrpg.android.habitica.data.SocialRepository
|
||||
import com.habitrpg.android.habitica.extensions.notNull
|
||||
import com.habitrpg.android.habitica.helpers.MainNavigationController
|
||||
import com.habitrpg.android.habitica.helpers.NotificationsManager
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
|
|
@ -285,7 +284,7 @@ open class NotificationsViewModel : BaseViewModel() {
|
|||
}
|
||||
|
||||
fun acceptGroupInvitation(groupId: String?) {
|
||||
groupId.notNull {
|
||||
groupId?.let {
|
||||
disposable.add(socialRepository.joinGroup(it)
|
||||
.subscribe(Consumer {
|
||||
refreshNotifications()
|
||||
|
|
@ -294,7 +293,7 @@ open class NotificationsViewModel : BaseViewModel() {
|
|||
}
|
||||
|
||||
fun rejectGroupInvite(groupId: String?) {
|
||||
groupId.notNull {
|
||||
groupId?.let {
|
||||
disposable.add(socialRepository.rejectGroupInvite(it)
|
||||
.subscribe(Consumer {
|
||||
refreshNotifications()
|
||||
|
|
@ -303,7 +302,7 @@ open class NotificationsViewModel : BaseViewModel() {
|
|||
}
|
||||
|
||||
private fun acceptQuestInvitation() {
|
||||
party?.id.notNull {
|
||||
party?.id?.let {
|
||||
disposable.add(socialRepository.acceptQuest(null, it)
|
||||
.subscribe(Consumer {
|
||||
refreshNotifications()
|
||||
|
|
@ -312,7 +311,7 @@ open class NotificationsViewModel : BaseViewModel() {
|
|||
}
|
||||
|
||||
private fun rejectQuestInvitation() {
|
||||
party?.id.notNull {
|
||||
party?.id?.let {
|
||||
disposable.add(socialRepository.rejectQuest(null, it)
|
||||
.subscribe(Consumer {
|
||||
refreshNotifications()
|
||||
|
|
|
|||
Loading…
Reference in a new issue