From 6844177968fe4e2c9b7943323588a26fc39621af Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Fri, 31 Aug 2018 12:14:58 +0200 Subject: [PATCH] Add analytics to when the subscription and gem purchase screen are opened --- .../notifications/HabiticaLocalNotification.kt | 2 +- .../habitica/receivers/NotificationPublisher.kt | 15 +++++++++------ .../habitica/ui/fragments/GemsPurchaseFragment.kt | 10 ++++++++-- .../habitica/ui/fragments/SubscriptionFragment.kt | 6 ++++++ 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt index 1d9d52e15..f26bde6ce 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt @@ -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() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt index c83b6c3e5..e6dc2025e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt @@ -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) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.kt index 127cea523..4eeea5865 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/GemsPurchaseFragment.kt @@ -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() + 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() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.kt index 7f1a0e669..49e852f8c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/SubscriptionFragment.kt @@ -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() + 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) }