Skip to content

Instantly share code, notes, and snippets.

@shakir915
Created October 4, 2024 06:18
Show Gist options
  • Save shakir915/b3bcedc0aa0e86c02d93f455c3b6466c to your computer and use it in GitHub Desktop.
Save shakir915/b3bcedc0aa0e86c02d93f455c3b6466c to your computer and use it in GitHub Desktop.
package com.ems.a7diets.Utils
import com.ems.a7diets.Application.AppApplication
import io.branch.indexing.BranchUniversalObject
import io.branch.referral.Branch
import io.branch.referral.util.BranchEvent
import io.branch.referral.util.ContentMetadata
import kotlin.random.Random
var branch_sessionID= Random(73584).nextInt().toString() +System.currentTimeMillis().toString()
fun Any.branchEventClick(click_name:String?=null){
val buo = BranchUniversalObject()
.setCanonicalIdentifier(this.javaClass.canonicalName)
.setTitle("Click")
.setContentDescription("Click")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("page_path", this.javaClass.canonicalName)
.addCustomMetadata("page_name", this.javaClass.name.replace("Activity","",true)
.replace("Fragment","",true)
.replace("Adapter","",true)
)
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Click").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventPageView(){
val buo = BranchUniversalObject()
.setCanonicalIdentifier(this.javaClass.canonicalName)
.setTitle("Page View")
.setContentDescription("Page View")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("page_path", this.javaClass.canonicalName)
.addCustomMetadata("page_name", this.javaClass.name.replace("Activity","",true).replace("Fragment","",true))
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Page View").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventLogin(){
val buo = BranchUniversalObject()
.setCanonicalIdentifier("Login")
.setTitle("Login")
.setContentDescription("Login")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Login").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventPackageFav(package_name:String,package_id:String) {
val buo = BranchUniversalObject()
.setCanonicalIdentifier("Package")
.setTitle("Add To Favourite")
.setContentDescription("Add To Favourite")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("page_url", "Package")
.addCustomMetadata("page_path", "Package")
.addCustomMetadata("product_name", package_name)
.addCustomMetadata("package_name", package_name)
.addCustomMetadata("package_id", package_id)
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Add To Favourite").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventPlanFav(plan_name:String?,planId:String?,proteinId:String?) {
val buo = BranchUniversalObject()
.setCanonicalIdentifier("Plan")
.setTitle("Add To Favourite")
.setContentDescription("Add To Favourite")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("page_url", "Plan")
.addCustomMetadata("page_path", "Plan")
.addCustomMetadata("product_name", plan_name)
.addCustomMetadata("plan_name", plan_name)
.addCustomMetadata("plan_id", planId)
.addCustomMetadata("protein_id", proteinId)
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Add To Favourite").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventFirstSession() {
if (Preferences.isFirstSession) {
Preferences.isFirstSession=false
val buo = BranchUniversalObject()
.setCanonicalIdentifier("Loading Page / First Signup page")
.setTitle("First Sessoin")
.setContentDescription("First Session")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata(
"timestamp",
System.currentTimeMillis().div(1000).toString()
)
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Logout").addContentItems(buo)
.logEvent(AppApplication.instance)
}
}
fun Any.branchEventSignup() {
val buo = BranchUniversalObject()
.setCanonicalIdentifier("Signup")
.setTitle("Signup")
.setContentDescription("Signup")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Signup").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventLogout() {
val buo = BranchUniversalObject()
.setCanonicalIdentifier("Profile Page")
.setTitle("Logout")
.setContentDescription("Logout")
// .setContentImageUrl("https://lorempixel.com/400/400")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Logout").addContentItems(buo)
.logEvent(AppApplication.instance,)
Branch.getInstance().logout()
Branch.getInstance().resetUserSession()
}
fun Any.branchEventProductViewItem(product_name:String?,product_id:String?,product_price:String?,product_category:String?,image:String?) {
val buo = BranchUniversalObject()
.setCanonicalIdentifier(this.javaClass.canonicalName)
.setTitle("View Item")
.setContentDescription("View Item")
.setContentImageUrl(image?:"")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("page_name", this.javaClass.name.replace("Activity","",true)
.replace("Fragment","",true)
.replace("Adapter","",true)
)
.addCustomMetadata("page_url", this.javaClass.canonicalName)
.addCustomMetadata("page_path", this.javaClass.canonicalName)
.addCustomMetadata("product_name", product_name)
.addCustomMetadata("product_id", product_id)
.addCustomMetadata("product_price", product_price)
.addCustomMetadata("product_category", product_category)
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Add To Favourite").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventAddAddress(city:String?,) {
val buo = BranchUniversalObject()
.setCanonicalIdentifier(this.javaClass.canonicalName)
.setTitle("Address Added")
.setContentDescription("Address Added")
// .setContentImageUrl(image?:"")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("city", city)
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Address Added").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
var lastPaymentPageData:Array<Pair<String,String>>?=null
fun Any.branchEventCheckoutInitiated(array:Array<Pair<String,String>>) {
lastPaymentPageData=array
val buo = BranchUniversalObject()
.setCanonicalIdentifier(this.javaClass.canonicalName)
.setTitle("Checkout Initiated")
.setContentDescription("Checkout Initiated")
// .setContentImageUrl(image?:"")
.setContentMetadata(
ContentMetadata()
.apply {
array.forEach {
addCustomMetadata(it.first, it.second)
}
}
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Checkout Initiated").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventPaymentInfo(response: String) {
val buo = BranchUniversalObject()
.setCanonicalIdentifier(this.javaClass.canonicalName)
.setTitle("Add Payment Info")
.setContentDescription("Add Payment Info")
.setContentMetadata(
ContentMetadata()
.addCustomMetadata("payment_info", response)
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Add Payment Info").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
fun Any.branchEventPurchase() {
val buo = BranchUniversalObject()
.setCanonicalIdentifier(this.javaClass.canonicalName)
.setTitle("Purchase")
.setContentDescription("Purchase")
// .setContentImageUrl(image?:"")
.setContentMetadata(
ContentMetadata()
.apply {
lastPaymentPageData?.forEach {
addCustomMetadata(it.first, it.second)
}
}
.addCustomMetadata("user_id", Preferences.userId)
.addCustomMetadata("timestamp", System.currentTimeMillis().div(1000).toString())
.addCustomMetadata("session_id", branch_sessionID.toString())
)
BranchEvent("Purchase").addContentItems(buo)
.logEvent(AppApplication.instance,)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment