This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.meesho.meshlytics.transformer | |
import java.util.regex.Pattern | |
/** | |
* @param patternMaps a list of [PatternMap] where each [PatternMap.patternToFind] is replaced | |
* via [PatternMap.replaceWith] | |
*/ | |
class PatternTransformer(private val patternMaps: List<PatternMap>) : KeyTransformer { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.meesho.meshlytics.transformer | |
/** | |
* Converts the key to lower case. | |
*/ | |
class LowerCaseTransformer : KeyTransformer { | |
override fun transformKey(inputKey: String) = inputKey.toLowerCase() | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.meesho.meshlytics.transformer | |
/** | |
* Abstract implementation of transforming input keys of events as required. | |
*/ | |
interface KeyTransformer { | |
/** | |
* @param inputKey key to be transformed like event name or property key | |
* Returns a string after applying transformation on [inputKey] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.meesho.meshlyticssample.analytics | |
import com.meesho.meshlytics.DispatcherResolver | |
import com.meesho.meshlyticssample.analytics.dispatchers.DispatcherIds | |
import javax.inject.Inject | |
import kotlin.experimental.or | |
class DispatcherResolverImpl @Inject internal constructor() : DispatcherResolver { | |
private val eventDispatcherMap: Map<String, Byte> = mapOf( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.meesho.meshlyticssample.analytics.dispatchers | |
import com.meesho.meshlytics.Dispatcher | |
import com.meesho.meshlytics.data.AnalyticsEvent | |
import com.meesho.meshlytics.data.Gender | |
import com.meesho.meshlytics.transformer.EmptyKeyTransformer | |
import com.meesho.meshlytics.transformer.ReservedKeyTransformer | |
import com.meesho.meshlyticssample.analytics.AnalyticConstants | |
import com.meesho.meshlyticssample.analytics.AnalyticsDataStore | |
import com.meesho.meshlyticssample.analytics.AnalyticsLogger |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.meesho.meshlytics | |
import com.meesho.meshlytics.data.AnalyticsEvent | |
import com.meesho.meshlytics.data.Gender | |
import com.meesho.meshlytics.data.ProfileEvent | |
import com.meesho.meshlytics.data.SuperEvent | |
import com.meesho.meshlytics.validation.KeyValidationResult | |
import com.meesho.meshlytics.validation.KeyValidator | |
import java.lang.RuntimeException | |
import kotlin.experimental.xor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.meesho.meshlytics | |
import com.meesho.meshlytics.data.AnalyticsEvent | |
import com.meesho.meshlytics.data.Gender | |
import com.meesho.meshlytics.data.ProfileEvent | |
/** | |
* This interface contains core contract required for analytics. | |
* This contains methods common to [AnalyticsManager] and [Dispatcher] | |
* @see AnalyticsManager |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class CustomRecyclerView @JvmOverloads constructor( | |
context: Context, attributeSet: AttributeSet? = null | |
) : RecyclerView(context, attributeSet) { | |
companion object { | |
private const val FLING_SPEED_FACTOR = 0.8f | |
} | |
override fun fling(velocityX: Int, velocityY: Int): Boolean { | |
val slowVelocityY = (velocityY * FLING_SPEED_FACTOR).toInt() // keep it less than 1.0 to slowdown |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package demo; | |
import java.util.ArrayList; | |
import java.util.LinkedList; | |
import java.util.List; | |
import java.util.Random; | |
import java.util.concurrent.*; | |
class Analytics { | |
private ExecutorService enqueueExecutor = Executors.newSingleThreadExecutor(); |