mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-22 05:38:55 +00:00
Add analytics to when the subscription and gem purchase screen are opened
This commit is contained in:
parent
f7557491c0
commit
6844177968
4 changed files with 24 additions and 9 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue