1
0
Fork 0

For #6836 - Limit Leanplum depending on current locale.

master
Mugurell 2019-12-18 16:51:21 +02:00 committed by Mugurell
parent 9f30a7e6eb
commit 6d44ceceda
1 changed files with 35 additions and 0 deletions

View File

@ -10,8 +10,10 @@ import com.leanplum.Leanplum
import com.leanplum.LeanplumActivityHelper
import com.leanplum.annotations.Parser
import com.leanplum.internal.LeanplumInternal
import mozilla.components.support.locale.LocaleManager
import org.mozilla.fenix.BuildConfig
import org.mozilla.fenix.ext.settings
import java.util.Locale
import java.util.UUID.randomUUID
private val Event.name: String?
@ -54,6 +56,16 @@ class LeanplumMetricsService(private val application: Application) : MetricsServ
private val token = Token(LeanplumId, LeanplumToken)
override fun start() {
val applicationSetLocale = LocaleManager.getCurrentLocale(application)
val currentLocale = when (applicationSetLocale != null) {
true -> applicationSetLocale.isO3Language
false -> Locale.getDefault().isO3Language
}
if (!isLeanplumEnabled(currentLocale)) {
Log.i(LOGTAG, "Leanplum is not available for this locale: $currentLocale")
return
}
when (token.type) {
Token.Type.Production -> Leanplum.setAppIdForProductionMode(token.id, token.token)
Token.Type.Development -> Leanplum.setAppIdForDevelopmentMode(token.id, token.token)
@ -112,6 +124,10 @@ class LeanplumMetricsService(private val application: Application) : MetricsServ
token.type != Token.Type.Invalid && !event.name.isNullOrEmpty()
}
private fun isLeanplumEnabled(locale: String): Boolean {
return LEANPLUM_ENABLED_LOCALES.contains(locale)
}
companion object {
private const val LOGTAG = "LeanplumMetricsService"
@ -121,5 +137,24 @@ class LeanplumMetricsService(private val application: Application) : MetricsServ
private val LeanplumToken: String
// Debug builds have a null (nullable) LEANPLUM_TOKEN
get() = BuildConfig.LEANPLUM_TOKEN.orEmpty()
// Leanplum needs to be enabled for the following locales.
// Irrespective of the actual device location.
private val LEANPLUM_ENABLED_LOCALES = listOf(
"eng", // English
"zho", // Chinese
"deu", // German
"fra", // French
"ita", // Italian
"ind", // Indonesian
"por", // Portuguese
"spa", // Spanish; Castilian
"pol", // Polish
"rus", // Russian
"hin", // Hindi
"per", // Persian
"fas", // Persian
"ara", // Arabic
"jpn" // Japanese
)
}
}