send analytics events for navigation events

This commit is contained in:
Phillip Thelen 2019-06-12 18:23:19 +02:00
parent 73eece277c
commit 5eda98b2cb
10 changed files with 28 additions and 64 deletions

View file

@ -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() }

View file

@ -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

View file

@ -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
}

View file

@ -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)
}

View file

@ -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)
}

View file

@ -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)
}

View file

@ -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)
}

View file

@ -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)
}

View file

@ -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)
}

View file

@ -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()