Use NowUIColoring para o tema NowWebTheme e NowChatTheme
A interface NowUIColoring contém todas as cores usadas por todos os módulos do NowSDK.
Para cenários em que você usa variáveis de cor semelhantes em vários módulos do SDK, é possível implementar a interface NowUIColoring. Usando esta interface, você pode substituir valores de cor e usar essa implementação para substituir os valores nowUIColoring dentro das classes de tema NowWebTheme e NowChatTheme. Se as variáveis de cor não forem substituídas, a interface NowUIColoring usará as cores padrão.
O exemplo de código a seguir mostra como substituir cores para uma IU da Web e uma IU de bate-papo.
// Implement the NowUIColoring and override desired color variables
val nowUIColoringImpl = object : NowUIColoring {
override val brand: NowUIAdaptiveColor
get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
override val textPrimary: NowUIAdaptiveColor
get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
//override the rest of color variables
}
// Override the nowUIColoring for NowWeb value using the NowUIColoring implementation
lifecycleScope.launch {
sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme {
override val nowUIColoring: NowUIColoring
get() = nowUIColoringImpl
})
}
//Override the nowUIColoring for NowChat value using the NowUIColoring implementation
lifecycleScope.launch {
sdkManager.getNowChatService()?.start(this@MainActivity, object : NowChatTheme {
override val nowUIColoring: NowUIColoring
get() = nowUIColoringImpl
})
}
Observação sobre manipulação de tema escuro
Dentro da classe NowUIAdaptiveColor, ao substituir variáveis de cor nas classes de tema, você pode passar dois valores Int Color, um para tema claro e outro para tema escuro. O segundo parâmetro, darkColor, é opcional. Se você não passar um valor de cor, os valores de cor padrão serão usados. O tema padrão usado, claro ou escuro, é baseado na configuração do telefone do usuário.
lifecycleScope.launch {
sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme {
override val brand: NowUIAdaptiveColor
//Setting lightColor only. For dark theme, default color are used.
get() = NowUIAdaptiveColor(lightColor = Color.BLACK)
override val primary: NowUIAdaptiveColor
//Setting both lightColor and darkColor
get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
// Override the rest of color variables
})
}