Add analytics to when the subscription and gem purchase screen are opened

This commit is contained in:
Phillip Thelen 2018-08-31 12:14:58 +02:00
parent f7557491c0
commit 6844177968
4 changed files with 24 additions and 9 deletions

View file

@ -38,7 +38,7 @@ abstract class HabiticaLocalNotification(protected var context: Context, protect
notificationBuilder = notificationBuilder.setContentTitle(title)
}
if (message != null) {
notificationBuilder = notificationBuilder.setContentText(message)
notificationBuilder = notificationBuilder.setStyle(NotificationCompat.BigTextStyle().bigText(message))
}
this.setNotificationActions()

View file

@ -7,6 +7,7 @@ import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.os.Build
import android.support.v4.app.NotificationCompat
import android.support.v4.content.ContextCompat
import android.support.v4.content.WakefulBroadcastReceiver
import com.habitrpg.android.habitica.HabiticaBaseApplication
@ -92,9 +93,9 @@ class NotificationPublisher : WakefulBroadcastReceiver() {
private fun buildNotification(wasInactive: Boolean, registrationDate: Date? = null): Notification? {
val thisContext = context ?: return null
val notification: Notification
val builder = Notification.Builder(thisContext)
val builder = NotificationCompat.Builder(thisContext)
builder.setContentTitle(thisContext.getString(R.string.reminder_title))
builder.setContentText(getRandomDailyTip())
var notificationText = getRandomDailyTip()
if (registrationDate != null) {
val registrationCal = Calendar.getInstance()
registrationCal.time = registrationDate
@ -107,17 +108,19 @@ class NotificationPublisher : WakefulBroadcastReceiver() {
)
if (isSameDay) {
builder.setContentTitle(thisContext.getString(R.string.same_day_reminder_title))
builder.setContentText(thisContext.getString(R.string.same_day_reminder_text))
notificationText = thisContext.getString(R.string.same_day_reminder_text)
} else if (isPreviousDay) {
builder.setContentTitle(thisContext.getString(R.string.next_day_reminder_title))
builder.setContentText(thisContext.getString(R.string.next_day_reminder_text))
notificationText = thisContext.getString(R.string.next_day_reminder_text)
}
}
if (wasInactive) {
builder.setContentText(thisContext.getString(R.string.week_reminder_title))
builder.setContentText(thisContext.getString(R.string.week_reminder_text))
notificationText = thisContext.getString(R.string.week_reminder_text)
}
builder.setStyle(NotificationCompat.BigTextStyle().bigText(notificationText))
builder.setSmallIcon(R.drawable.ic_gryphon_white)
val notificationIntent = Intent(thisContext, MainActivity::class.java)
notificationIntent.putExtra("notificationIdentifier", "daily_reminder")
@ -129,7 +132,7 @@ class NotificationPublisher : WakefulBroadcastReceiver() {
builder.setContentIntent(intent)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder.setColor(ContextCompat.getColor(thisContext, R.color.brand_300))
builder.color = ContextCompat.getColor(thisContext, R.color.brand_300)
}
notification = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {

View file

@ -10,6 +10,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.extensions.notNull
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,6 +20,7 @@ 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 {
@ -27,7 +29,6 @@ class GemsPurchaseFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen
private val gems21View: GemPurchaseOptionsView? by bindView(R.id.gems_21_view)
private val gems42View: GemPurchaseOptionsView? by bindView(R.id.gems_42_view)
private val gems84View: GemPurchaseOptionsView? by bindView(R.id.gems_84_view)
private val supportTextView: TextView? by bindView(R.id.supportTextView)
@Inject
@ -40,6 +41,11 @@ class GemsPurchaseFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen
savedInstanceState: Bundle?): View? {
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)
}
@ -58,7 +64,7 @@ class GemsPurchaseFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen
val heartDrawable = BitmapDrawable(resources, HabiticaIconsHelper.imageOfHeartLarge())
supportTextView?.setCompoundDrawables(null, heartDrawable, null, null)
gems84View?.seedsImageButton?.setOnClickListener { (this.activity as GemPurchaseActivity).showSeedsPromo(getString(R.string.seeds_interstitial_gems), "store") }
gems84View?.seedsImageButton?.setOnClickListener { (this.activity as? GemPurchaseActivity)?.showSeedsPromo(getString(R.string.seeds_interstitial_gems), "store") }
}
override fun setupCheckout() {

View file

@ -14,6 +14,7 @@ import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.events.UserSubscribedEvent
import com.habitrpg.android.habitica.extensions.notNull
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.helpers.PurchaseTypes
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.user.User
@ -27,6 +28,7 @@ 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.HashMap
import javax.inject.Inject
class SubscriptionFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragment {
@ -81,6 +83,10 @@ 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)
}