Skip to content

Commit

Permalink
NTV-372: Update braze/segment dependency to 10.0.0 (#1532)
Browse files Browse the repository at this point in the history
* Upgrade braze/segment dependency

* Linter

* Fix tests

Co-authored-by: Hadia <hadiamohamed.iti@gmail.com>
Co-authored-by: Isabel Martin <arkariang@gmail.com>
  • Loading branch information
3 people committed Feb 7, 2022
1 parent 9d3453b commit 29caf1c
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 10 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Expand Up @@ -245,7 +245,7 @@ dependencies {

// Analytics Segment-Braze
implementation 'com.segment.analytics.android:analytics:4.10.0'
implementation 'com.appboy:appboy-segment-integration:9.0.0'
implementation 'com.appboy:appboy-segment-integration:10.0.0'

// Security
implementation 'com.perimeterx.sdk:msdk:1.16.4'
Expand Down
8 changes: 4 additions & 4 deletions app/src/main/java/com/kickstarter/libs/braze/BrazeClient.kt
Expand Up @@ -5,10 +5,10 @@ import android.content.Context
import android.util.Log
import com.appboy.Appboy
import com.appboy.AppboyFirebaseMessagingService
import com.appboy.AppboyLifecycleCallbackListener
import com.appboy.support.AppboyLogger
import com.appboy.ui.inappmessage.AppboyInAppMessageManager
import com.braze.BrazeActivityLifecycleCallbackListener
import com.braze.configuration.BrazeConfig
import com.braze.ui.inappmessage.BrazeInAppMessageManager
import com.google.firebase.messaging.RemoteMessage
import com.kickstarter.libs.Build
import com.kickstarter.libs.CurrentUserType
Expand Down Expand Up @@ -137,7 +137,7 @@ open class BrazeClient(
}

override fun getLifeCycleCallbacks(): Application.ActivityLifecycleCallbacks =
AppboyLifecycleCallbackListener(true, false)
BrazeActivityLifecycleCallbackListener(true, false)

override fun registerActivityLifecycleCallbacks(context: Context) {
if (isSDKEnabled() && context.isKSApplication()) {
Expand All @@ -152,7 +152,7 @@ open class BrazeClient(
*/
companion object {
fun setInAppCustomListener(currentUser: CurrentUserType, build: Build) {
AppboyInAppMessageManager.getInstance().setCustomInAppMessageManagerListener(InAppCustomListener(currentUser, build))
BrazeInAppMessageManager.getInstance().setCustomInAppMessageManagerListener(InAppCustomListener(currentUser, build))
}
}
}
@@ -1,8 +1,11 @@
package com.kickstarter.libs.braze

import com.appboy.models.IInAppMessage
import com.appboy.ui.inappmessage.InAppMessageOperation
import com.appboy.ui.inappmessage.listeners.AppboyDefaultInAppMessageManagerListener
import android.view.View
import com.braze.models.inappmessage.IInAppMessage
import com.braze.models.inappmessage.MessageButton
import com.braze.ui.inappmessage.InAppMessageCloser
import com.braze.ui.inappmessage.InAppMessageOperation
import com.braze.ui.inappmessage.listeners.IInAppMessageManagerListener
import com.kickstarter.libs.Build
import com.kickstarter.libs.CurrentUserType
import timber.log.Timber
Expand All @@ -16,7 +19,7 @@ import timber.log.Timber
class InAppCustomListener(
loggedInUser: CurrentUserType,
private val build: Build
) : AppboyDefaultInAppMessageManagerListener() {
) : IInAppMessageManagerListener {

private var handler: InAppCustomListenerHandler

Expand Down Expand Up @@ -45,4 +48,64 @@ class InAppCustomListener(
if (build.isDebug) Timber.d("${this.javaClass.canonicalName} beforeInAppMessageDisplayed: $shouldShowMessage")
return shouldShowMessage
}

/**
* Callback method called everytime the in app message is clicked. This gives the option of
* overriding braze's default behavior.
* If this method returns true, braze will only log a click and nothing else. If false, braze
* will log a click and close the in-app message automatically.
* @return false
*/
override fun onInAppMessageClicked(
inAppMessage: IInAppMessage?,
inAppMessageCloser: InAppMessageCloser?
): Boolean {
return false
}

/**
* Callback method called everytime the in app message button is clicked. This gives the option of
* overriding braze's default behavior.
* If this method returns true, braze will only log a click and nothing else. If false, braze
* will log a click and close the in-app message automatically.
*
* @return false
*/
override fun onInAppMessageButtonClicked(
inAppMessage: IInAppMessage?,
button: MessageButton?,
inAppMessageCloser: InAppMessageCloser?
): Boolean {
return false
}

override fun onInAppMessageDismissed(inAppMessage: IInAppMessage?) {
if (build.isDebug) Timber.d("${this.javaClass.canonicalName} onInAppMessageDismissed: ${inAppMessage?.toString()}")
}

override fun beforeInAppMessageViewOpened(
inAppMessageView: View?,
inAppMessage: IInAppMessage?
) {
if (build.isDebug) Timber.d("${this.javaClass.canonicalName} beforeInAppMessageViewOpened: ${inAppMessage?.toString()}")
}

override fun afterInAppMessageViewOpened(
inAppMessageView: View?,
inAppMessage: IInAppMessage?
) {
if (build.isDebug) Timber.d("${this.javaClass.canonicalName} afterInAppMessageViewOpened: ${inAppMessage?.toString()}")
}

override fun beforeInAppMessageViewClosed(
inAppMessageView: View?,
inAppMessage: IInAppMessage?
) {
if (build.isDebug) Timber.d("${this.javaClass.canonicalName} beforeInAppMessageViewClosed: ${inAppMessage?.toString()}")
}

override fun afterInAppMessageViewClosed(inAppMessage: IInAppMessage?) {
if (build.isDebug) Timber.d("${this.javaClass.canonicalName} afterInAppMessageViewClosed: ${inAppMessage?.toString()}")
}
}
@@ -1,6 +1,6 @@
package com.kickstarter.libs

import com.appboy.ui.inappmessage.InAppMessageOperation
import com.braze.ui.inappmessage.InAppMessageOperation
import com.kickstarter.KSRobolectricTestCase
import com.kickstarter.libs.braze.InAppCustomListener
import com.kickstarter.libs.braze.InAppCustomListenerHandler
Expand Down

0 comments on commit 29caf1c

Please sign in to comment.